Overview
A REST API built with Java 21 and Spring Boot 3 for managing astronomical observatories and exoplanets. This API exposes a complete CRUD with pagination, filtering, partial updates and business-driven state transitions. It demonstrates advanced Spring Boot patterns: layered architecture, robust persistence via Hibernate with dirty checking and optimistic locking, centralized error handling in RFC 7807 (ProblemDetail), schema migration via Flyway, and interactive OpenAPI/Swagger documentation.
Tech Stack
Java 21Spring Boot 3PostgreSQL 16Hibernate/JPAFlywayOpenAPI/SwaggerMavenDocker
Features & Roadmap
✔ Completed
- ✓Complete CRUD on exoplanets and observatories
- ✓Pagination and filtering support
- ✓Optimistic locking with @Version
- ✓Business-driven state transitions (confirm/reject)
- ✓Centralized error handling (RFC 7807)
- ✓OpenAPI/Swagger documentation
- ✓Integration tests with Testcontainers
🚧 In Progress
- ◐Complete endpoint integration tests
- ◐Production deployment (Docker + AWS Lightsail)
🚀 Planned
- ○Internationalization of validation messages
- ○Advanced filtering and search
- ○Caching strategy optimization
