Teams working on software projects often struggle to track tasks, dependencies, and priorities across multiple team members. Existing tools manage tasks but often fail to provide insights such as task dependencies, workload distribution, and potential delays.
Develop a lightweight task management application that allows teams to create, manage, and track tasks while identifying dependencies and potential bottlenecks in project execution.
The system should allow users to create tasks with the following attributes:
- Task ID
- Task title
- Description
- Priority (Low, Medium, High)
- Status (To Do, In Progress, Completed)
- Assigned user
- Estimated completion date
Example:
Task ID: T101
Title: Implement Payment API
Priority: High
Assigned To: Developer A
Status: To Do
The system should allow tasks to be assigned to specific team members.
Users should be able to:
- Assign a task during creation
- Reassign tasks to other team members.
The system should support dependencies between tasks.
Example:
Task: Deploy Application
Depends On:
- Complete Integration Testing
- Complete Security Review
If a dependency task is not completed, the dependent task should be marked as Blocked.
The system should allow users to update task status:
- To Do
- In Progress
- Blocked
- Completed
The system should maintain a history of status updates.
Users should be able to retrieve tasks based on:
- Status
- Priority
- Assigned user
- Due date
The system should provide a summary of project progress.
Example Output:
Total Tasks: 20
Completed Tasks: 8
In Progress: 6
Blocked: 2
Pending: 4
- The application should follow a modular architecture.
- Core business logic should be covered with unit tests.
- The project should include API documentation.
- A CI pipeline should automatically build and run tests.