How shaikat0079/my-fitlog works
FitLog is a workout-tracking web app. Users browse an API-backed workout library, open workout details, then add workouts to today’s plan or save them. The plan view summarizes the day and lets users sort, complete, or remove entries. Shared React context holds plan and saved lists in memory; no persistence is shown. The graph also includes the app shell and documented error handling. Relationships for unsampled error routes are based on README documentation; source excerpts do not show every route or integration.
Main entry points: page.tsx Workout details · WorkoutsProvider.tsx Workout state · Workouts.tsx Workout listing · layout.tsx Root layout
Components 19
Workout discovery
- Home route
app/page.tsx - Hero banner
app/home/Banner.tsx - Workout listing
app/home/Workouts.tsx - Workout card
components/shared/WorkoutCard.tsx - Workout details
app/workouts/[id]/page.tsx
Plan and saved lists
- Plan page
app/my-plan/page.tsx - Plan and saved tabs
components/Tabs.tsx - Add to plan
components/workoutButtons/TodayWorkoutsButton.tsx - Save workout
components/workoutButtons/SavedWorkoutsButton.tsx - Workout state
context/WorkoutsProvider.tsx
Application shell
- Navigation bar
components/shared/Navbar.tsx - Plan badge
components/shared/PlanBadge.tsx - Saved badge
components/shared/SaveBadge.tsx - Root layout
app/layout.tsx - Footer
components/shared/Footer.tsx - Error and not-found routes
app/error.tsx
Workout domain
- Workout data type
Types/workout.type.ts
Other components
- User
- Workout REST API
Connections 24
- User → Home route: browses
README.md - User → Plan page: manages plan
README.md - Home route → Hero banner: renders
app/page.tsx - Home route → Workout listing: renders
app/page.tsx - Workout listing → Workout REST API: fetches workouts
app/home/Workouts.tsx - Workout listing → Workout card: renders cards
app/home/Workouts.tsx - Workout card → Workout details: links to details
README.md - Workout details → Workout REST API: fetches workout
app/workouts/[id]/page.tsx - Workout details → Add to plan: renders
app/workouts/[id]/page.tsx - Workout details → Save workout: renders
app/workouts/[id]/page.tsx - Plan page → Workout state: reads plan
app/my-plan/page.tsx - Plan page → Plan and saved tabs: renders
app/my-plan/page.tsx - Plan and saved tabs → Workout state: reads and updates
components/Tabs.tsx - Add to plan → Workout state: adds workout
components/workoutButtons/TodayWorkoutsButton.tsx - Save workout → Workout state: saves workout
components/workoutButtons/SavedWorkoutsButton.tsx - Navigation bar → Plan badge: renders
components/shared/Navbar.tsx - Navigation bar → Saved badge: renders
components/shared/Navbar.tsx - Root layout → Navigation bar: renders
app/layout.tsx - Root layout → Footer: renders
app/layout.tsx - Root layout → Workout state: provides context
app/layout.tsx - Workout details → Error and not-found routes: handles failures
README.md - Workout listing → Workout data type: uses workout shape
app/home/Workouts.tsx - Workout details → Workout data type: uses workout shape
app/workouts/[id]/page.tsx - Workout state → Workout data type: stores workouts
context/WorkoutsProvider.tsx