The To-Do List Application is a Java-based desktop task management system designed to help users organize and track their daily tasks efficiently. With a clean Swing-based graphical interface, robust functionality for task management, and data persistence through serialization, this project showcases the application of core Java concepts and design patterns.
-
Task Management:
- Add, edit, delete, and mark tasks as completed.
- Categorize tasks and manage categories.
- Set due dates and priorities for tasks.
-
Task Filtering and Sorting:
- Filter tasks based on completion status or category.
- Sort tasks by title, due date, or priority.
-
Dark Mode:
- Switch between light and dark themes for improved user experience.
-
Data Persistence:
- Save and load tasks using Java serialization.
-
Statistics and Reporting (Optional Enhancements):
- Potential to expand with task statistics and progress tracking.
TodoListApp/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── todoapp/
│ │ │ ├── Category.java
│ │ │ ├── Task.java
│ │ │ ├── TaskManager.java
│ │ │ ├── AddTaskDialog.java
│ │ │ ├── EditTaskDialog.java
│ │ │ ├── TodoAppGUI.java
│ │ │ ├── Main.java
│ │ ├── resources/
│ │ └── icons/
│ │ ├── add.png
│ │ ├── edit.png
│ │ ├── delete.png
│ │ ├── categories.png
│ │ ├── info.png
├── src/
│ ├── test/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── todoapp/
│ │ │ └── test/
│ │ │ ├── TaskTest.java
│ │ │ ├── SortingAndFilteringTest.java
│ │ │ ├── TaskManagerTest.java
├── pom.xml
└── .gitignore
- IDE: IntelliJ IDEA
- Build Tool: Apache Maven
- Version Control: Git
- Programming Language: Java 17 or higher
- Operating System: Windows 10/11, macOS, or Linux
- RAM: 4 GB (8 GB recommended)
- Processor: Intel Core i3 or equivalent
- Disk Space: 500 MB free space
- Java Swing for GUI
- Java Serialization for data persistence
- Maven for dependency management
- JUnit for unit testing
## Setup Instructions
1. Verify Java installation:
```bash
java -version
Ensure it shows Java 17 or higher.
-
Install Maven (if not already installed):
mvn -version
Ensure Maven is properly set up.
-
Clone the repository:
git clone https://github.com/ibrahimify/TodoListApp.git
-
Navigate to the project directory:
cd todolistapp -
Build the project:
mvn clean install
-
Run the application:
java -cp target/classes com.todoapp.Main
The class diagram represents the Todo List Application's architecture, showcasing key components and their interactions:
Taskis the core entity representing individual tasks with properties like title, description, and due date.Categorymanages task groupings, allowing tasks to be organized.TaskManagerhandles data persistence, saving and loading categories.- Dialog classes (
AddTaskDialogandEditTaskDialog) manage task creation and modification. TodoAppGUIprovides the user interface, integrating task and category management.Mainclass serves as the application's entry point.
- Clone the repository:
git clone https://github.com/ibrahimify/TodoListApp.git
- Navigate to the project directory:
cd todolistapp - Build the project using Maven:
mvn clean install
- Run the application:
java -cp target/classes com.todoapp.Main
Run the unit tests to validate the functionality:
mvn testContributions are welcome! Fork the repository and submit a pull request for review.







