How sander-homelabs/kilometertrackerbackend works
KilometerTrackerBackend is a Ktor backend. Its evidenced user-facing workflow accepts registration and activation requests, and supports login and refresh-token requests; the corresponding routes dispatch to user-service use cases. JWT handling and persistence are visible internally, as is Knock-backed email delivery. The README provides no capability details, and group/trip modules appear in the tree but their implementation was not sampled, so their behavior and wiring are left unspecified.
Main entry points: DatabaseModule.kt Database wiring · Application.kt Ktor application · UserRoutes.kt User routes · AuthRoutes.kt Auth routes
Components 19
HTTP runtime
- Ktor application
app/src/main/kotlin/Application.kt - User routes
features/user/user-api/src/main/kotlin/UserRoutes.kt - Auth routes
features/user/user-api/src/main/kotlin/AuthRoutes.kt - Group feature modules
features/group - Trip feature modules
features/trip
User lifecycle
- Registration
features/user/user-service/src/main/kotlin/RegisterUserUseCase.kt - Activation
features/user/user-service/src/main/kotlin/ActivateUserUseCase.kt
Authentication
- Login
features/user/user-service/src/main/kotlin/LoginUseCase.kt - Token refresh
features/user/user-service/src/main/kotlin/RefreshAccessTokenUseCase.kt - JWT token service
core/security/src/main/kotlin/JwtTokenService.kt
Persistence and email
- Refresh token repository
core/database/src/main/kotlin/user/RefreshTokenRepositoryImpl.kt - User repository
core/database/src/main/kotlin/user/UserRepositoryImpl.kt - Confirmation codes
core/database/src/main/kotlin/user/UserConfirmationCodeRepositoryImpl.kt - Database wiring
core/database/src/main/kotlin/di/DatabaseModule.kt - Email delivery
core/email/src/main/kotlin/EmailService.kt - Email workflows
core/email/src/main/kotlin/EmailWorkflow.kt
Other components
- API client
- PostgreSQL
- Knock
Connections 15
- API client → Ktor application: sends requests
- Ktor application → User routes: registers routes
- Ktor application → Auth routes: registers routes
- User routes → Registration: dispatches registration
- User routes → Activation: dispatches activation
- Auth routes → Login: dispatches login
- Auth routes → Token refresh: dispatches refresh
- JWT token service → Refresh token repository: reads and updates
- Database wiring → User repository: binds repository
- Database wiring → Confirmation codes: binds repository
- Database wiring → Refresh token repository: binds repository
- User repository → PostgreSQL: reads and writes
- Confirmation codes → PostgreSQL: reads and writes
- Refresh token repository → PostgreSQL: reads and writes
- Email delivery → Knock: triggers workflows