# holtwalker13/track-tracker architecture

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

- Interactive diagram: https://gitdiagram.com/holtwalker13/track-tracker
- Repository: https://github.com/holtwalker13/track-tracker

## Overview

Track Tracker is a multi-school athletics application for coaches and students to measure, compare, improve, compete, and project performance. Coaches maintain graduating-class rosters and class sections, create live testing sessions, and record attempts; the app saves results for performance views, leaderboards, analytics, comparisons, and projections. Coaches can also build or generate workout programs and students can log completed work. The graph follows sampled route-to-service calls and direct database access; README-listed screens and unsampled integrations are shown as capabilities, but uncertain UI-to-API wiring is omitted.

Main entry points: [`src/lib/db.ts`](https://github.com/holtwalker13/track-tracker/blob/main/src/lib/db.ts) (Prisma client), [`src/lib/queries`](https://github.com/holtwalker13/track-tracker/tree/main/src/lib/queries) (Performance queries), [`src/app/api/testing/save/route.ts`](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/testing/save/route.ts) (Save attempts), [`src/app/api/roster/import/route.ts`](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/roster/import/route.ts) (Roster import)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and schools"]
  node_login["Login<br/>[route.ts]"]
  node_school_admin["School admin<br/>[route.ts]"]
end

subgraph group_roster["Roster and classes"]
  node_roster_import["Roster import<br/>[route.ts]"]
  node_students_api["Student records<br/>[route.ts]"]
  node_classes_api["Class sections<br/>[route.ts]"]
  node_class_import["Class import<br/>[route.ts]"]
  node_student_login["Student login setup<br/>[student-login.ts]"]
end

subgraph group_testing["Testing and results"]
  node_testing_sessions["Testing sessions<br/>[route.ts]"]
  node_testing_save["Save attempts<br/>[route.ts]"]
  node_results_service["Result processing<br/>[results.ts]"]
  node_celebration["Board celebrations"]
  node_lifts_api["School lifts<br/>[route.ts]"]
  node_kpi_targets["KPI targets<br/>[route.ts]"]
end

subgraph group_workouts["Workout programs"]
  node_templates["Workout templates<br/>[route.ts]"]
  node_generator["Workout generation<br/>[route.ts]"]
  node_workout_generation_logic["Generator plans"]
end

subgraph group_insights["Performance insights"]
  node_coach_analytics["Coach analytics<br/>[page.tsx]"]
  node_coach_leaderboards["Coach leaderboards<br/>[page.tsx]"]
  node_coach_compare["Coach compare<br/>[page.tsx]"]
  node_student_performance["Student performance<br/>[page.tsx]"]
  node_student_projection["Student projection<br/>[page.tsx]"]
  node_queries["Performance queries"]
end

node_coach(("Coach"))
node_student(("Student"))
node_database_client["Prisma client<br/>[db.ts]"]
node_postgres[("PostgreSQL")]

node_coach -->|"signs in"| node_login
node_student -->|"signs in"| node_login
node_coach -->|"uploads roster"| node_roster_import
node_coach -->|"manages sections"| node_classes_api
node_coach -->|"imports sections"| node_class_import
node_coach -->|"starts testing"| node_testing_sessions
node_coach -->|"records attempts"| node_testing_save
node_coach -->|"manages lifts"| node_lifts_api
node_coach -->|"sets targets"| node_kpi_targets
node_coach -->|"builds programs"| node_templates
node_coach -->|"generates workouts"| node_generator
node_student -->|"reviews results"| node_student_performance
node_student -->|"views projection"| node_student_projection
node_coach -->|"reviews analytics"| node_coach_analytics
node_coach -->|"views rankings"| node_coach_leaderboards
node_coach -->|"compares athletes"| node_coach_compare
node_roster_import -->|"ensures accounts"| node_student_login
node_students_api -->|"ensures account"| node_student_login
node_testing_save -->|"saves results"| node_results_service
node_testing_save -->|"checks board hits"| node_celebration
node_generator -->|"builds plan"| node_workout_generation_logic
node_roster_import -->|"reads and writes"| node_database_client
node_students_api -->|"reads and writes"| node_database_client
node_classes_api -->|"reads and writes"| node_database_client
node_class_import -->|"reads and writes"| node_database_client
node_testing_sessions -->|"reads and writes"| node_database_client
node_testing_save -->|"reads and writes"| node_database_client
node_lifts_api -->|"reads and writes"| node_database_client
node_kpi_targets -->|"reads and writes"| node_database_client
node_templates -->|"reads and writes"| node_database_client
node_generator -->|"reads and writes"| node_database_client
node_results_service -->|"persists results"| node_database_client
node_student_login -->|"manages accounts"| node_database_client
node_queries -->|"queries data"| node_database_client
node_database_client -->|"connects"| node_postgres
node_coach_analytics -.->|"uses insights"| node_queries
node_coach_leaderboards -.->|"uses rankings"| node_queries
node_coach_compare -.->|"uses comparisons"| node_queries
node_student_performance -.->|"uses performance data"| node_queries
node_student_projection -.->|"uses projections"| node_queries

click node_login "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/auth/login/route.ts"
click node_school_admin "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/admin/switch-school/route.ts"
click node_roster_import "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/roster/import/route.ts"
click node_students_api "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/students/route.ts"
click node_classes_api "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/classes/route.ts"
click node_class_import "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/classes/import/route.ts"
click node_testing_sessions "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/testing/sessions/route.ts"
click node_testing_save "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/testing/save/route.ts"
click node_results_service "https://github.com/holtwalker13/track-tracker/blob/main/src/lib/services/results.ts"
click node_celebration "https://github.com/holtwalker13/track-tracker/blob/main/src/lib/services/testing-celebration.ts"
click node_lifts_api "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/lifts/route.ts"
click node_kpi_targets "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/kpi-targets/route.ts"
click node_templates "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/workouts/templates/route.ts"
click node_generator "https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/workouts/generate/route.ts"
click node_workout_generation_logic "https://github.com/holtwalker13/track-tracker/blob/main/src/lib/services/workout-generator.ts"
click node_coach_analytics "https://github.com/holtwalker13/track-tracker/blob/main/src/app/coach/analytics/page.tsx"
click node_coach_leaderboards "https://github.com/holtwalker13/track-tracker/blob/main/src/app/coach/leaderboards/page.tsx"
click node_coach_compare "https://github.com/holtwalker13/track-tracker/blob/main/src/app/coach/compare/page.tsx"
click node_student_performance "https://github.com/holtwalker13/track-tracker/blob/main/src/app/student/performance/page.tsx"
click node_student_projection "https://github.com/holtwalker13/track-tracker/blob/main/src/app/student/projection/page.tsx"
click node_queries "https://github.com/holtwalker13/track-tracker/tree/main/src/lib/queries"
click node_database_client "https://github.com/holtwalker13/track-tracker/blob/main/src/lib/db.ts"
click node_student_login "https://github.com/holtwalker13/track-tracker/blob/main/src/lib/services/student-login.ts"

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_login,node_school_admin,node_database_client toneBlue
class node_roster_import,node_students_api,node_classes_api,node_class_import,node_student_login,node_postgres toneAmber
class node_testing_sessions,node_testing_save,node_results_service,node_celebration,node_lifts_api,node_kpi_targets toneMint
class node_templates,node_generator,node_workout_generation_logic toneRose
class node_coach_analytics,node_coach_leaderboards,node_coach_compare,node_student_performance,node_student_projection,node_queries,node_coach,node_student toneIndigo
```

## Components

### Access and schools

- [Login](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/auth/login/route.ts): `src/app/api/auth/login/route.ts`
- [School admin](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/admin/switch-school/route.ts): `src/app/api/admin/switch-school/route.ts`

### Roster and classes

- [Roster import](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/roster/import/route.ts): `src/app/api/roster/import/route.ts`
- [Student records](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/students/route.ts): `src/app/api/students/route.ts`
- [Class sections](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/classes/route.ts): `src/app/api/classes/route.ts`
- [Class import](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/classes/import/route.ts): `src/app/api/classes/import/route.ts`
- [Student login setup](https://github.com/holtwalker13/track-tracker/blob/main/src/lib/services/student-login.ts): `src/lib/services/student-login.ts`

### Testing and results

- [Testing sessions](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/testing/sessions/route.ts): `src/app/api/testing/sessions/route.ts`
- [Save attempts](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/testing/save/route.ts): `src/app/api/testing/save/route.ts`
- [Result processing](https://github.com/holtwalker13/track-tracker/blob/main/src/lib/services/results.ts): `src/lib/services/results.ts`
- [Board celebrations](https://github.com/holtwalker13/track-tracker/blob/main/src/lib/services/testing-celebration.ts): `src/lib/services/testing-celebration.ts`
- [School lifts](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/lifts/route.ts): `src/app/api/lifts/route.ts`
- [KPI targets](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/kpi-targets/route.ts): `src/app/api/kpi-targets/route.ts`

### Workout programs

- [Workout templates](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/workouts/templates/route.ts): `src/app/api/workouts/templates/route.ts`
- [Workout generation](https://github.com/holtwalker13/track-tracker/blob/main/src/app/api/workouts/generate/route.ts): `src/app/api/workouts/generate/route.ts`
- [Generator plans](https://github.com/holtwalker13/track-tracker/blob/main/src/lib/services/workout-generator.ts): `src/lib/services/workout-generator.ts`

### Performance insights

- [Coach analytics](https://github.com/holtwalker13/track-tracker/blob/main/src/app/coach/analytics/page.tsx): `src/app/coach/analytics/page.tsx`
- [Coach leaderboards](https://github.com/holtwalker13/track-tracker/blob/main/src/app/coach/leaderboards/page.tsx): `src/app/coach/leaderboards/page.tsx`
- [Coach compare](https://github.com/holtwalker13/track-tracker/blob/main/src/app/coach/compare/page.tsx): `src/app/coach/compare/page.tsx`
- [Student performance](https://github.com/holtwalker13/track-tracker/blob/main/src/app/student/performance/page.tsx): `src/app/student/performance/page.tsx`
- [Student projection](https://github.com/holtwalker13/track-tracker/blob/main/src/app/student/projection/page.tsx): `src/app/student/projection/page.tsx`
- [Performance queries](https://github.com/holtwalker13/track-tracker/tree/main/src/lib/queries): `src/lib/queries`

### Other components

- **Coach**
- **Student**
- [Prisma client](https://github.com/holtwalker13/track-tracker/blob/main/src/lib/db.ts): `src/lib/db.ts`
- **PostgreSQL**

## Connections

- Coach → Login: signs in
- Student → Login: signs in
- Coach → Roster import: uploads roster
- Coach → Class sections: manages sections
- Coach → Class import: imports sections
- Coach → Testing sessions: starts testing
- Coach → Save attempts: records attempts
- Coach → School lifts: manages lifts
- Coach → KPI targets: sets targets
- Coach → Workout templates: builds programs
- Coach → Workout generation: generates workouts
- Student → Student performance: reviews results
- Student → Student projection: views projection
- Coach → Coach analytics: reviews analytics
- Coach → Coach leaderboards: views rankings
- Coach → Coach compare: compares athletes
- Roster import → Student login setup: ensures accounts
- Student records → Student login setup: ensures account
- Save attempts → Result processing: saves results
- Save attempts → Board celebrations: checks board hits
- Workout generation → Generator plans: builds plan
- Roster import → Prisma client: reads and writes
- Student records → Prisma client: reads and writes
- Class sections → Prisma client: reads and writes
- Class import → Prisma client: reads and writes
- Testing sessions → Prisma client: reads and writes
- Save attempts → Prisma client: reads and writes
- School lifts → Prisma client: reads and writes
- KPI targets → Prisma client: reads and writes
- Workout templates → Prisma client: reads and writes
- Workout generation → Prisma client: reads and writes
- Result processing → Prisma client: persists results
- Student login setup → Prisma client: manages accounts
- Performance queries → Prisma client: queries data
- Prisma client → PostgreSQL: connects
- Coach analytics → Performance queries: uses insights
- Coach leaderboards → Performance queries: uses rankings
- Coach compare → Performance queries: uses comparisons
- Student performance → Performance queries: uses performance data
- Student projection → Performance queries: uses projections
