How project-safeway/safeway-core-api works
SafeWay is a Spring REST backend for school-transport operators: authenticated users manage students, schools, guardians, vehicles, attendance, and itineraries. A representative route workflow accepts route changes, coordinates student and school stop services, validates stop addresses, and persists associations; routes can also be optimized using Google APIs. The README also documents RSA JWT authentication, student lifecycle events via RabbitMQ, address geocoding, and finance capabilities. Most edges below are backed by sampled callers or explicit README claims; unsampled modules are represented by their exact directories, with uncertain wiring omitted.
Main entry points: controllers REST endpoints · RouteService.java Route orchestration · RouteStudentService.java Student stops · RouteSchoolService.java School stops
Components 27
REST API
- REST endpoints
src/main/java/com/safeway/tech/api/controllers - Route endpoints
src/main/java/com/safeway/tech/api/controllers/RouteController.java - Auth endpoints
src/main/java/com/safeway/tech/auth/infrastructure/entrypoint/http/AuthV2Controller.java
School Operations
- Student management
src/main/java/com/safeway/tech/service/services/StudentService.java - Guardian management
src/main/java/com/safeway/tech/service/services/GuardianService.java - Guardian invitations
src/main/java/com/safeway/tech/service/services/GuardianInvitationService.java - School management
src/main/java/com/safeway/tech/service/services - Attendance
src/main/java/com/safeway/tech/service/services - Transport management
src/main/java/com/safeway/tech/service/services/TransportService.java - User profiles
src/main/java/com/safeway/tech/service/services/UserService.java
Routing
- Route orchestration
src/main/java/com/safeway/tech/service/services/RouteService.java - Student stops
src/main/java/com/safeway/tech/service/services/RouteStudentService.java - School stops
src/main/java/com/safeway/tech/service/services/RouteSchoolService.java - Route records
src/main/java/com/safeway/tech/domain/models/Route.java - Student stop records
src/main/java/com/safeway/tech/domain/models/RouteStudent.java - School stop records
src/main/java/com/safeway/tech/domain/models/RouteSchool.java - Route optimization
src/main/java/com/safeway/tech/service/services/RouteOptimizationService.java - Address geocoding
src/main/java/com/safeway/tech/service/services/GeocodingService.java
Identity and Integrations
- Auth use cases
src/main/java/com/safeway/tech/auth/core/application - JWT issuance
src/main/java/com/safeway/tech/auth/infrastructure/security/JwtTokenIssuerAdapter.java - JPA repositories
src/main/java/com/safeway/tech/repository - Student events
src/main/java/com/safeway/tech/infra/messaging/publishers/EventPublisher.java - Financial capabilities
src/main/java/com/safeway/tech/service/services/StudentFinancialService.java
Other components
- Operator
- Google Maps APIs
- RabbitMQ
- Financial service
Connections 30
- Operator → REST endpoints: uses
README.md - Operator → Route endpoints: manages routes
README.md - Operator → Auth endpoints: authenticates
README.md - Route endpoints → Route orchestration: delegates
src/main/java/com/safeway/tech/api/controllers/RouteController.java - Route orchestration → Student stops: syncs stops
src/main/java/com/safeway/tech/service/services/RouteService.java - Route orchestration → School stops: syncs stops
src/main/java/com/safeway/tech/service/services/RouteService.java - Route orchestration → JPA repositories: saves routes
src/main/java/com/safeway/tech/service/services/RouteService.java - Student stops → JPA repositories: reads and writes
src/main/java/com/safeway/tech/service/services/RouteStudentService.java - School stops → JPA repositories: reads and writes
src/main/java/com/safeway/tech/service/services/RouteSchoolService.java - Route orchestration → Route records: updates
src/main/java/com/safeway/tech/service/services/RouteService.java - Student stops → Student stop records: creates links
src/main/java/com/safeway/tech/service/services/RouteStudentService.java - School stops → School stop records: creates links
src/main/java/com/safeway/tech/service/services/RouteSchoolService.java - Student stops → Student management: loads students
src/main/java/com/safeway/tech/service/services/RouteStudentService.java - School stops → School management: loads schools
src/main/java/com/safeway/tech/service/services/RouteSchoolService.java - REST endpoints → Student management: serves CRUD
src/main/java/com/safeway/tech/api/controllers/StudentController.java - REST endpoints → Guardian management: serves requests
src/main/java/com/safeway/tech/api/controllers/StudentController.java - REST endpoints → Guardian invitations: serves invitations
src/main/java/com/safeway/tech/api/controllers/GuardianInvitationController.java - REST endpoints → School management: serves requests
src/main/java/com/safeway/tech/api/controllers/RouteController.java - REST endpoints → Attendance: records presence
src/main/java/com/safeway/tech/api/controllers/RouteController.java - REST endpoints → Transport management: serves requests
- REST endpoints → User profiles: serves profiles
- Auth endpoints → Auth use cases: invokes
src/main/java/com/safeway/tech/auth/infrastructure/entrypoint/http/AuthV2Controller.java - Auth use cases → JWT issuance: issues tokens
- Student management → JPA repositories: reads and writes
src/main/java/com/safeway/tech/service/services/StudentService.java - Student management → Student events: publishes lifecycle
src/main/java/com/safeway/tech/service/services/StudentService.java - Student events → RabbitMQ: emits events
README.md - Route optimization → Google Maps APIs: optimizes routes
README.md - Address geocoding → Google Maps APIs: geocodes addresses
README.md - Route orchestration → Route optimization: requests optimization
- Financial capabilities → Financial service: integrates