How ayushmancodes2004/irctc works
This repository contains two Spring services: User-Service handles account registration, OTP verification, login, refresh tokens, and OAuth identity; Admin-Service manages stations and train definitions. The main user flow is an HTTP request through an auth endpoint into authentication logic, with OTP/session state and user records handled by supporting services. The admin flow creates stations or trains, persists them through repositories, and publishes creation events. Evidence is limited to the supplied excerpts and SOURCE INDEX; unsampled routes and infrastructure wiring are not inferred.
Main entry points: AuthService.java Auth workflows · StationService.java Station creation · TrainService.java Train creation · UserRepository.java User repository
Components 22
Identity and access
- Auth endpoints
User-Service/src/main/java/com/irctc/userservice/controller/AuthController.java - Auth workflows
User-Service/src/main/java/com/irctc/userservice/service/AuthService.java - OTP verification
User-Service/src/main/java/com/irctc/userservice/service/OtpService.java - OAuth identities
User-Service/src/main/java/com/irctc/userservice/service/OAuth2UserService.java - OIDC integration
User-Service/src/main/java/com/irctc/userservice/Security/CustomOidcUserService.java - Device fingerprint
User-Service/src/main/java/com/irctc/userservice/Security/DeviceFingerprintService.java - JWT utilities
User-Service/src/main/java/com/irctc/userservice/Security/JwtUtil.java - Refresh sessions
User-Service/src/main/java/com/irctc/userservice/Security/TokenSessionService.java
Railway administration
- Station endpoint
Admin-Service/src/main/java/com/irctc/adminservice/Controller/StationController.java - Station creation
Admin-Service/src/main/java/com/irctc/adminservice/Service/StationService.java - Station repository
Admin-Service/src/main/java/com/irctc/adminservice/Repository/StationRepository.java - Train endpoint
Admin-Service/src/main/java/com/irctc/adminservice/Controller/TrainController.java - Train creation
Admin-Service/src/main/java/com/irctc/adminservice/Service/TrainService.java - Train repository
Admin-Service/src/main/java/com/irctc/adminservice/Repository/TrainRepository.java
Domain data
- User records
User-Service/src/main/java/com/irctc/userservice/entity/User.java - User repository
User-Service/src/main/java/com/irctc/userservice/repository/UserRepository.java - Station data
Admin-Service/src/main/java/com/irctc/adminservice/Entity/Station.java - Train, route, seats
Admin-Service/src/main/java/com/irctc/adminservice/Entity/Train.java
External integrations
- Redis
- Kafka events
Other components
- User
- Admin
Connections 22
- User → Auth endpoints: sends requests
User-Service/src/main/java/com/irctc/userservice/controller/AuthController.java - Auth endpoints → Auth workflows: dispatches auth
User-Service/src/main/java/com/irctc/userservice/controller/AuthController.java - Auth workflows → OTP verification: requests OTP
User-Service/src/main/java/com/irctc/userservice/service/AuthService.java - Auth workflows → User repository: reads and saves
User-Service/src/main/java/com/irctc/userservice/service/AuthService.java - Auth workflows → Device fingerprint: fingerprints device
User-Service/src/main/java/com/irctc/userservice/service/AuthService.java - Auth workflows → JWT utilities: creates and parses
User-Service/src/main/java/com/irctc/userservice/service/AuthService.java - Auth workflows → Refresh sessions: updates sessions
User-Service/src/main/java/com/irctc/userservice/service/AuthService.java - Refresh sessions → Redis: stores session state
User-Service/src/main/java/com/irctc/userservice/Security/TokenSessionService.java - OTP verification → Redis: stores OTP state
User-Service/src/main/java/com/irctc/userservice/service/OtpService.java - OIDC integration → OAuth identities: delegates identity
User-Service/src/main/java/com/irctc/userservice/Security/CustomOidcUserService.java - OAuth identities → User repository: reads and saves
User-Service/src/main/java/com/irctc/userservice/service/OAuth2UserService.java - User repository → User records: persists records
User-Service/src/main/java/com/irctc/userservice/repository/UserRepository.java - Admin → Station endpoint: creates station
Admin-Service/src/main/java/com/irctc/adminservice/Controller/StationController.java - Station endpoint → Station creation: dispatches creation
Admin-Service/src/main/java/com/irctc/adminservice/Controller/StationController.java - Station creation → Station repository: checks and saves
Admin-Service/src/main/java/com/irctc/adminservice/Service/StationService.java - Station creation → Kafka events: publishes event
Admin-Service/src/main/java/com/irctc/adminservice/Service/StationService.java - Station repository → Station data: uses entity
Admin-Service/src/main/java/com/irctc/adminservice/Service/StationService.java - Admin → Train endpoint: creates train
Admin-Service/src/main/java/com/irctc/adminservice/Controller/TrainController.java - Train endpoint → Train creation: dispatches creation
Admin-Service/src/main/java/com/irctc/adminservice/Controller/TrainController.java - Train creation → Train repository: checks and saves
Admin-Service/src/main/java/com/irctc/adminservice/Service/TrainService.java - Train creation → Kafka events: publishes event
Admin-Service/src/main/java/com/irctc/adminservice/Service/TrainService.java - Train repository → Train, route, seats: uses entity
Admin-Service/src/main/java/com/irctc/adminservice/Repository/TrainRepository.java