A RESTful backend application for managing anime, users, and personal anime watchlists.
The project was built with Java and Spring Boot and includes JWT-based authentication, PostgreSQL persistence, JPA/Hibernate, Docker containerization, and Swagger/OpenAPI documentation.
- Register new users
- Secure password hashing using BCrypt
- User authentication
- JWT-based authentication
- Retrieve the authenticated user's anime list
- Create anime
- Retrieve all anime
- Retrieve anime by ID
- Update anime
- Delete anime
- Sort anime using supported sort fields
Authenticated users can:
- Add anime to their watchlist
- View their watchlist
- Update anime status
- Add/update personal ratings
- Remove anime from their watchlist
Supported anime statuses include:
WATCHINGCOMPLETEDDROPPEDPLAN_TO_WATCH
The API is documented using Swagger/OpenAPI.
Swagger UI is available at:
http://localhost:8082/swagger-ui/index.html
| Technology | Purpose |
|---|---|
| Java 21 | Programming language |
| Spring Boot | Backend framework |
| Spring Web | REST API development |
| Spring Security | Authentication and authorization |
| JWT | Stateless authentication |
| BCrypt | Password hashing |
| Spring Data JPA | Database persistence |
| Hibernate | ORM |
| PostgreSQL | Relational database |
| Maven | Dependency management and build |
| Docker | Containerization |
| Docker Compose | Multi-container development |
| Swagger / OpenAPI | API documentation |
| Git / GitHub | Version control |
The application follows a layered architecture:
Client
|
v
Controller
|
v
Service
|
v
Repository
|
v
PostgreSQL