// the find
acenelio/springboot2-ionic-backend
A Spring Boot 2 backend for an e-commerce course, paired with an Ionic mobile frontend. This is a teaching project — it covers the full stack of a small shop: products, categories, orders, payment types, customer auth, S3 image upload, and email. Not production software; a structured reference for learning.
The domain model is well-layered — domain, DTO, repository, service, resource (controller) each in their own package, which is exactly the pattern you'd want to show a student. JWT auth is implemented properly with separate authentication and authorization filters rather than shoved into a single class. The dual payment type hierarchy (Boleto vs CartaoCredito) using JPA inheritance is a decent teaching example of polymorphism in a real schema. Profile-based config (test/dev/prod application.properties) with a MockEmailService for dev is a small but correct touch.
Last commit was 2022 and it targets Spring Boot 2.x, which hit EOL in November 2023 — Spring Security's config style changed significantly in Boot 3, so this is already teaching patterns students will have to unlearn. No tests beyond the generated empty context load test, which means the repo teaches the whole stack except the part that actually matters for maintainability. The `DBService` seeding pattern — hardcoded Brazilian state/city data in Java — is fine for a course but leaves no migration path if you tried to run this for real. Password reset via email sends a plain new password rather than a token link, which is a bad habit to teach.