Project Overview๏ƒ

Purpose๏ƒ

SpringBootLibrarySphinx is an exemplary Spring Boot application developed for the SPQ (Software Process and Quality) subject. It demonstrates best practices in:

  • RESTful API design with Spring Boot

  • Layered MVC architecture

  • Automated testing (unit, integration, performance)

  • CI/CD pipelines with GitHub Actions

  • Code quality tooling (JaCoCo, PMD, Checkstyle, JDepend)

  • Technical documentation (Doxygen, Maven Site, Sphinx)

The application models a library borrowing system where users can borrow and return books through a shared platform.

Key Features๏ƒ

Feature

Technology

REST API backend

Spring Boot 3.4, Spring MVC

Database ORM

Spring Data JPA + Hibernate

Database

MySQL (prod), H2 (test)

API docs (interactive)

Springdoc OpenAPI / Swagger UI

Unit tests

JUnit 5 + Mockito

Integration tests

Spring Boot Test + MySQL

Performance tests

JUnitPerf

Code coverage

JaCoCo

Static analysis

PMD, Checkstyle, JDepend

Containerisation

Docker + Docker Compose

Technical docs

Doxygen, Maven Site, Sphinx

Repository Structure๏ƒ

SpringBootLibrarySphinx/
โ”œโ”€โ”€ .github/workflows/
โ”‚   โ”œโ”€โ”€ sphinx-docs.yml              โ† Sphinx + PDF โ†’ GitHub Pages
โ”‚   โ””โ”€โ”€ maven-site-integration.yml  โ† Build, test, Maven site โ†’ GitHub Pages
โ”œโ”€โ”€ docs-sphinx/                     โ† All Sphinx source files
โ”‚   โ”œโ”€โ”€ index.html                   โ† Landing page (committed, readable HTML)
โ”‚   โ”œโ”€โ”€ Makefile                     โ† Linux/macOS build
โ”‚   โ”œโ”€โ”€ make.bat                     โ† Windows build
โ”‚   โ”œโ”€โ”€ requirements.txt             โ† Python dependencies
โ”‚   โ””โ”€โ”€ source/
โ”‚       โ”œโ”€โ”€ conf.py
โ”‚       โ”œโ”€โ”€ index.rst
โ”‚       โ”œโ”€โ”€ overview.md
โ”‚       โ”œโ”€โ”€ architecture.md
โ”‚       โ”œโ”€โ”€ getting_started.md
โ”‚       โ”œโ”€โ”€ testing.md
โ”‚       โ”œโ”€โ”€ reports.md
โ”‚       โ”œโ”€โ”€ api_rest.md
โ”‚       โ”œโ”€โ”€ javadoc_link.md
โ”‚       โ”œโ”€โ”€ cicd.md
โ”‚       โ”œโ”€โ”€ docker.md
โ”‚       โ””โ”€โ”€ sphinx_101.md
โ”œโ”€โ”€ src/                             โ† Java source code
โ”œโ”€โ”€ pom.xml                          โ† Maven build
โ””โ”€โ”€ README.md