Most Spring Boot tutorials teach you to build a CRUD app and call it a day. But that's not really what the job looks like day to day, so I put together a project that mimics what you'd actually work on as a backend dev at a company with real infrastructure.
🔗 Repo: springboot-learning-kit
I've added the following 12 tasks that you'd need to complete:
Project setup: spin up Postgres + messaging brokers, verify everything's healthy
Kicking off development: request validators, custom exceptions, a new order status API
Debug a critical bug: chase down a duplicate-insert caused by misusingEntityManager.persist()vssave()
ActiveMQ + Apache Camel: configure routes, consume from a queue, handle dead letter queues, publish to a Virtual Topic
RabbitMQ: set up exchanges/bindings, fix an infinite redelivery bug, publish to a topic exchange
DB schema migration: add a table with Liquibase, write rollback SQL, fix an N+1 write
Testing: unit tests with Mockito, snapshot tests, integration tests with TestContainers
Code style: enforce formatting automatically with Spotless + Palantir Java Format
Prometheus metrics: expose app metrics via Actuator, configure scraping
Grafana: connect to Prometheus, build dashboards, add@Timedannotations
Load testing: run JMeter tests, interpret throughput, watch the impact in Grafana
Global exception handling: swap per-controller try-catch for@ControllerAdvice+ RFC 7807 Problem Details
Everything runs locally via Docker Compose, and there's a Bruno collection included so you can hit the APIs without writing your own Postman setup.
It's completely free and open source, so fork it, work through the tasks in order, and you'll come out the other side with a much better feel for what the job actually involves beyond "make endpoint, save to DB."
Would love feedback from people!
SOCIAL SHARE CARD GENERATOR