A Spring Boot web application that models the progression system of the youth branch of a scouting organization. It tracks young members, the specialties and badges they earn, the challenges they complete, and produces reports about their progress. Built as a course project for a databases discipline.
- Java 21
- Spring Boot 3.5 (Web MVC, Data JPA, Validation)
- Thymeleaf for server-side rendered pages
- Hibernate over a MySQL database
- Lombok
- Gradle (with the Gradle wrapper)
- Manages young members (Pessoa): create, edit, list, view details and delete.
- Records responsible parties (Responsavel) and links them to a member (Vinculo).
- Stores health data (SaudeDado) and known health problems (ProblemaSaude).
- Registers completed challenges (DesafioFeito), challenges tied to a specialty (DesafioDeEspecialidadeFeita) and concluded challenges (DesafioConcluidoFeito).
- Tracks nights spent camping (NoiteAcampado) associated with camps (Acampamento).
- Models specialties (Especialidade) grouped by area of knowledge (AreaDeConhecimento), badges (Insignia) and blood types (TipoSanguineo).
- Provides reports: biographical data of a member, members by specialty, specialties and badges earned by a member, requirements fulfilled for a given specialty, and members eligible for the Cruzeiro do Sul distinction.
The domain model and its relationships are illustrated in modelagem.png.
The application lives under bcd/:
src/main/java/com/example/bcd/modelJPA entitiessrc/main/java/com/example/bcd/repositorySpring Data repositoriessrc/main/java/com/example/bcd/servicebusiness logic and report queriessrc/main/java/com/example/bcd/dtodata transfer objects for views and requestssrc/main/java/com/example/bcd/controller/webthe web controllersrc/main/resources/templatesThymeleaf templatessrc/main/resources/ddl-dml.sqlschema and seed data
Prerequisites: JDK 21 and a running MySQL instance.
The application expects a database named bcd reachable at
localhost:3306, with user aluno and password aluno. These values are set
in bcd/src/main/resources/application.yml and can be adjusted there. On
startup the schema and seed data in ddl-dml.sql are applied automatically.
git clone https://github.com/nicolasfvp/scout-progression-api.git
cd scout-progression-api/bcd
./gradlew bootRunThe application starts on http://localhost:8080.
Academic project built for a databases discipline. Not intended for production use.
Released under the MIT License. See the LICENSE file for details.