A professional, productionβready Quarkus backend built to learn, practice, and master modern Java backend development. This repository focuses on clean architecture, best practices, and realβworld patterns used in scalable systems.
Master Quarkus is a learningβdriven backend project that evolves stepβbyβstep. It starts with core Quarkus fundamentals and progressively adds:
- Layered architecture (Controller β Service β Repository)
- Pagination & sorting
- Clean error handling
- Database best practices
- API documentation
- Containerization & CI/CD
The goal is to serve as:
- π A personal knowledge base
- π§ͺ A playground for backend experiments
- πΌ A portfolioβready backend project
Client (REST / JSON)
β
βΌ
Controller (JAXβRS)
β
βΌ
Service Layer (Business Logic)
β
βΌ
Repository (Panache / Hibernate)
β
βΌ
PostgreSQL Database
- Separation of Concerns
- Thin Controllers
- Business logic isolated in Services
- Repository pattern with Panache
- DTOβfriendly API design
-
RESTful API with Quarkus (JAXβRS)
-
Clean Controller / Service / Repository separation
-
PostgreSQL integration with Hibernate ORM + Panache
-
Pagination with metadata:
{ "data": [], "page": 0, "size": 10, "total": 42, "totalPages": 5, "links": { "next": null, "prev": null, "self": "/api/users?page=0&size=10" } } -
Sorting support (
sort=name,asc) -
HATEOASβlite links (
self,next,prev) -
Global exception handling
-
OpenAPI & Swagger UI
- DTO mapping & validation
- Authentication & Authorization (JWT)
- Roleβbased access control (RBAC)
- Flyway database migrations
- Integration & unit testing
- Observability (metrics, health checks)
- Native image build
master-quarkus/
βββ src/main/java/com/example/
β βββ controller/ # REST endpoints
β βββ service/ # Business logic
β βββ repository/ # Data access layer
β βββ model/ # Entities & DTOs
β βββ exception/ # Custom exceptions & mappers
β βββ config/ # Application configuration
β βββ Application.java
β
βββ src/main/resources/
β βββ application.properties
β βββ db/ # Flyway migrations
β
βββ src/test/java/ # Unit & integration tests
βββ Dockerfile
βββ pom.xml
βββ README.md
| Category | Tech |
|---|---|
| Framework | Quarkus |
| Language | Java 17 |
| ORM | Hibernate ORM + Panache |
| API | JAXβRS (RESTEasy Reactive) |
| Database | PostgreSQL |
| Build Tool | Maven |
| Docs | OpenAPI / Swagger UI |
| Container | Docker |
| CI/CD | GitHub Actions |
- Java 17+
- Maven 3.8+
- Docker (optional but recommended)
git clone https://github.com/jawherr/master-quarkus.git
cd master-quarkusmvn quarkus:devmvn clean package
java -jar target/quarkus-app/quarkus-run.jardocker build -t master-quarkus .
docker run -p 8080:8080 master-quarkus- Swagger UI β http://localhost:8080/q/swagger-ui
- OpenAPI JSON β http://localhost:8080/q/openapi
GET /api/users?page=0&size=10&sort=name,ascPOST /api/users
Content-Type: application/jsonmvn testmvn verifyThis repository focuses on mastering:
- Quarkus internals & performance
- Clean backend architecture
- Database best practices
- Productionβready REST APIs
- Modern Java ecosystem
Contributions, ideas, and discussions are welcome!
- Fork the repo
- Create a feature branch
- Commit your changes
- Open a Pull Request
This project is licensed under the MIT License.
If this project helps you, consider giving it a star π