git clone https://github.com/kthusheelgHere is a comprehensive and professional README.md file tailored for your project. You can copy and paste this directly into a new file named README.md in your GitHub repository.
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/applicationHere is a comprehensive and professionalREADME.mdfile tailored for your project. You can copy and paste this directly into a new file namedREADME.md` in your GitHub repository.
- Navigate to the project folder and update
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/application.propertieswith your local PostgreSQL credentials. - Run
./mvnw spring-boot:run.
- Navigate to the project folder and update
- Frontend Setup:
Here is a comprehensive and professional
README.mdfile tailored for your project. You can copy and paste this directly into a new file namedREADME.mdin your GitHub repository.
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/application.propertieswith your local PostgreSQL credentials. - Run
./mvnw spring-boot:run.
- Navigate to the project folder and update
- Frontend Setup:
- Open
index.htmlusing a local server (e.g., Live Server in VS Code). - Ensure the
API_URLinHere is a comprehensive and professionalREADME.mdfile tailored for your project. You can copy and paste this directly into a new file namedREADME.mdin your GitHub repository.
- Open
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/application.propertieswith your local PostgreSQL credentials. - Run
./mvnw spring-boot:run.
- Navigate to the project folder and update
- Frontend Setup:
- Open
index.htmlusing a local server (e.g., Live Server in VS Code). - Ensure the
API_URLin the<script>tag points to your local backend (http://localhost:8080/api).
- Open
*Here is a comprehensive and professional README.md file tailored for your project. You can copy and paste this directly into a new file named README.md in your GitHub repository.
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/application.propertieswith your local PostgreSQL credentials. - Run
./mvnw spring-boot:run.
- Navigate to the project folder and update
- Frontend Setup:
- Open
index.htmlusing a local server (e.g., Live Server in VS Code). - Ensure the
API_URLin the<script>tag points to your local backend (http://localhost:8080/api).
- Open
- Admin Username:
admin_bossHere is a comprehensive and professionalREADME.mdfile tailored for your project. You can copy and paste this directly into a new file namedREADME.mdin your GitHub repository.
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/application.propertieswith your local PostgreSQL credentials. - Run
./mvnw spring-boot:run.
- Navigate to the project folder and update
- Frontend Setup:
- Open
index.htmlusing a local server (e.g., Live Server in VS Code). - Ensure the
API_URLin the<script>tag points to your local backend (http://localhost:8080/api).
- Open
- Admin Username:
admin_boss[cite: 2] - Admin Password:
password123Here is a comprehensive and professionalREADME.mdfile tailored for your project. You can copy and paste this directly into a new file namedREADME.mdin your GitHub repository.
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/application.propertieswith your local PostgreSQL credentials. - Run
./mvnw spring-boot:run.
- Navigate to the project folder and update
- Frontend Setup:
- Open
index.htmlusing a local server (e.g., Live Server in VS Code). - Ensure the
API_URLin the<script>tag points to your local backend (http://localhost:8080/api).
- Open
- Admin Username:
admin_boss[cite: 2] - Admin Password:
password123[cite: 2]
Developer: Kagitha Thusheel Goud
Institution: St. Peter's Engineering CollegeHere is a comprehensive and professional README.md file tailored for your project. You can copy and paste this directly into a new file named README.md in your GitHub repository.
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/application.propertieswith your local PostgreSQL credentials. - Run
./mvnw spring-boot:run.
- Navigate to the project folder and update
- Frontend Setup:
- Open
index.htmlusing a local server (e.g., Live Server in VS Code). - Ensure the
API_URLin the<script>tag points to your local backend (http://localhost:8080/api).
- Open
- Admin Username:
admin_boss[cite: 2] - Admin Password:
password123[cite: 2]
Developer: Kagitha Thusheel Goud
Institution: St. Peter's Engineering College
WouldHere is a comprehensive and professional README.md file tailored for your project. You can copy and paste this directly into a new file named README.md in your GitHub repository.
A robust, full-stack task management application featuring JWT-based authentication, role-based access control, and a persistent PostgreSQL database[cite: 1, 2]. This project demonstrates a secure connection between a cloud-hosted Spring Boot REST API and a decoupled frontend[cite: 1, 2].
- Frontend (GitHub Pages): https://kthusheelgoud.github.io/task-manager-client/
- Backend API (Railway):
https://task-manager-api-production-c950.up.railway.app/api[cite: 1]
- Java 21 with Spring Boot 3.x[cite: 2].
- Spring Security & JWT: For stateless authentication and authorization[cite: 2].
- Spring Data JPA: For Object-Relational Mapping[cite: 2].
- Lombok: To reduce boilerplate code.
- Vanilla JavaScript (ES6+): Custom
fetchWithAuthwrapper for handling JWT headers. - HTML5 & CSS3: Responsive UI with a clean, modern dashboard.
- PostgreSQL: Cloud-hosted relational database[cite: 1, 2].
- Railway: Hosting for the Spring Boot API and Database[cite: 1].
- GitHub Pages: Hosting for the static frontend client.
The application follows a decoupled architecture where the frontend communicates with the backend via a RESTful API secured by JWT tokens[cite: 2].
- Authentication: Users sign up or log in via the
/api/authendpoints[cite: 2]. - JWT Issue: Upon successful login, the server returns a JWT token[cite: 2].
- Authorized Requests: The client stores the token in
localStorageand includes it in theAuthorization: Bearer <token>header for all protected requests[cite: 2]. - Database Persistence: All data is stored in a hosted PostgreSQL instance, ensuring persistence across server restarts[cite: 2].
- User Authentication: Secure Login and Signup functionality[cite: 2].
- Role-Based Dashboards:
- Admins: Can create projects, assign tasks to specific users, and view system-wide stats[cite: 2].
- Members: Can view assigned tasks and update their progress[cite: 2].
- Live Statistics: Real-time counting of TODO, In-Progress, and Completed tasks.
- CORS Security: Configured to allow secure communication between GitHub Pages and Railway[cite: 2].
POST /api/auth/signup- Register a new user[cite: 2].POST /api/auth/signin- Authenticate and receive a JWT[cite: 2].
GET /api/tasks/dashboard- Get task statistics for the dashboard[cite: 2].POST /api/tasks/project/{projId}/assign/{userId}- Assign a new task (Admin Only)[cite: 2].PATCH /api/tasks/{taskId}/status- Update task status (TODO/IN_PROGRESS/DONE)[cite: 2].
GET /api/projects- List all projects[cite: 2].POST /api/projects- Create a new project (Admin Only)[cite: 2].
- Clone the repository:
git clone [https://github.com/kthusheelgoud/task-manager.git](https://github.com/kthusheelgoud/task-manager.git)
- Backend Setup:
- Navigate to the project folder and update
src/main/resources/application.propertieswith your local PostgreSQL credentials. - Run
./mvnw spring-boot:run.
- Navigate to the project folder and update
- Frontend Setup:
- Open
index.htmlusing a local server (e.g., Live Server in VS Code). - Ensure the
API_URLin the<script>tag points to your local backend (http://localhost:8080/api).
- Open
- Admin Username:
admin_boss[cite: 2] - Admin Password:
password123[cite: 2]
Developer: Kagitha Thusheel Goud
Institution: St. Peter's Engineering College