Project Module¶
Purpose¶
The Project module manages the lifecycle of projects, tasks, milestones, and time tracking, enabling teams to collaborate and deliver work effectively within a workspace.
Responsibilities¶
- Managing Projects and their statuses (e.g., Active, On Hold, Completed)
- Creating and assigning Tasks to Workspace Members
- Defining and tracking Milestones
- Logging time spent on specific tasks (Time Logs)
File Structure¶
Database Models¶
ProjectTaskMilestoneTaskAssignmentProjectMemberTimeLog
API Endpoints¶
GET /api/v1/projectsPOST /api/v1/projectsGET /api/v1/projects/:idPATCH /api/v1/projects/:idGET /api/v1/tasksPOST /api/v1/tasksPATCH /api/v1/tasks/:idPOST /api/v1/tasks/:id/time-logsGET /api/v1/milestonesPOST /api/v1/milestones
Key Flows¶
sequenceDiagram
participant User
participant API
participant DB
User->>API: POST /projects
API->>DB: Create Project & add User as Admin
API-->>User: 200 OK (Project Created)
User->>API: POST /tasks (projectId)
API->>DB: Create Task
API-->>User: 200 OK (Task Created)
User->>API: POST /tasks/:id/time-logs (2 hours)
API->>DB: Create TimeLog
API->>DB: Increment Task total logged hours
API-->>User: 200 OK