# earthxxrhythm/fittracker architecture

> Architecture diagram of the GitHub repository earthxxrhythm/fittracker, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/earthxxrhythm/fittracker
- Repository: https://github.com/earthxxrhythm/fittracker

## Overview

FitTracker is a HarmonyOS fitness-tracking app. Its documented user journey runs from launch and welcome through account access and goal setup into the app shell, where users can view plans, preview and complete workouts, then review results. Other documented product areas include exercise browsing, body data, profile/settings, and monetization. The graph follows the README’s stated route and feature inventory; runtime source excerpts were not provided, so internal service wiring is intentionally limited.

Main entry points: [`entry/src/main/ets/app/PencilAppShell.ets`](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/app/PencilAppShell.ets) (App shell), [`entry/src/main/ets/features/pencil/pages/PencilActivePage.ets`](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilActivePage.ets) (Active workout), [`entry/src/main/ets/features/pencil/pages/PencilLoginPage.ets`](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilLoginPage.ets) (Login and register), [`entry/src/main/ets/features/pencil/pages/PencilPlanPage.ets`](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilPlanPage.ets) (Training plans)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_journey["Onboarding and training"]
  node_launch["Splash"]
  node_welcome["Welcome"]
  node_auth["Login and register"]
  node_goals["Goal setup<br/>[GoalSetupPage.ets]"]
end

subgraph group_app["App experience"]
  node_shell["App shell<br/>[PencilAppShell.ets]"]
  node_home["Home<br/>[PencilHomePage.ets]"]
  node_plans["Training plans<br/>[PencilPlanPage.ets]"]
  node_preview["Workout preview"]
  node_active["Active workout"]
  node_summary["Workout summary"]
  node_review["Progress review"]
  node_profile["Profile and settings"]
end

subgraph group_domain["Fitness features"]
  node_exercise["Exercise library"]
  node_exercise_detail["Exercise detail"]
  node_body["Body data<br/>[BodyDataPage.ets]"]
  node_monetization["Monetization hub"]
end

subgraph group_services["Domain services"]
  node_auth_service["Authentication<br/>[AuthService.ets]"]
  node_plan_engine["Plan engine<br/>[PlanEngine.ets]"]
  node_workout_service["Workout sessions"]
  node_review_service["Review services<br/>[ReviewService.ets]"]
  node_content["Exercise content"]
end

node_user(("User"))

node_user -->|"opens app"| node_launch
node_launch -->|"continues to"| node_welcome
node_welcome -->|"proceeds to"| node_auth
node_auth -->|"continues to"| node_goals
node_goals -->|"enters"| node_shell
node_user -->|"uses"| node_shell
node_shell -->|"shows"| node_home
node_shell -->|"shows"| node_plans
node_shell -->|"shows"| node_preview
node_shell -->|"shows"| node_active
node_shell -->|"shows"| node_summary
node_shell -->|"shows"| node_review
node_shell -->|"shows"| node_profile
node_plans -->|"previews"| node_preview
node_preview -->|"starts"| node_active
node_active -->|"completes"| node_summary
node_shell -->|"shows"| node_exercise
node_exercise -->|"opens"| node_exercise_detail
node_shell -->|"shows"| node_body
node_shell -->|"shows"| node_monetization
node_auth -->|"uses"| node_auth_service
node_plans -->|"uses"| node_plan_engine
node_active -->|"uses"| node_workout_service
node_review -->|"uses"| node_review_service
node_exercise -->|"reads content"| node_content

