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 🌟