How milosmarinkovic1/fitness-app works
This is a full-stack fitness tracker. Users register or log in, then record workout sessions, exercises and sets, review analytics, and manage dated body measurements; the Vue application presents those flows and calls the Spring API. Analytics are computed from workout sets, while measurements have their own CRUD lifecycle. The README documents chart-based weight progress and four analytics; sampled source confirms the set-based analytics and measurement persistence. Frontend view wiring and several backend services were not sampled, so some feature links are represented at their documented module boundaries.
Main entry points: axios.ts HTTP client · index.ts Page routing · SetService.java Set and analytics service · UserRepository.java User repository
Components 29
Vue application
- App shell
frontend/src/App.vue - Page routing
frontend/src/router/index.ts - Login and register
frontend/src/views/LoginView.vue - Registration view
frontend/src/views/RegisterView.vue - Analytics dashboard
frontend/src/views/DashboardView.vue - Workout logging
frontend/src/views/WorkoutView.vue - Measurement tracking
frontend/src/views/MeasurementsView.vue - Auth state
frontend/src/stores/authStore.ts - Workout state
frontend/src/stores/workoutStore.ts - HTTP client
frontend/src/api/axios.ts
Spring API
- Authentication API
fitness-app/src/main/java/com/fitnessapp/controller/AuthController.java - Workout API
fitness-app/src/main/java/com/fitnessapp/controller/WorkoutController.java - Analytics API
fitness-app/src/main/java/com/fitnessapp/controller/AnalyticsController.java - Measurement API
fitness-app/src/main/java/com/fitnessapp/controller/BodyMeasurementController.java - User API
fitness-app/src/main/java/com/fitnessapp/controller/UserController.java
Domain services
- Authentication service
fitness-app/src/main/java/com/fitnessapp/service/AuthService.java - Token service
fitness-app/src/main/java/com/fitnessapp/service/JwtService.java - Workout service
fitness-app/src/main/java/com/fitnessapp/service/WorkoutService.java - Set and analytics service
fitness-app/src/main/java/com/fitnessapp/service/SetService.java - Measurement service
fitness-app/src/main/java/com/fitnessapp/service/BodyMeasurementService.java - User service
fitness-app/src/main/java/com/fitnessapp/service/UserService.java
Persistence and security
- User repository
fitness-app/src/main/java/com/fitnessapp/repository/UserRepository.java - Workout repository
fitness-app/src/main/java/com/fitnessapp/repository/WorkoutRepository.java - Set repository
fitness-app/src/main/java/com/fitnessapp/repository/SetRepository.java - Measurement repository
fitness-app/src/main/java/com/fitnessapp/repository/BodyMeasurementRepository.java - JWT request security
fitness-app/src/main/java/com/fitnessapp/config/SecurityConfig.java - JWT filter
fitness-app/src/main/java/com/fitnessapp/filter/JwtFilter.java
Other components
- Fitness user
- PostgreSQL
Connections 42
- Fitness user → App shell: uses
- App shell → Page routing: renders routes
- Page routing → Login and register: routes to
- Page routing → Registration view: routes to
- Page routing → Analytics dashboard: routes to
- Page routing → Workout logging: routes to
- Page routing → Measurement tracking: routes to
- Login and register → Auth state: updates auth
- Registration view → Auth state: updates auth
- Workout logging → Workout state: updates workouts
- Analytics dashboard → HTTP client: requests analytics
- Workout logging → HTTP client: requests workouts
- Measurement tracking → HTTP client: requests measurements
- Auth state → HTTP client: requests auth
- HTTP client → Authentication API: sends requests
- HTTP client → Workout API: sends requests
- HTTP client → Analytics API: sends requests
- HTTP client → Measurement API: sends requests
- HTTP client → User API: sends requests
- Authentication API → Authentication service: delegates auth
- Workout API → Workout service: delegates workouts
- Workout API → Set and analytics service: delegates sets
- Analytics API → Set and analytics service: delegates analytics
- Measurement API → Measurement service: delegates CRUD
- User API → User service: delegates users
- Authentication service → User repository: reads and saves
- Authentication service → Token service: generates token
- Workout service → User repository: finds user
- Workout service → Workout repository: reads and saves
- Set and analytics service → Workout repository: finds workout
- Set and analytics service → User repository: finds user
- Set and analytics service → Set repository: saves sets; queries metrics
- Set and analytics service → PostgreSQL: runs native analytics
- Measurement service → User repository: finds user
- Measurement service → Measurement repository: reads and writes
- User service → User repository: reads users
- JWT request security → JWT filter: configures filter
- JWT filter → Token service: validates token
- User repository → PostgreSQL: persists users
- Workout repository → PostgreSQL: persists workouts
- Set repository → PostgreSQL: queries workout data
- Measurement repository → PostgreSQL: persists measurements