Skip to content

ibrahimify/TodoListApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

To-Do List Application

Overview

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.


Features

  • 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.

Project Structure

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

Software and Tools Requirements

Development Environment

  • IDE: IntelliJ IDEA
  • Build Tool: Apache Maven
  • Version Control: Git
  • Programming Language: Java 17 or higher

Minimum System Requirements

  • 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

Key Technologies

  • 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.

  1. Install Maven (if not already installed):

    mvn -version

    Ensure Maven is properly set up.

  2. Clone the repository:

    git clone https://github.com/ibrahimify/TodoListApp.git
  3. Navigate to the project directory:

    cd todolistapp
  4. Build the project:

    mvn clean install
  5. Run the application:

    java -cp target/classes com.todoapp.Main

Documentation

Class Diagram

The class diagram represents the Todo List Application's architecture, showcasing key components and their interactions:

  • Task is the core entity representing individual tasks with properties like title, description, and due date.
  • Category manages task groupings, allowing tasks to be organized.
  • TaskManager handles data persistence, saving and loading categories.
  • Dialog classes (AddTaskDialog and EditTaskDialog) manage task creation and modification.
  • TodoAppGUI provides the user interface, integrating task and category management.
  • Main class serves as the application's entry point.

Class Diagram

Sequence Diagrams

Diagram Name Description Link
Add Task Task creation flow. Add Task
Edit Task Task modification flow. Edit Task
Delete Task Task deletion process. Delete Task
Filter Tasks Filtering tasks based on criteria. Filter Tasks
Save and Load Tasks Saving and loading tasks through persistence. Save and Load

User Interface Screenshots

Light Mode

Light Mode

Dark Mode

Dark Mode


How to Run

  1. Clone the repository:
    git clone https://github.com/ibrahimify/TodoListApp.git
  2. Navigate to the project directory:
    cd todolistapp
  3. Build the project using Maven:
    mvn clean install
  4. Run the application:
    java -cp target/classes com.todoapp.Main

Testing

Run the unit tests to validate the functionality:

mvn test

Contributing

Contributions are welcome! Fork the repository and submit a pull request for review.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages