Todo-List-Application

πŸ“ Todo List Application

A lightweight Spring Boot web application designed to demonstrate clean backend architecture,
Dockerized deployment, and both Low-Level (LLD) and High-Level (HLD) system design principles.

Built with Java 17, Maven, and Docker, it provides a command-based web UI for managing tasks interactively β€” directly in your browser.


🌐 Live Demo Video
πŸŽ₯ Watch the Todo List App Demo on YouTube
Watch on YouTube

πŸš€ Access the live app here (Render Free Tier):
https://todo-list-app-49q5.onrender.com/

🧩 About Deployment
β€’ The application runs inside a Docker container hosted on Render Cloud.
β€’ Render automatically pulls the latest image from the GitHub repository and builds it using a multi-stage Dockerfile (Maven build β†’ JDK runtime).
β€’ The backend is a Spring Boot service serving both the REST API and the interactive web terminal UI built with HTML + JavaScript.
β€’ This deployment demonstrates a production-like environment on Render’s free tier (no manual server setup).

πŸ’» Runtime Details
β€’ Container base: eclipse-temurin:17-jdk-jammy
β€’ Port exposed: 8080
β€’ Auto-deployed from: Render
β€’ Hosted endpoint: https://todo-list-app-49q5.onrender.com/

🧠 Key Features Live
β€’ Interactive command-line style UI in browser
β€’ Persistent REST endpoints for add, edit, delete, sort tasks
β€’ Deployed using Spring Boot + Docker + Render CI workflow

πŸš€ Tech Stack


βš™οΈ Features


🧱 Project Structure

Todo-List-Application/
β”‚
β”œβ”€β”€ Dockerfile                    # Docker multi-stage build configuration
β”œβ”€β”€ pom.xml                       # Maven build & dependency configuration
β”œβ”€β”€ README.md                     # Project documentation
β”‚
β”œβ”€β”€ src/
β”‚   └── main/
β”‚       β”œβ”€β”€ java/
β”‚       β”‚   └── io/
β”‚       β”‚       └── yourname/
β”‚       β”‚           └── todo/
β”‚       β”‚               β”œβ”€β”€ WebApplication.java          # Spring Boot entry point
β”‚       β”‚               β”œβ”€β”€ TodoController.java          # REST endpoints for all commands
β”‚       β”‚               β”œβ”€β”€ TodoService.java             # Core business logic
β”‚       β”‚               β”œβ”€β”€ TodoItem.java                # Model class representing a task
β”‚       β”‚               β”œβ”€β”€ CreateTodoRequest.java       # DTO for creating new tasks
β”‚       β”‚               β”œβ”€β”€ UpdateTodoRequest.java       # DTO for updating existing tasks
β”‚       β”‚               └── GlobalExceptionHandler.java  # Unified exception handling
β”‚       β”‚
β”‚       └── resources/
β”‚           └── static/
β”‚               └── index.html                           # Browser-based terminal UI
β”‚
β”œβ”€β”€ System Design/                                       # Design documents & architecture artifacts
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ Commands.txt                                 # Example commands for testing UI
β”‚   β”‚   β”œβ”€β”€ LLD.jpeg                                     # Low-Level Design diagram
β”‚   β”‚   β”œβ”€β”€ Low Level Design For ToDo List.jpeg          # Extended LLD reference
β”‚   β”‚   └── TodoListApplication                          # Design project file (optional)

🐳 Run with Docker

# Build Docker image
docker build -t todo-list-app:latest .

# Run container
docker run -p 8080:8080 todo-list-app:latest

Visit πŸ‘‰ http://localhost:8080 to interact with the terminal-style UI.

🧭 System Design

Includes both Low-Level Design (LLD) and High-Level Design (HLD) documentation:
β€’ LLD: Internal class structure (TodoController, TodoService, DTOs, model)
β€’ HLD: System architecture showing backend, frontend, and Docker runtime layers
β€’ Visualized using Eraser.io Flowchart Generator for clear architecture mapping.

🎯 Learning Objectives

This project was created for hands-on exploration of:
β€’ Spring Boot REST API development
β€’ Dockerized builds and deployment pipelines
β€’ Applying LLD & HLD principles to real projects	
β€’ Clean code structure and modular design

πŸ‘€ Somesh Diwan

πŸ’» GitHub Repo: SomeshDiwan/Todo-List-Application

🐳 Docker Image: someshdiwan/todo-list-app

🏁 License
This project is released under the MIT License.