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
π 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
DD-MM-YYYY format)add|name=...|deadline=...)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)
# 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
π License
This project is released under the MIT License.