Start Learning
Javaneer
Back to the Spring path
🏛️
Module 9

Capstone: Build BookVault

Put it all together, end to end.

The synthesis: build BookVault - a secured, tested, observable, containerized Spring Boot service - from an empty project to production, one layer at a time. Every module of the path comes together here, with the companion repository as your reference solution and a retrospective on the decisions that shaped it.

7 Lessons in this stage1 h 48 min
Start the first lesson

Lessons in this stage

  1. 01

    The Capstone Project

    Intermediate

    What you'll build and why: BookVault's architecture end to end, how the companion repo is your reference, and how to work through it.

    12 min
  2. 02

    Scaffolding & the Domain Model

    Intermediate

    Start from Spring Initializr and shape the core: the Book, Member, and Loan model, typed configuration, and the container wiring it together.

    16 min
  3. 03

    The Web & Data Layers

    Advanced

    Build the REST API and make it durable: controllers and DTOs with validation and ProblemDetail, then JPA entities, Flyway migrations, and transactional lending.

    18 min
  4. 04

    Securing the API

    Advanced

    Add authentication and authorization: BCrypt passwords, a JWT login endpoint, and MEMBER vs LIBRARIAN roles enforced across the endpoints.

    16 min
  5. 05

    Building the Test Pyramid

    Advanced

    Make it trustworthy: fast unit tests, focused slice tests for web and data, and full integration tests - the pyramid that lets you change BookVault fearlessly.

    16 min
  6. 06

    Events & Production Readiness

    Advanced

    The finishing layers: a domain event on borrow, then observability, virtual threads, and a container image that make BookVault ready to deploy.

    16 min
  7. 07

    Retrospective & The Road Ahead

    Intermediate

    Reflect on the design decisions that shaped BookVault, the trade-offs behind them, and where to go next across the wider Spring ecosystem and your career.

    14 min