Personal Learning & Open-Source Practice: This is a personal learning project, but it is open for anyone who wants to practice and simulate real-world open-source contributions (learning Git workflows, making pull requests, working with CI/CD pipelines, and collaborating on a Spring Boot backend).
⭐ If you find this helpful, don't forget to star the repo and share it with your friends!
A Spring Boot 3.x store backend providing REST APIs for products, categories, customers, orders, and reactive external product integrations.
- Backend: Java 17, Spring Boot 3.x (Web, WebFlux, Data JPA, Cache)
- Database & Migration: MySQL 8.0, Flyway migrations, HikariCP
- Caching: Redis Cache via Spring Cache abstraction
- Mapping & Validation: MapStruct, Jakarta Validation
- Docs & Monitoring: Springdoc OpenAPI (Swagger UI), Spring AOP execution logging
For a detailed breakdown of package responsibilities, request lifecycle, and data flow, see ARCHITECTURE.md.
- Java 17+
- Docker & Docker Compose
cp .env.example .envdocker compose up -d./mvnw spring-boot:runAccess the interactive API docs at: http://localhost:8080/swagger
./mvnw clean verifydocker compose downCode style is enforced via formatter-maven-plugin. Run these before committing:
./mvnw formatter:format # Auto-format all files
./mvnw formatter:validate # Validate formatting (runs in CI)Every push and pull request triggers our GitHub Actions pipeline, which runs 4 independent verification jobs:
formatting: Validates Java formatting withformatter-maven-plugin.build: Verifies compilation of main and test sources.test: Executes all tests against containerized MySQL & Redis.run: Smoke tests boot and Swagger health response.
First-time open-source contributors are warmly welcomed! Please read our Contributing Guide for any details needed.