Project Overview
Create a Task Management System (like a simplified Trello/Todoist) that demonstrates mastery of all C++ concepts from the course.
Capstone Requirements
This project must integrate concepts from ALL previous modules: classes, inheritance, polymorphism, STL, templates, file I/O, and error handling.
Requirements
Task Hierarchy (OOP)
Base Task class with derived types: SimpleTask, RecurringTask, SubTask. Virtual methods for display, completion, due date handling.
Project & Category Management (STL)
Projects contain tasks (vector). Categories use map for organization. Priority queue for due dates. Set for tags.
Persistence (File I/O)
Save/load tasks to JSON-like text format. Support import/export. Backup functionality.
Search & Filter (Algorithms + Lambdas)
Filter by status, priority, due date, tags. Sort by multiple criteria. Full-text search in descriptions.
Statistics & Reports
Completion rates, overdue tasks, productivity metrics. Generate text/HTML reports.
Interactive CLI
Menu-driven interface with commands: add, edit, delete, complete, list, search, filter, report, save, load.
Submission
Required Repository Name
cpp-task-manager
cpp-task-manager/
├── src/
│ ├── Task.h, Task.cpp # Task hierarchy
│ ├── Project.h, Project.cpp # Project management
│ ├── Storage.h, Storage.cpp # File persistence
│ ├── TaskManager.h, .cpp # Main manager
│ └── main.cpp # Application entry
├── data/
│ └── sample_tasks.txt # Sample data file
├── docs/
│ └── DESIGN.md # Design document
├── sample_output.txt # Demo session
└── README.md # Full documentation
Grading Rubric
| Criteria | Points |
|---|---|
| Task class hierarchy (OOP) | 70 |
| STL usage (containers, algorithms) | 70 |
| File persistence | 50 |
| Search & filtering with lambdas | 50 |
| Statistics & reports | 40 |
| Error handling | 30 |
| CLI interface & UX | 40 |
| Code quality & documentation | 30 |
| Design document | 20 |
| Total | 400 |