How gaouravpatil/fitness-microservice works
Fitness Microservice exposes registration, authentication and profile APIs, then accepts authenticated activity tracking and provides paginated activity reads. Activity submission validates the user, persists the activity, and publishes it for recommendation generation; unpublished events are retried. The README also documents recommendation reads and owner-or-admin access. The sampled source shows the user and activity service internals; AI, Kafka and database links are based on README documentation, since their implementation files are absent from the supplied tree.
Main entry points: AuthService.java Authentication · ActivityService.java Activity Workflow · UserController.java User API · ActivityRepublisher.java Scheduled Republisher
Components 18
Identity and Access
- User API
userservice/src/main/java/com/fitness/userservice/controller/UserController.java - User Profiles
userservice/src/main/java/com/fitness/userservice/service/UserService.java - Authentication
userservice/src/main/java/com/fitness/userservice/service/AuthService.java - JWT Issuance
userservice/src/main/java/com/fitness/userservice/security/JwtService.java - Refresh Tokens
userservice/src/main/java/com/fitness/userservice/security/RefreshTokenService.java - Login Throttling
userservice/src/main/java/com/fitness/userservice/security/LoginAttemptService.java
Activity Tracking
- Activity API
activityservice/src/main/java/com/fitness/activityservice/controller/ActivityController.java - Activity Workflow
activityservice/src/main/java/com/fitness/activityservice/service/ActivityService.java - User Validation
activityservice/src/main/java/com/fitness/activityservice/service/UserValidationService.java - Activity Repository
activityservice/src/main/java/com/fitness/activityservice/repository/ActivityRepository.java
Event and Recommendations
- Activity Publisher
activityservice/src/main/java/com/fitness/activityservice/service/ActivityPublisher.java - Scheduled Republisher
activityservice/src/main/java/com/fitness/activityservice/service/ActivityRepublisher.java - Activity Kafka Topic
- Recommendation Service
Persistent State
- PostgreSQL
- Activity MongoDB
- Recommendation MongoDB
Other components
- Client
Connections 22
- Client → User API: register or sign in
README.md - User API → User Profiles: routes profile
userservice/src/main/java/com/fitness/userservice/controller/UserController.java - User API → Authentication: routes authentication
userservice/src/main/java/com/fitness/userservice/controller/UserController.java - User Profiles → PostgreSQL: reads and writes
userservice/src/main/java/com/fitness/userservice/service/UserService.java - Authentication → PostgreSQL: looks up users
userservice/src/main/java/com/fitness/userservice/service/AuthService.java - Authentication → JWT Issuance: issues access token
userservice/src/main/java/com/fitness/userservice/service/AuthService.java - Authentication → Refresh Tokens: issues or rotates
userservice/src/main/java/com/fitness/userservice/service/AuthService.java - Authentication → Login Throttling: checks attempts
userservice/src/main/java/com/fitness/userservice/service/AuthService.java - Refresh Tokens → PostgreSQL: stores token hashes
userservice/src/main/java/com/fitness/userservice/security/RefreshTokenService.java - Client → Activity API: tracks or reads
README.md - Activity API → Activity Workflow: routes activities
activityservice/src/main/java/com/fitness/activityservice/controller/ActivityController.java - Activity Workflow → User Validation: validates owner
activityservice/src/main/java/com/fitness/activityservice/service/ActivityService.java - User Validation → User API: checks user
README.md - Activity Workflow → Activity Repository: reads and saves
activityservice/src/main/java/com/fitness/activityservice/service/ActivityService.java - Activity Repository → Activity MongoDB: persists activities
README.md - Activity Workflow → Activity Publisher: publishes saved activity
activityservice/src/main/java/com/fitness/activityservice/service/ActivityService.java - Activity Publisher → Activity Kafka Topic: publishes event
README.md - Scheduled Republisher → Activity MongoDB: retries unpublished events
README.md - Scheduled Republisher → Activity Kafka Topic: retries publication
README.md - Activity Kafka Topic → Recommendation Service: delivers activity
README.md - Recommendation Service → Recommendation MongoDB: stores recommendations
README.md - Client → Recommendation Service: reads recommendations
README.md