How ryanmferreira/polikt-spring works
Polikt is a political-education and civic-awareness REST API. Clients retrieve or manage news and agencies, create users and authenticate, and build ordered courses from modules and content or guides from steps. Controllers own these requests and call their repositories; module/content and guide/step controllers also resolve their parent records. The README documents JWT-protected operations and PostgreSQL persistence. The sampled source confirms several controller-to-repository calls and JWT issuance; some documented feature wiring and request authorization details are represented only at the subsystem level.
Main entry points: UserController.java User API · GuideStepController.java Guide step API · ModuleController.java Module API · ContentController.java Module content API
Components 21
Identity and access
- User API
api/src/main/java/com/polikt/api/user/UserController.java - User repository
api/src/main/java/com/polikt/api/user/UserRepository.java - JWT service
api/src/main/java/com/polikt/api/config/JwtService.java - Security configuration
api/src/main/java/com/polikt/api/config/SecurityConfig.java - JWT auth filter
api/src/main/java/com/polikt/api/config/JwtAuthFilter.java
Civic content
- Agency API
api/src/main/java/com/polikt/api/agency/AgencyController.java - Agency repository
api/src/main/java/com/polikt/api/agency/AgencyRepository.java - News API
api/src/main/java/com/polikt/api/news/NewsController.java - News repository
api/src/main/java/com/polikt/api/news/NewsRepository.java
Learning resources
- Guide API
api/src/main/java/com/polikt/api/guide/GuideController.java - Guide repository
api/src/main/java/com/polikt/api/guide/GuideRepository.java - Guide step API
api/src/main/java/com/polikt/api/guide/step/GuideStepController.java - Guide step repository
api/src/main/java/com/polikt/api/guide/step/GuideStepRepository.java - Course API
api/src/main/java/com/polikt/api/course/CourseController.java - Course repository
api/src/main/java/com/polikt/api/course/CourseRepository.java - Module API
api/src/main/java/com/polikt/api/course/module/ModuleController.java - Module repository
api/src/main/java/com/polikt/api/course/module/ModuleRepository.java - Module content API
api/src/main/java/com/polikt/api/course/module/content/ContentController.java - Content repository
api/src/main/java/com/polikt/api/course/module/content/ContentRepository.java
Persistence
- PostgreSQL
Other components
- API client
Connections 30
- API client → User API: sends requests
- API client → Agency API: sends requests
- API client → News API: sends requests
- API client → Guide API: sends requests
- API client → Guide step API: sends requests
- API client → Course API: sends requests
- API client → Module API: sends requests
- API client → Module content API: sends requests
- User API → User repository: reads and writes
- User API → JWT service: issues token
- JWT auth filter → JWT service: validates token
- Security configuration → JWT auth filter: configures filter
- Agency API → Agency repository: reads and writes
- News API → News repository: reads and writes
- Guide API → Guide repository: reads and writes
- Guide step API → Guide step repository: reads and writes
- Guide step API → Guide repository: resolves guide
- Course API → Course repository: reads and writes
- Module API → Module repository: reads and writes
- Module API → Course repository: resolves course
- Module content API → Content repository: reads and writes
- Module content API → Module repository: resolves module
- User repository → PostgreSQL: persists records
- Agency repository → PostgreSQL: persists records
- News repository → PostgreSQL: persists records
- Guide repository → PostgreSQL: persists records
- Guide step repository → PostgreSQL: persists records
- Course repository → PostgreSQL: persists records
- Module repository → PostgreSQL: persists records
- Content repository → PostgreSQL: persists records