How danilop85/cli-loterias-caixa works
Loterias Caixa is a Spring MVC/JSP and REST application for importing Caixa lottery draws, storing results, checking users’ bets, and exploring or exporting statistical features. The main workflow starts when a user requests an import: the API dispatches background work, which fetches draws, derives features, saves them, and streams progress. Users can then browse results, register bets, and compare them with draws; separate analytics and dataset services support dashboards and ML study. The graph reflects documented routes and sampled service calls; unsampled implementation details are left out.
Main entry points: ConcursoRestController.java Draw API · JogoService.java Game service · PaginasController.java Page controller · ConcursoRepository.java Draw repository
Components 17
Web and API
- Web pages
src/main/webapp/WEB-INF/jsp - Page controller
src/main/java/br/com/dpsnqmk/controller/web/PaginasController.java - Draw API
src/main/java/br/com/dpsnqmk/controller/api/ConcursoRestController.java - Game API
src/main/java/br/com/dpsnqmk/controller/api/JogoRestController.java
Draw Import
- Import service
src/main/java/br/com/dpsnqmk/service/ImportacaoService.java - HTTP client
src/main/java/br/com/dpsnqmk/service/impl/HttpServiceImpl.java - Import status
src/main/java/br/com/dpsnqmk/service/StatusImportacao.java
Lottery Features
- Lottery rules
src/main/java/br/com/dpsnqmk/enums/Loteria.java - Game service
src/main/java/br/com/dpsnqmk/service/JogoService.java - Prize service
src/main/java/br/com/dpsnqmk/service/PremioService.java - Statistics
src/main/java/br/com/dpsnqmk/service/EstatisticaService.java - Dataset export
src/main/java/br/com/dpsnqmk/service/DatasetService.java
Persistence
- Draw repository
src/main/java/br/com/dpsnqmk/repository/ConcursoRepository.java - Game repository
src/main/java/br/com/dpsnqmk/repository/JogoRepository.java
Other components
- User
- Caixa API
- MongoDB
Connections 29
- User → Draw API: requests import or data
- Draw API → Import service: starts, checks, subscribes
- Import service → HTTP client: fetches draws
- HTTP client → Caixa API: requests draw data
- Import service → Draw repository: reads and saves draws
- Import service → Import status: updates progress
- Import service → User: streams SSE progress
- User → Page controller: opens pages
- Page controller → Web pages: dispatches views
- Page controller → Draw repository: reads draw pages
- Page controller → Import service: reads import status
- Page controller → Statistics: requests statistics
- Page controller → Game service: requests game summaries
- User → Game API: manages games
- Game API → Game service: delegates game actions
- Game service → Game repository: saves and reads games
- Game service → Draw repository: reads draw results
- Game service → Lottery rules: validates and checks prizes
- Game service → Prize service: looks up prize values
- Draw API → Draw repository: reads draw records
- Draw API → Game service: checks a draw
- Draw API → Statistics: requests aggregates
- Draw API → Dataset export: requests export data
- Draw API → Prize service: requests price table
- Statistics → Draw repository: counts draws
- Statistics → MongoDB: aggregates draw features
- Dataset export → Draw repository: reads ordered draws
- Prize service → HTTP client: fetches missing prize rates
- Prize service → Draw repository: caches prize rates