TaskFlow is a practical project that offers hands-on experience in developing a web application for task and project management with a strong focus on collaboration. By using CRUD operations, managing user profiles, and integrating real-time updates through the Spring framework, TaskFlow empowers users to streamline their work and personal projects efficiently.
-
JDK Java 17
-
Any IDE support Java and Spring Boot
-
MySQL 8.0
-
MySQL Workbench 8.0
-
Postman
-
Clone the repository to your local machine.
-
Install the necessary dependencies.
-
Set up your MySQL database and update the
application.properties
file with your database credentials:spring.datasource.url=jdbc:mysql://localhost:3306/task_flow_schema spring.datasource.username=username spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true server.error.include-stacktrace=never
-
Run the application.
-
Import the Postman collection from HERE its have all the endpoints.
- Backend Development: Spring Web with JDK Java 17
- Data Persistence: Spring Data JPA
- Managing Database: MySQL Workbench
- Authentication and Authorization: Spring Security
- Testing the API endpoints: Postman
Method | URL | Request Headers | Request Body | Action |
---|---|---|---|---|
POST | /auth/sign-up | { username, email, password, employName, jobTitle }, userType: "manager" / "employ" | Register a new user | |
POST | /auth/login | { username, password } | Log in and return authentication token | |
GET | /auth/verify | Authorization: Bearer <token> | Verify token and return user information |
Method | URL | Request Headers | Request Body | Action |
---|---|---|---|---|
PATCH | /api/manager/invite-employ | Authorization: Bearer <token> | { username } | Invite an employee to the manager's team |
PATCH | /api/manager/remove-employ | Authorization: Bearer <token> | { username } | Remove an employee from the manager's team |
GET | /api/manager/get-employees | Authorization: Bearer <token> | Get a list of employees under the manager | |
GET | /api/employ/get-contributor-employees | Authorization: Bearer <token> | Get a list of employees associated with the contributor |
Method | URL | Request Headers | Request Body | Action |
---|---|---|---|---|
POST | /api/projects/create-project | Authorization: Bearer <token> | AddProjectDTO | Create a new project |
PATCH | /api/projects/edit-project/{projectId} | Authorization: Bearer <token> | HashMap<String, Object> | Edit an existing project |
GET | /api/projects | Authorization: Bearer <token> | Get a list of projects | |
GET | /api/projects/{projectId} | Authorization: Bearer <token> | Get details of a specific project | |
DELETE | /api/projects/delete-project/{projectId} | Authorization: Bearer <token> | Delete a project |
- Users can update their profiles.
- Users can comment on tasks, share files, and have discussions.
- Users can view the recent Activity for each project.
- WebSocket for real-time task updates and notifications.
- Implement email or in-app notifications for task assignments, updates, and reminders.
Spring Security:
- Spring Security 6 | How to Create a Login System with Spring Data JPA and JWTs - NEW 2023
- Spring Security Tutorial - NEW 2023
- Spring Security – Configuring Different URLs
- Stack Overflow - resolve method 'antMatchers()'
- Stack Overflow - unidirectional many-to-one and cascading delete