Skip to content

About

A professional Quarkus-based Java backend project to study and master modern backend development concepts with Quarkus.

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

22 Commits

Folders and files

Repository files navigation

πŸš€ Master Quarkus

Repository Size Last Commit Issues Stars

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.


✨ Overview

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

πŸ—οΈ Architecture

Client (REST / JSON)
        β”‚
        β–Ό
Controller (JAX‑RS)
        β”‚
        β–Ό
Service Layer (Business Logic)
        β”‚
        β–Ό
Repository (Panache / Hibernate)
        β”‚
        β–Ό
PostgreSQL Database

Architectural Principles

  • Separation of Concerns
  • Thin Controllers
  • Business logic isolated in Services
  • Repository pattern with Panache
  • DTO‑friendly API design

πŸš€ Features

βœ… Implemented (v1)

  • 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

🧭 Planned (Next Steps)

  • DTO mapping & validation
  • Authentication & Authorization (JWT)
  • Role‑based access control (RBAC)
  • Flyway database migrations
  • Integration & unit testing
  • Observability (metrics, health checks)
  • Native image build

πŸ“ Project Structure

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

βš™οΈ Technologies Used

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

πŸ› οΈ Getting Started

Prerequisites

  • Java 17+
  • Maven 3.8+
  • Docker (optional but recommended)

Clone the Repository

git clone https://github.com/jawherr/master-quarkus.git
cd master-quarkus

Run in Dev Mode

mvn quarkus:dev

Build & Run (Production)

mvn clean package
java -jar target/quarkus-app/quarkus-run.jar

Run with Docker

docker build -t master-quarkus .
docker run -p 8080:8080 master-quarkus

πŸ“˜ API Documentation


πŸ“‘ Example Endpoints

Get Users (Paginated)

GET /api/users?page=0&size=10&sort=name,asc

Create User

POST /api/users
Content-Type: application/json

πŸ§ͺ Testing

mvn test
mvn verify

πŸ“š Learning Goals

This repository focuses on mastering:

  • Quarkus internals & performance
  • Clean backend architecture
  • Database best practices
  • Production‑ready REST APIs
  • Modern Java ecosystem

🀝 Contributing

Contributions, ideas, and discussions are welcome!

  1. Fork the repo
  2. Create a feature branch
  3. Commit your changes
  4. Open a Pull Request

πŸ“œ License

This project is licensed under the MIT License.


⭐ Stargazers

If this project helps you, consider giving it a star 🌟

About

A professional Quarkus-based Java backend project to study and master modern backend development concepts with Quarkus.

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages