A simple command-line task tracker designed to help maintain consistency in weekly planning and track progress over several weeks.
I built this project to develop a consistent planning routine and to apply my first Java skills to something practical. The idea is to plan each week, track progress, and keep moving forward even when plans are not completed perfectly. To support this mindset, the tracker only allows modifying tasks for the current week. Past weeks become read-only: you can review your progress, but not rewrite history. This helped me focus less on perfection and more on steady progress.
- Add Task – Create a new task for the current week (it's possible to create N identical tasks at once. For example, for this purpose: "read 10 pages of a book every day of the week").
- Show Tasks – Display all tasks for the current week.
- Mark Task as Done – Mark a task as completed.
- Delete Task – Remove a task from the list.
- Duplicate Task – Create a copy of an existing task.
- Show Weekly Progress – View progress statistics for any week.
- Exit – Save and exit the application.
- Weekly Task Management – Organize tasks by week for better focus and planning
- Progress Tracking – View progress for any week, not just the current one, and analyze your progress in the long run
- Project Organization – Group tasks by project to monitor different areas of work
- Task Operations:
- Add new tasks (including repetitive tasks)
- View tasks for the current week
- Mark tasks as done
- Delete tasks
- Duplicate tasks
- Progress Visualization – See completion percentages by project with visual progress bars
- File-based storage: tasks are stored in tasks/week_X.txt files (where X is the week number)
- Automatic backups are created in the backups/ directory
- All data is stored locally on user machine
- Build Tool: Maven
- Week Calculation: Based on a fixed starting date defined in the code (week numbers are calculated relative to that date) -> needs to be fixed in the future!
git clone https://github.com/owrmille/task_tracker.git
cd task_tracker
mvn -f task-tracker/pom.xml clean package
mvn -f task-tracker/pom.xml exec:java- Configuration Support – Allow users to configure the start date, storage directory, and other settings via a config file.
- Search and Filtering – Filter tasks by project, tag, completion status, or week.
- Mark as Done - Group similar tasks together and let the user choose which one to mark as done, to reduce visual noise in the list.
- Improved Error Handling – More robust handling of invalid input and file I/O errors, with clearer user messages.
- Automated Tests – Add unit tests for core logic.
- Storage – Swap from ile-based storage to a database!
- Alternative Interfaces – Add a simple TUI/GUI or web-based interface on top, while keeping the lightweight CLI version as an alternative.