How zhouqifan666/goldengym works
GoldenGYM is a single-user fitness check-in and goal-tracking web app. Users record workouts, review and edit history, inspect weekly/monthly/total statistics, view activity by calendar date, and manage goals. The Vue pages call API modules through a shared Axios request layer; the Spring REST controllers delegate to service implementations and MyBatis mappers for persistence. The README documents the overall layers and MySQL stack, while sampled source confirms several key calls. Some frontend and persistence details are unsampled, so the graph omits unverified interactions.
Main entry points: index.js Page routing · api/exercise.js Exercise API client · stores/exercise.js User context · Home.vue Home dashboard
Components 23
Web experience
- Page routing
frontend/src/router/index.js - Home dashboard
frontend/src/views/Home.vue - Quick check-in
frontend/src/views/QuickCheck.vue - Workout history
frontend/src/views/ExerciseHistory.vue - Activity calendar
frontend/src/views/Calendar.vue - Goal management
frontend/src/views/MyGoals.vue - User context
frontend/src/stores/exercise.js - Exercise API client
frontend/src/api/exercise.js - Goal API client
frontend/src/api/goal.js - HTTP request layer
frontend/src/api/request.js
REST and services
- Spring REST API
backend/src/main/java/com/goldengym/controller/ExerciseController.java - Exercise endpoints
backend/src/main/java/com/goldengym/controller/ExerciseController.java - Goal endpoints
backend/src/main/java/com/goldengym/controller/GoalController.java - Exercise service
backend/src/main/java/com/goldengym/service/ExerciseService.java - Goal service
backend/src/main/java/com/goldengym/service/GoalService.java - Exercise logic
backend/src/main/java/com/goldengym/service/impl/ExerciseServiceImpl.java - Goal logic
backend/src/main/java/com/goldengym/service/impl/GoalServiceImpl.java
Domain and persistence
- Workout records
backend/src/main/java/com/goldengym/entity/ExerciseRecord.java - Exercise goals
backend/src/main/java/com/goldengym/entity/ExerciseGoal.java - Workout mapper
backend/src/main/java/com/goldengym/mapper/ExerciseRecordMapper.java - Goal mapper
backend/src/main/java/com/goldengym/mapper/ExerciseGoalMapper.java - MySQL database
Other components
- Personal user
Connections 31
- Personal user → Page routing: navigates
- Page routing → Home dashboard: routes to
frontend/src/router/index.js - Page routing → Quick check-in: routes to
frontend/src/router/index.js - Page routing → Workout history: routes to
frontend/src/router/index.js - Page routing → Activity calendar: routes to
frontend/src/router/index.js - Page routing → Goal management: routes to
frontend/src/router/index.js - Home dashboard → Exercise API client: requests workouts
frontend/src/views/Home.vue - Home dashboard → Goal API client: requests goals
frontend/src/views/Home.vue - Quick check-in → Exercise API client: submits workout
frontend/src/views/QuickCheck.vue - Workout history → Exercise API client: loads and edits
frontend/src/views/ExerciseHistory.vue - Activity calendar → Exercise API client: loads date data
frontend/src/views/Calendar.vue - Goal management → Goal API client: manages goals
frontend/src/views/MyGoals.vue - Home dashboard → User context: reads user context
frontend/src/views/Home.vue - Quick check-in → User context: reads user context
frontend/src/views/QuickCheck.vue - Workout history → User context: reads user context
frontend/src/views/ExerciseHistory.vue - Activity calendar → User context: reads user context
frontend/src/views/Calendar.vue - Goal management → User context: reads user context
frontend/src/views/MyGoals.vue - Exercise API client → HTTP request layer: sends requests
frontend/src/api/exercise.js - Goal API client → HTTP request layer: sends requests
frontend/src/api/goal.js - HTTP request layer → Spring REST API: calls API
- Spring REST API → Exercise endpoints: exposes
backend/src/main/java/com/goldengym/controller/ExerciseController.java - Exercise endpoints → Exercise service: delegates
backend/src/main/java/com/goldengym/controller/ExerciseController.java - Goal endpoints → Goal service: delegates
backend/src/main/java/com/goldengym/controller/GoalController.java - Exercise service → Exercise logic: implemented by
backend/src/main/java/com/goldengym/service/impl/ExerciseServiceImpl.java - Goal service → Goal logic: implemented by
backend/src/main/java/com/goldengym/service/impl/GoalServiceImpl.java - Exercise logic → Workout mapper: queries and writes
backend/src/main/java/com/goldengym/service/impl/ExerciseServiceImpl.java - Goal logic → Goal mapper: queries and writes
backend/src/main/java/com/goldengym/service/impl/GoalServiceImpl.java - Workout mapper → MySQL database: persists records
- Goal mapper → MySQL database: persists goals
- Exercise logic → Workout records: maps records
backend/src/main/java/com/goldengym/service/impl/ExerciseServiceImpl.java - Goal logic → Exercise goals: maps goals
backend/src/main/java/com/goldengym/service/impl/GoalServiceImpl.java