A production-ready, full-stack Spring Boot application designed with Clean Architecture. This project showcases a secure, high-performance hybrid system using Thymeleaf for the frontend and a stateless JWT-based REST API for data management.
graph TD
Client[Browser / API Client] -->|HTTP Requests| Controller[Spring MVC / REST Controllers]
Controller -->|Authentication / JWT Filter| Security[Spring Security]
Security -->|Authorized Request| Service[Business Logic / Services]
Service -->|Database Operations| Repository[Spring Data JPA]
Repository -->|SQL| Database[(PostgreSQL)]
subgraph "Backend Framework (Spring Boot)"
Controller
Security
Service
Repository
end
erDiagram
USER ||--o{ TODO : owns
USER {
long id PK
string name
string email UK
string password "Hashed"
timestamp created_at
}
TODO {
long id PK
string title
string description
timestamp created_at
timestamp updated_at
long user_id FK
}
sequenceDiagram
participant User
participant Frontend
participant AuthAPI as Auth Controller
participant JWT as JwtService
participant DB as User Repository
User->>Frontend: Enter Credentials
Frontend->>AuthAPI: POST /api/auth/login
AuthAPI->>DB: Verify User
DB-->>AuthAPI: User Found
AuthAPI->>JWT: Generate Token
JWT-->>AuthAPI: JWT Signed
AuthAPI-->>Frontend: { success: true, token: "..." }
Frontend->>Frontend: Store Token in LocalStorage
Note over Frontend, AuthAPI: Subsequent Requests include Bearer Token in Header
- π Enterprise Security: Stateless JWT authentication with standard Bearer token support.
- π Interactive API Docs: Integrated Swagger/OpenAPI for real-time API testing.
- ποΈ Decoupled Design: Pure separation of concerns using the Service-Repository pattern.
- π Smart Searching: Advanced backend keyword filtering and pagination powered by Spring Data.
- π¨ Glassmorphism UI: modern design system with Bootstrap 5 and customized CSS.
| Category | Technology |
|---|---|
| Backend | Java 17, Spring Boot 3.2, Spring Security |
| Authentication | JSON Web Token (JWT), BCrypt |
| Database | PostgreSQL, Hibernate, Spring Data JPA |
| Frontend | Thymeleaf, JavaScript, Bootstrap 5 |
| Documentation | SpringDoc OpenAPI (Swagger UI) |
| Build Tool | Maven 3.x |
- PostgreSQL (Database name:
todo_db) - Maven and JDK 17+
Update src/main/resources/application.properties with your PostgreSQL username and password.
mvn clean install
mvn spring-boot:runRun the entire stack (App + Database) with a single command:
docker-compose up --buildThe application will be available at http://localhost:8080.
Once the application is running, you can access the interactive API documentation and test all endpoints:
π Swagger UI: http://localhost:8080/swagger-ui/index.html
π OpenAPI JSON: http://localhost:8080/v3/api-docs
Pro Tip: Use the "Authorize" button in Swagger and paste your JWT token (after logging in via
/api/auth/login) to test protected Todo endpoints!
controller/: Entry points for REST and UI navigation.service/: Core business logic and security checks.repository/: Data persistence interfaces.entity/: Database models.security/: JWT handling and path security config.config/: Application and OpenAPI beans.
Licensed under the MIT License.



