A to-do application that allows users to manage their tasks and lists, track progress, and handle task dependencies. This application is designed to help users stay organized and efficiently prioritize their work.
- User Authentication
- Register: Create a new user account by providing a username, and password.
- Login: Log in with your username and password to access your to-do lists.
- Task Management
- Create Lists: Organize tasks by creating multiple to-do lists.
- Add Items: Add tasks to each list with properties such as priority and status.
- Update Tasks: Edit task details such as name, description, or status.
- Delete Items: Remove tasks from the list if they are no longer needed.
- Task Dependencies
- Dependencies: Link tasks that depend on each other. A task cannot be completed until its dependent tasks are finished.
- Task Status: Track the status of tasks (e.g., "In Progress", "Completed") and manage their dependencies effectively.
- Priority Management
- Set Priorities: Assign priority levels to tasks such as "High", "Medium", or "Low".
- Track Progress: Monitor the progress of each task and update its status as needed
The following screenshots provide a visual overview of the application's UI mockup and some design decisions.
- Spring Boot
- PostgreSQL
- Docker
- Mockito (for unit testing)
Prerequisites:
- JDK 11 or higher
- Docker
- Maven
Installation:
-
Clone the repository:
git clone https://github.com/MstfTurgut/todo-app.git -
Build the project with Maven:
mvn clean install -
Set up the Docker containers:
docker-compose up --build -
Access the app in your browser:
http://localhost:8080
- Fork the repository.
- Create a new branch (git checkout -b feature-name).
- Commit your changes (git commit -am 'Add new feature').
- Push to the branch (git push origin feature-name).
- Create a new Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.

