Skip to content

Web application designed to facilitate project management and collaboration among team members.

Notifications You must be signed in to change notification settings

randH7/TaskFlow-server

Repository files navigation

TaskFlow

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.


📝 Class Diagram

TaskFlowClass.jpg

📝 Use Case Diagram

Use case diagram.jpg

📦 Prerequisites

  • JDK Java 17

  • Any IDE support Java and Spring Boot

  • MySQL 8.0

  • MySQL Workbench 8.0

  • Postman


🔧 Setup

  1. Clone the repository to your local machine.

  2. Install the necessary dependencies.

  3. 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
    
  4. Run the application.

  5. Import the Postman collection from HERE its have all the endpoints.


💻 Technology used

  • 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

🌐 API Endpoints

User Authentication Endpoints

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

Employ Management Endpoints

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

Project Management Endpoints

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

🗃️ Future Work

  • 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.

🔗 Extra links


📚 Resources

Spring Security:

About

Web application designed to facilitate project management and collaboration among team members.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages