A command-line based Task Manager application built in Java that allows users to organize, search, update, and manage tasks directly from the terminal.
This project was developed as a semester-end project to demonstrate core concepts of Object-Oriented Programming, Collections, String Handling, and Exception Handling in Java.
The application provides a lightweight productivity tool that runs entirely in the terminal and manages tasks dynamically using Java data structures.
The Terminal Task Manager allows users to:
- Create and manage tasks
- Search tasks by keyword
- Mark tasks as completed
- Delete tasks
- View all existing tasks
- Interact with a continuous command-line interface
The program demonstrates how Java OOP principles and collections can be used to build a functional CLI application.
Users can create tasks with details such as:
- Task title
- Description
- Priority level
- Completion status
Displays all stored tasks in a structured list format.
Allows searching tasks using keywords.
Users can mark tasks as completed.
Tasks can be removed from the task list.
The application runs continuously until the user chooses to exit.
This project intentionally covers topics from the Java syllabus.
- Classes and Objects
- Methods
- Constructors
- Encapsulation
User roles can be extended using inheritance.
Example concept:
User
└── AdminUser
The project is organized into packages for maintainability.
Example structure:
taskmanager
│
├── model
├── service
├── exception
└── main
The application demonstrates:
- try
- catch
- finally
- custom exceptions
Example use cases include handling:
- invalid input
- missing tasks
- incorrect commands
The project uses multiple Java string operations such as:
- String comparison
- Searching within strings
- Case conversion
- String formatting
StringBuffer is used for building formatted output strings dynamically.
The project uses several Java collections:
| Collection | Usage |
|---|---|
| ArrayList | Stores tasks |
| LinkedList | Maintains task history |
| Set | Stores unique task tags |
Collections are traversed using Java Iterators to display task information.
Terminal-Task-Manager
│
├── src
│ ├── model
│ │ ├── Task
│ │ ├── User
│ │ └── AdminUser
│ │
│ ├── service
│ │ └── TaskManager
│ │
│ ├── exception
│ │ ├── TaskNotFoundException
│ │ └── InvalidTaskException
│ │
│ └── main
│ └── MainApplication
│
└── README.md
===== TERMINAL TASK MANAGER =====
1. Add Task
2. View Tasks
3. Search Task
4. Mark Task Complete
5. Delete Task
6. Exit
Enter your choice:
Example session:
Add Task
Task title: Finish Java Project
Priority: High
Task added successfully.
View Tasks
[1] Finish Java Project - Pending
- The program starts and displays a CLI menu.
- The user selects an action.
- The system performs operations on the task collection.
- Results are displayed in the terminal.
- The program returns to the main menu until the user exits.
By building this project, the following Java programming concepts are demonstrated:
- Designing modular programs using classes and objects
- Implementing inheritance
- Organizing code using packages
- Handling errors with exceptions
- Managing dynamic data with Java collections
- Performing string manipulation
- Iterating through collections using iterators
- Java JDK 8 or higher
- Command line / terminal environment
- Java compiler
Possible enhancements include:
- File-based task persistence
- Task deadlines and reminders
- Task categories and tagging
- User authentication
- Advanced command-based CLI interface
- A002 - Brijraj Singh Bhati -- Lead Developer & System Architect
- A015 - Khushi Mendon -- Core Logic Engineer
- A041 - Manan Parmar -- Interface & CLI Engineer
Diploma in Computer Engineering Year 2 Semester IV NMIMS Mumbai
This project is created for EDUCATIONAL PURPOSES as part of The Java Programming Semester-end Project Submission.