A task management cli app written in Java.
problem-statement
@credit: https://roadmap.sh/
Task Tracker is a lightweight, command-line task management application built with Java. It allows you to create, update, delete, and track tasks with different statuses (TODO, In Progress, Done).
- Add new tasks
- List all tasks
- Filter tasks by status (TODO, In Progress, Done)
- Update task descriptions
- Mark tasks as TODO, In Progress, or Done
- Delete tasks
- Persistent storage using JSON
- Java Development Kit (JDK) 11 or higher
- Apache Maven 3.6+
git clone https://github.com/dipanshunamdev799/task-tracker.git
cd task-tracker
# Clean and package the project
mvn clean package
This will generate an executable JAR file in the target/
directory.
# General help and command list
java -jar target/task-tracker.jar help
# Add a new task
java -jar target/task-tracker.jar add "Buy groceries"
# List all tasks
java -jar target/task-tracker.jar list
# List tasks by status
java -jar target/task-tracker.jar list todo
java -jar target/task-tracker.jar list in-progress
java -jar target/task-tracker.jar list done
# Update a task description
java -jar target/task-tracker.jar update 1 "Buy groceries on Monday"
# Mark task status
java -jar target/task-tracker.jar mark-todo 1
java -jar target/task-tracker.jar mark-in-progress 1
java -jar target/task-tracker.jar mark-done 1
# Delete a task
java -jar target/task-tracker.jar delete 1
Command | Usage | Description |
---|---|---|
help |
java -jar task-tracker.jar help |
Show all available commands |
add |
java -jar task-tracker.jar add "Task description" |
Add a new task |
list |
java -jar task-tracker.jar list [status] |
List all tasks or filter by status (todo/in-progress/done) |
update |
java -jar task-tracker.jar update <task_number> "New description" |
Update a task's description |
delete |
java -jar task-tracker.jar delete <task_number> |
Delete a specific task |
mark-todo |
java -jar task-tracker.jar mark-todo <task_number> |
Mark task as TODO |
mark-in-progress |
java -jar task-tracker.jar mark-in-progress <task_number> |
Mark task as In Progress |
mark-done |
java -jar task-tracker.jar mark-done <task_number> |
Mark task as Done |
Tasks are stored in a tasks.json
file in the same directory as the JAR. This file is automatically created and updated when you add, modify, or delete tasks.
src/main/java/com/dipanshu/Main.java
: Entry point of the applicationsrc/main/java/com/dipanshu/Task.java
: Task data modelsrc/main/java/com/dipanshu/TaskList.java
: Task list managementsrc/main/java/com/dipanshu/TaskOperations.java
: Task-related operationssrc/main/java/com/dipanshu/TaskStatus.java
: Enum for task statuses
- Jackson Databind (2.13.0): JSON processing
- Ensure you have Java 11+ installed
- Verify Maven is correctly configured
- Check that you're running the command from the project root
- Confirm the JAR file exists in the
target/
directory
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Project Link: https://github.com/dipanshunamdev799/task-tracker