A simple yet efficient console-based task management application built with Java 17.
It allows users to add, update, remove, list, and export tasks, while automatically saving changes locally.
The Task Manager App provides an interactive CLI for managing daily tasks.
All operations are reflected in a local file (tasks.txt), and users can export their task list in Markdown format (tasks.md).
The project demonstrates:
- File handling in Java (
FileHandler) - Object-oriented design (
Task,TaskManager) - Data persistence (via text files)
- Markdown report generation
- Unit testing using JUnit 5
| Tool / Library | Purpose |
|---|---|
| Java 17 | Main programming language |
| JUnit 5 | Unit testing framework |
| Maven | Build automation & dependency management |
| MarkdownExporter | Exports tasks to .md file |
| FileHandler | Handles reading/writing to tasks.txt |
task-manager-app/
βββ src/
β βββ main/
β β βββ java/
β β βββ FileHandler.java
β β βββ MarkdownExporter.java
β β βββ Task.java
β β βββ TaskManager.java
β β βββ Main.java
β β
β βββ test/
β βββ java/
β βββ TaskTest.java
β βββ TaskManagerTest.java
β
βββ tasks.txt
βββ tasks.md
βββ pom.xml
βββ .gitignore
βββ README.md| Feature | Description |
|---|---|
| β Add Task | Add new task with title and description |
| βοΈ Update Task | Edit existing tasks |
| β Remove Task | Delete task by ID |
| π List Tasks | Display all tasks in console |
| πΎ Auto-Save | Every action updates tasks.txt automatically |
| π€ Export Markdown | Generate a formatted tasks.md report |
| π§ͺ Unit Tested | Core classes tested with JUnit 5 |
- Just press Shift+F10 on the test you want to run OR
- Run all tests using Maven:
mvn test - Run a specific test class:
mvn -Dtest=TaskManagerTest test
| Class | Description |
|---|---|
| Main.java | Entry point for the console menu |
| Task.java | Defines the Task object structure |
| TaskManager.java | Manages CRUD operations on tasks |
| FileHandler.java | Reads and writes data to tasks.txt |
| MarkdownExporter.java | Exports the tasks into tasks.md |
| TaskManagerTest.java | Unit tests for TaskManager logic |
| TaskTest.java | Unit tests for Task entity behavior |
Example of successful test execution in TaskManagerTest:
Example of succesful test execution in TaskTest: Example of succesful upload from FileHandler in tasks.txt: Example of succesful upload from MarkdownExporter in tasks.md:π Add sorting & filtering (by status or date)
ποΈ Add task deadlines and priorities
π§© Add JSON export option
π§Ύ Integrate logging with SLF4J
π§ Add persistence using SQLite
π¦ Add CI/CD pipeline (GitHub Actions)
This project is licensed under the MIT License
Radulescu Vlad Andrei
π§ GitHub Profile: [https://github.com/VladAndrei25]
π¬ Feel free to reach out for collaboration or feedback!






