The Task Collaboration Platform is a web application that allows users to create projects, add tasks to projects, and assign tasks to team members. The platform supports user authentication, role-based access control, and provides an organized way to manage projects and tasks.
- User Authentication:
- Implement user authentication using JWT. Ensure that only authenticated users can access the application's features. Users must register and login to access the platform.
- User Registration and Login:
- Users can register for an account and login using their credentials. Only team members can register directly. Project managers and admins can only be created by an admin.
- CRUD Operations on Projects:
Users can perform CRUD operations on projects.
- Create: Users can create new projects with required details.
- Read: Users can view a list of all projects.
- Update: Users can edit project details.
- Delete: Users can delete projects if necessary.
- Project Management:
Users can create projects and organize tasks within them. Each project includes:
- Project ID: A unique identifier for each project.
- Title: The title of the project.
- Description: Additional details about the project.
- Start Date: The date when the project starts.
- End Date: The deadline for completing the project.
- Task Management within Projects:
Users can add tasks to projects with the following details:
- Task ID: A unique identifier for each task.
- Title: The title of the task.
- Description: Additional details about the task.
- Due Date: The deadline for completing the task.
- Priority: Priority level of the task.
- Role-Based Access Control (RBAC):
- Define roles such as admin, project manager, and team member. Admin users have full access to all projects and tasks, while project managers can create/edit tasks and assign them to team members. Team members can view and update tasks assigned to them.
- Validation and Error Handling:
- Implement validation to ensure that project and task data are complete and valid. Handle errors gracefully with appropriate HTTP status codes and error messages.
- Node.js
- MongoDB
-
Clone the repository:
git clone https://github.com/AxatSachani/Project-Management.git
-
Install dependencies:
npm install
-
Create a
.env
file with the following content:PORT=3000 MONGO_URI=mongodb://localhost:27017/project_management TOKEN_SECRET=your_secret_key
-
Start the server:
npm start
-
Seed the database with initial users:
- When the server starts, the database will be seeded with three users: admin, project_manager, and team_member.
- admin: Full access to all projects and tasks.
- project_manager: Can create/edit tasks and assign them to team members.
- team_member: Can view and update tasks assigned to them.