How fitcubes/backend works
FitCubes is a Spring Boot fitness and nutrition backend. Users authenticate, manage food and exercise records, and access diary, dashboard, and weight-progress features; they can also browse products, recipes, and exercises. Admins have product and recipe management endpoints. The graph preserves these domain areas, but only the recipe controller and authentication-related calls are directly shown in sampled source; other service links are therefore left unwired. PostgreSQL and Redis are documented dependencies.
Main entry points: AuthenticationService.java Authentication service · RecipeController.java Recipe API · TokenBlacklistService.java Token blacklist · UserRepository.java User repository
Components 31
API endpoints
- Recipe API
src/main/java/fitcubes/controller/RecipeController.java - Authentication API
src/main/java/fitcubes/controller/AuthenticationController.java - Diary API
src/main/java/fitcubes/controller/DiaryController.java - Dashboard API
src/main/java/fitcubes/controller/DashboardController.java - Food entry API
src/main/java/fitcubes/controller/FoodEntryController.java - Exercise entry API
src/main/java/fitcubes/controller/ExerciseEntryController.java - Weight log API
src/main/java/fitcubes/controller/WeightLogController.java - Product API
src/main/java/fitcubes/controller/ProductController.java - Admin APIs
src/main/java/fitcubes/controller/AdminProductController.java
Identity and security
- Authentication service
src/main/java/fitcubes/security/AuthenticationService.java - User details lookup
src/main/java/fitcubes/security/CustomUserDetailsService.java - JWT utilities
src/main/java/fitcubes/security/JwtUtil.java - Token blacklist
src/main/java/fitcubes/security/TokenBlacklistService.java - Authentication manager
- User repository
src/main/java/fitcubes/repository/UserRepository.java - Role repository
src/main/java/fitcubes/repository/RoleRepository.java - User mapper
src/main/java/fitcubes/mapper/UserMapper.java
Nutrition and diary
- Diary assembly
src/main/java/fitcubes/service/diary/DiaryServiceImpl.java - Food entry service
src/main/java/fitcubes/service/foodentry/impl/FoodEntryServiceImpl.java - Food calculations
src/main/java/fitcubes/service/foodentry/impl/FoodCalculationServiceImpl.java - Daily summary
src/main/java/fitcubes/service/dashboard/impl/DailySummaryServiceImpl.java
Activity and progress
- Exercise entries
src/main/java/fitcubes/service/exerciseentry/impl/ExerciseEntryServiceImpl.java - Exercise calculations
src/main/java/fitcubes/service/exerciseentry/impl/ExerciseCalculationServiceImpl.java - Weight logging
src/main/java/fitcubes/service/weight/impl/WeightLogServiceImpl.java - Weight progress
src/main/java/fitcubes/service/weight/impl/WeightProgressServiceImpl.java - Weight prediction
src/main/java/fitcubes/service/weight/impl/WeightPredictionServiceImpl.java
Food and recipe catalog
- Recipe service
src/main/java/fitcubes/service/recipe/impl/RecipeServiceImpl.java - Product service
src/main/java/fitcubes/service/product/impl/ProductServiceImpl.java - Exercise catalog
src/main/java/fitcubes/service/exercise/ExerciseServiceImpl.java
Other components
- User
- Redis
Connections 10
- User → Recipe API: requests recipes
- Recipe API → Recipe service: delegates
- Authentication service → Authentication manager: authenticates
- Authentication service → User repository: reads and saves
- Authentication service → Role repository: looks up role
- Authentication service → User mapper: maps registration
- Authentication service → JWT utilities: issues token
- Authentication service → Token blacklist: blacklists token
- User details lookup → User repository: loads user
- Token blacklist → Redis: stores blacklist