How augxusto/eduacao works
EduAção is a REST API PoC for recording and tracking educational problems. Its main workflow accepts a validated problem report, checks its school and user references, assigns an initial status and calculated priority, then persists it; clients can list, retrieve, and update status. Separate endpoints manage schools and users, and expose domain options. The README documents MongoDB-backed repositories and notes that authentication, role restrictions, history, and indicators are not implemented. Relationships below follow the sampled calls and README architecture; unsampled controller and configuration details are not inferred.
Main entry points: ProblemaService.java Problem workflow · Problema.java Problem record · OpcaoController.java Domain options · EscolaRepository.java School repository
Components 21
REST API
- School endpoints
src/main/java/br/com/eduacao/domain/controllers/EscolaController.java - User endpoints
src/main/java/br/com/eduacao/domain/controllers/UsuarioController.java - Problem endpoints
src/main/java/br/com/eduacao/domain/controllers/ProblemaController.java - Domain options
src/main/java/br/com/eduacao/domain/controllers/OpcaoController.java - API errors
src/main/java/br/com/eduacao/domain/controllers/ApiExceptionHandler.java
Domain services
- School service
src/main/java/br/com/eduacao/domain/service/EscolaService.java - User service
src/main/java/br/com/eduacao/domain/service/UsuarioService.java - Problem workflow
src/main/java/br/com/eduacao/domain/service/ProblemaService.java
Domain and persistence
- School record
src/main/java/br/com/eduacao/domain/model/Escola.java - User record
src/main/java/br/com/eduacao/domain/model/Usuario.java - Problem record
src/main/java/br/com/eduacao/domain/model/Problema.java - Audit timestamps
src/main/java/br/com/eduacao/domain/model/EntidadeAuditavel.java - School repository
src/main/java/br/com/eduacao/domain/repository/EscolaRepository.java - User repository
src/main/java/br/com/eduacao/domain/repository/UsuarioRepository.java - Problem repository
src/main/java/br/com/eduacao/domain/repository/ProblemaRepository.java - Problem categories
src/main/java/br/com/eduacao/domain/enums/CategoriaProblema.java - User profiles
src/main/java/br/com/eduacao/domain/enums/PerfilUsuario.java - Priority levels
src/main/java/br/com/eduacao/domain/enums/PrioridadeProblema.java - Problem statuses
src/main/java/br/com/eduacao/domain/enums/StatusProblema.java
Other components
- HTTP client
- MongoDB
Connections 29
- HTTP client → School endpoints: HTTP requests
README.md - HTTP client → User endpoints: HTTP requests
README.md - HTTP client → Problem endpoints: HTTP requests
README.md - HTTP client → Domain options: HTTP requests
README.md - School endpoints → School service: delegates to
src/main/java/br/com/eduacao/domain/controllers/EscolaController.java - User endpoints → User service: delegates to
src/main/java/br/com/eduacao/domain/controllers/UsuarioController.java - Problem endpoints → Problem workflow: delegates to
src/main/java/br/com/eduacao/domain/controllers/ProblemaController.java - School service → School repository: reads and writes
src/main/java/br/com/eduacao/domain/service/EscolaService.java - User service → School repository: checks school
src/main/java/br/com/eduacao/domain/service/UsuarioService.java - User service → User repository: reads and writes
src/main/java/br/com/eduacao/domain/service/UsuarioService.java - Problem workflow → School repository: checks school
src/main/java/br/com/eduacao/domain/service/ProblemaService.java - Problem workflow → User repository: checks user
src/main/java/br/com/eduacao/domain/service/ProblemaService.java - Problem workflow → Problem repository: reads and writes
src/main/java/br/com/eduacao/domain/service/ProblemaService.java - School repository → MongoDB: persists records
README.md - User repository → MongoDB: persists records
README.md - Problem repository → MongoDB: persists records
README.md - School record → Audit timestamps: extends
src/main/java/br/com/eduacao/domain/model/Escola.java - User record → Audit timestamps: extends
src/main/java/br/com/eduacao/domain/model/Usuario.java - Problem record → Audit timestamps: extends
src/main/java/br/com/eduacao/domain/model/Problema.java - Problem record → Problem categories: uses category
src/main/java/br/com/eduacao/domain/model/Problema.java - Problem record → Priority levels: uses priority
src/main/java/br/com/eduacao/domain/model/Problema.java - Problem record → Problem statuses: uses status
src/main/java/br/com/eduacao/domain/model/Problema.java - User record → User profiles: uses profile
src/main/java/br/com/eduacao/domain/model/Usuario.java - Problem workflow → Problem categories: classifies reports
src/main/java/br/com/eduacao/domain/service/ProblemaService.java - Problem workflow → Priority levels: calculates priority
src/main/java/br/com/eduacao/domain/service/ProblemaService.java - Problem workflow → Problem statuses: sets status
src/main/java/br/com/eduacao/domain/service/ProblemaService.java - Domain options → Problem categories: exposes options
src/main/java/br/com/eduacao/domain/controllers/OpcaoController.java - Domain options → User profiles: exposes options
src/main/java/br/com/eduacao/domain/controllers/OpcaoController.java - Domain options → Problem statuses: exposes options
src/main/java/br/com/eduacao/domain/controllers/OpcaoController.java