A full-stack ToDo application built with Spring Boot, React, and H2 Database.
Supports user registration, login, task management, filtering, and due dates β all in a responsive, styled UI.
- π User Authentication β Register and log in with email and password
- β CRUD Tasks β Create, update, delete, and mark tasks as completed
- π Due Dates β Assign and display due dates for each task
- π Filter Tasks β View all, completed, or pending tasks
- πΎ H2 Database β Fast in-memory data storage with optional console
- π Responsive UI β Clean, centered design with modern styling
| Frontend | Backend | Database |
|---|---|---|
| React | Spring Boot | H2 |
| Vite | REST API | JPA |
| CSS | Java | Hibernate |
todo-app/
βββ backend/
β βββ src/main/java/com/example/todo/
β βββ model/ β User, Todo entities
β βββ repository/ β JPA Repositories
β βββ controller/ β REST Controllers (Auth + Todo)
β βββ TodoApp.java β Main Spring Boot app
βββ frontend/
β βββ src/
β β βββ App.jsx
β β βββ components/
β β β βββ Login.jsx
β β β βββ Signup.jsx
β β β βββ TodoList.jsx
β β βββ style.css
β βββ index.html
cd backend
mvn clean install
mvn spring-boot:runπ§ͺ Access H2 console: http://localhost:8080/h2-console
(JDBC URL: jdbc:h2:mem:todo-db)
cd frontend
npm install
npm run devπ Visit: http://localhost:5173
| Password | |
|---|---|
test@user.com |
1234 |
admin@todo.com |
admin |
- π Replace plain text passwords with hashed (BCrypt)
- βοΈ Deploy on Vercel + Render (or Spring Boot on Fly.io)
- π± Add mobile-first responsive enhancements
- π¨ Add email notifications before due dates (optional)
MIT License Β© 2025 Brahim Kacem