click node_launch "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilSplashPage.ets"
click node_welcome "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/welcome/pages/PencilWelcomePage.ets"
click node_auth "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilLoginPage.ets"
click node_goals "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/onboarding/pages/GoalSetupPage.ets"
click node_shell "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/app/PencilAppShell.ets"
click node_home "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilHomePage.ets"
click node_plans "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilPlanPage.ets"
click node_preview "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilPreviewPage.ets"
click node_active "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilActivePage.ets"
click node_summary "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/workout/pages/WorkoutCompletePage.ets"
click node_review "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilReviewPage.ets"
click node_profile "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilProfilePage.ets"
click node_exercise "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/exercise/pages/ExerciseLibraryPage.ets"
click node_exercise_detail "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/exercise/pages/ExerciseDetailPage.ets"
click node_body "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/body/pages/BodyDataPage.ets"
click node_monetization "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/monetization/pages/MonetizationHubPage.ets"
click node_auth_service "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/common/services/AuthService.ets"
click node_plan_engine "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/shared/services/PlanEngine.ets"
click node_workout_service "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/common/services/WorkoutSessionService.ets"
click node_review_service "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/shared/services/ReviewService.ets"
click node_content "https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/shared/services/ContentRepository.ets"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_launch,node_welcome,node_auth,node_goals,node_user toneBlue
class node_shell,node_home,node_plans,node_preview,node_active,node_summary,node_review,node_profile toneAmber
class node_exercise,node_exercise_detail,node_body,node_monetization toneMint
class node_auth_service,node_plan_engine,node_workout_service,node_review_service,node_content toneRose
```

## Components

### Onboarding and training

- [Splash](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilSplashPage.ets): `entry/src/main/ets/features/pencil/pages/PencilSplashPage.ets`
- [Welcome](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/welcome/pages/PencilWelcomePage.ets): `entry/src/main/ets/features/welcome/pages/PencilWelcomePage.ets`
- [Login and register](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilLoginPage.ets): `entry/src/main/ets/features/pencil/pages/PencilLoginPage.ets`
- [Goal setup](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/onboarding/pages/GoalSetupPage.ets): `entry/src/main/ets/features/onboarding/pages/GoalSetupPage.ets`

### App experience

- [App shell](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/app/PencilAppShell.ets): `entry/src/main/ets/app/PencilAppShell.ets`
- [Home](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilHomePage.ets): `entry/src/main/ets/features/pencil/pages/PencilHomePage.ets`
- [Training plans](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilPlanPage.ets): `entry/src/main/ets/features/pencil/pages/PencilPlanPage.ets`
- [Workout preview](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilPreviewPage.ets): `entry/src/main/ets/features/pencil/pages/PencilPreviewPage.ets`
- [Active workout](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilActivePage.ets): `entry/src/main/ets/features/pencil/pages/PencilActivePage.ets`
- [Workout summary](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/workout/pages/WorkoutCompletePage.ets): `entry/src/main/ets/features/workout/pages/WorkoutCompletePage.ets`
- [Progress review](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilReviewPage.ets): `entry/src/main/ets/features/pencil/pages/PencilReviewPage.ets`
- [Profile and settings](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/pencil/pages/PencilProfilePage.ets): `entry/src/main/ets/features/pencil/pages/PencilProfilePage.ets`

### Fitness features

- [Exercise library](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/exercise/pages/ExerciseLibraryPage.ets): `entry/src/main/ets/features/exercise/pages/ExerciseLibraryPage.ets`
- [Exercise detail](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/exercise/pages/ExerciseDetailPage.ets): `entry/src/main/ets/features/exercise/pages/ExerciseDetailPage.ets`
- [Body data](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/body/pages/BodyDataPage.ets): `entry/src/main/ets/features/body/pages/BodyDataPage.ets`
- [Monetization hub](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/features/monetization/pages/MonetizationHubPage.ets): `entry/src/main/ets/features/monetization/pages/MonetizationHubPage.ets`

### Domain services

- [Authentication](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/common/services/AuthService.ets): `entry/src/main/ets/common/services/AuthService.ets`
- [Plan engine](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/shared/services/PlanEngine.ets): `entry/src/main/ets/shared/services/PlanEngine.ets`
- [Workout sessions](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/common/services/WorkoutSessionService.ets): `entry/src/main/ets/common/services/WorkoutSessionService.ets`
- [Review services](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/shared/services/ReviewService.ets): `entry/src/main/ets/shared/services/ReviewService.ets`
- [Exercise content](https://github.com/earthxxrhythm/fittracker/blob/master/entry/src/main/ets/shared/services/ContentRepository.ets): `entry/src/main/ets/shared/services/ContentRepository.ets`

### Other components

- **User**

## Connections

- User → Splash: opens app
- Splash → Welcome: continues to
- Welcome → Login and register: proceeds to
- Login and register → Goal setup: continues to
- Goal setup → App shell: enters
- User → App shell: uses
- App shell → Home: shows
- App shell → Training plans: shows
- App shell → Workout preview: shows
- App shell → Active workout: shows
- App shell → Workout summary: shows
- App shell → Progress review: shows
- App shell → Profile and settings: shows
- Training plans → Workout preview: previews
- Workout preview → Active workout: starts
- Active workout → Workout summary: completes
- App shell → Exercise library: shows
- Exercise library → Exercise detail: opens
- App shell → Body data: shows
- App shell → Monetization hub: shows
- Login and register → Authentication: uses
- Training plans → Plan engine: uses
- Active workout → Workout sessions: uses
- Progress review → Review services: uses
- Exercise library → Exercise content: reads content
