You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A full-stack to-do list application built with a Spring Boot backend and a modern React frontend. The backend provides a secure RESTful API with JWT-based authentication and per-user task management.
π Project Structure
todo-app/
βββ backend/ # Java Spring Boot API (JWT-secured)
βββ frontend/ # React client app
π οΈ Technologies Used
Backend
Java 21+
Spring Boot
Spring Security
Spring Data JPA
MySQL
JWT for authentication
Frontend (planned)
React
Axios (HTTP client)
Bootstrap or Tailwind (optional)
π Features
β User registration & login
β JWT-based authentication & authorization
β Secure endpoints by user (multi-user support)
β Create, update, delete, and view to-do tasks
β Filter tasks by completion status or due date (e.g. today)
β Validation using @Valid, @NotBlank, @FutureOrPresent
β Global error handling with structured responses
β Relational database integration (MySQL)
β Layered architecture (Controller β Service β Repository)
π‘ API Endpoints
π Authentication
Method
Endpoint
Description
POST
/api/auth/register
Register a new user
POST
/api/auth/login
Log in and receive a JWT
π€ User
Method
Endpoint
Description
GET
/api/users/profile
Get current authenticated user
β Tasks (All require Authorization header)
Method
Endpoint
Description
GET
/api/tasks
Get tasks for user (supports filters)
GET
/api/tasks/{id}
Get a specific task by ID
POST
/api/tasks
Create a new task (validated input)
PUT
/api/tasks/{id}
Update an existing task
DELETE
/api/tasks/{id}
Delete a task (only if owned by the user)
βΆοΈ Running the Backend Locally
Clone the Repository
git clone https://github.com/your-username/todo-app.git
cd todo-app
β¨ Status
β Backend: Completed
π§ Frontend: In development
About
A RESTful API for managing to-do tasks with user registration, login, logout, and stateless authentication using Spring Boot and JWT.