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 |
Live Documentation Links๏
Document |
URL |
|---|---|
Landing page |
https://dipina.github.io/SpringBootLibrarySphinx/ |
This Sphinx hub |
https://dipina.github.io/SpringBootLibrarySphinx/sphinx/index.html |
Sphinx PDF |
https://dipina.github.io/SpringBootLibrarySphinx/sphinx/SpringBootLibrarySphinx.pdf |
Javadoc |
https://dipina.github.io/SpringBootLibrarySphinx/site/apidocs/index.html |
JaCoCo coverage |
https://dipina.github.io/SpringBootLibrarySphinx/site/jacoco/index.html |
Surefire unit tests |
https://dipina.github.io/SpringBootLibrarySphinx/site/surefire-report.html |
Performance tests |
https://dipina.github.io/SpringBootLibrarySphinx/site/reports/perf-report.html |
Checkstyle |
https://dipina.github.io/SpringBootLibrarySphinx/site/checkstyle.html |
PMD |
https://dipina.github.io/SpringBootLibrarySphinx/site/pmd.html |
Doxygen |
https://dipina.github.io/SpringBootLibrarySphinx/doxygen/html/index.html |
Swagger UI |
http://localhost:8080/swagger-ui.html (local only) |
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