A Java backend learning project for managing a book catalog, developed as part of Mate Academy coursework.
Work in progress. The implementation is in the
submissionbranch. Themainbranch currently contains this project overview.
Browse the source code · Follow the coursework review
- REST endpoints for creating books, listing the catalog, and finding a book by ID.
- Controller, service, and repository layers.
- Request and response DTOs mapped with MapStruct.
- Hibernate sessions and explicit transactions in the repository implementation.
- Maven build and Checkstyle checks in GitHub Actions.
Java 17 · Spring Boot 3.3.4 · Hibernate · MapStruct 1.5.5.Final · Lombok · Maven
The project includes Spring Data JPA, MySQL, and H2 dependencies. Persistence in the current submission uses a custom Hibernate repository.
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/books |
List books |
| GET | /api/books/{id} |
Find a book by ID |
| POST | /api/books |
Create a book; returns HTTP 201 |
Example request body:
{
"title": "Effective Java",
"author": "Joshua Bloch",
"isbn": "978-0134685991",
"price": 45.00,
"description": "A guide to Java best practices.",
"coverImage": "https://example.com/cover.jpg"
}git clone --branch submission https://github.com/obvly/springboot-web.git
cd springboot-webUse JDK 17 and the included Maven wrapper. Review src/main/resources/application.properties and configure your local database before starting the application. Test configuration is in src/test/resources/application.properties.
This repository documents an ongoing learning process and mentor review. It is not a complete online store: authentication, checkout, and payment processing are outside the current implementation.