How koroandshiro/climbbeta works
ClimbBeta serves climbers through a mobile app and gym owners through a web backoffice, with a Kotlin API supporting account activation, climbing logs, gym discovery/management, and social activity. The principal workflow is account access, logging an indoor, free-gym, or outdoor ascent, then viewing logs and social feed. The README documents additional exploration, profile, media, and admin capabilities. Sampled source confirms selected API/service/repository calls; other feature links are omitted where wiring was not sampled.
Main entry points: http Feature APIs · UserController.kt Account API · api.ts Mobile API client · AscentService.kt Logbook and feed
Components 23
Client apps
- Climber app
frontend/ClimbBetaMobile/App.tsx - Mobile auth
frontend/ClimbBetaMobile/src/services/authService.ts - Mobile API client
frontend/ClimbBetaMobile/src/services/api.ts - Owner backoffice
frontend/ClimbBetaWeb/src/App.tsx - Web auth
frontend/ClimbBetaWeb/src/services/authService.ts - Web API client
frontend/ClimbBetaWeb/src/services/api.ts
API boundary
- Account API
backend/src/main/kotlin/com/climbbeta/api/http/UserController.kt - Ascent API
backend/src/main/kotlin/com/climbbeta/api/http/AscentController.kt - Feature APIs
backend/src/main/kotlin/com/climbbeta/api/http - Access pipeline
backend/src/main/kotlin/com/climbbeta/api/pipeline/AuthenticationInterceptor.kt
Product services
- Identity and activation
backend/src/main/kotlin/com/climbbeta/api/services/UserService.kt - Logbook and feed
backend/src/main/kotlin/com/climbbeta/api/services/AscentService.kt - Outdoor routes
backend/src/main/kotlin/com/climbbeta/api/services/OutdoorRouteService.kt - Gym management
backend/src/main/kotlin/com/climbbeta/api/services/GymService.kt - Social interactions
backend/src/main/kotlin/com/climbbeta/api/services - Stats and rankings
backend/src/main/kotlin/com/climbbeta/api/services/GamificationService.kt - Media handling
backend/src/main/kotlin/com/climbbeta/api/services/MediaService.kt
Persistence
- JDBI repositories
backend/src/main/kotlin/com/climbbeta/api/repository_jdbi
External systems
- PostgreSQL
- MinIO storage
Other components
- Climber
- Gym owner
- Admin
Connections 25
- Climber → Climber app: uses
- Gym owner → Owner backoffice: uses
- Admin → Account API: generates codes
- Climber app → Mobile auth: authenticates via
- Mobile auth → Mobile API client: requests through
- Owner backoffice → Web auth: authenticates via
- Web auth → Web API client: requests through
- Mobile API client → Account API: calls API
- Mobile API client → Ascent API: calls API
- Mobile API client → Feature APIs: calls API
- Web API client → Account API: calls API
- Web API client → Feature APIs: calls API
- Account API → Identity and activation: calls
- Ascent API → Logbook and feed: calls
- Access pipeline → Account API: authenticates requests
- Identity and activation → JDBI repositories: reads and writes
- Logbook and feed → JDBI repositories: reads and writes
- Logbook and feed → Outdoor routes: finds or creates route
- Logbook and feed → Media handling: records media
- Feature APIs → Gym management: gym operations
- Feature APIs → Social interactions: social operations
- Feature APIs → Stats and rankings: stats and rankings
- Feature APIs → Media handling: media operations
- JDBI repositories → PostgreSQL: queries
- Media handling → MinIO storage: stores images