# shainatg/truetest architecture

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

- Interactive diagram: https://gitdiagram.com/shainatg/truetest
- Repository: https://github.com/shainatg/truetest

## Overview

TrueTest is a health-information frontend for symptom guidance, disease and test education, provider discovery and price comparison, plus personal health records and reminders. The user enters through the app shell, opens a feature, and receives guidance or browsable information; account-oriented tools persist data through Supabase. The backend file is not mapped because the available evidence does not establish its role or connections. Relationships below are limited to shown routing, imports and documented-by-source-index data or service references.

Main entry points: [`frontend/src/App.tsx`](https://github.com/shainatg/truetest/blob/main/frontend/src/App.tsx) (App shell), [`frontend/src/supabase.ts`](https://github.com/shainatg/truetest/blob/main/frontend/src/supabase.ts) (Supabase client), [`frontend/src/main.tsx`](https://github.com/shainatg/truetest/blob/main/frontend/src/main.tsx) (Frontend entry), [`frontend/src/pages/DiseaseDetails.tsx`](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/DiseaseDetails.tsx) (Disease details)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App access"]
  node_root["Frontend entry<br/>[main.tsx]"]
  node_app_shell["App shell<br/>[App.tsx]"]
end

subgraph group_guidance["Health guidance"]
  node_diseases["Disease catalog<br/>[Diseases.tsx]"]
  node_disease_details["Disease details<br/>[DiseaseDetails.tsx]"]
  node_disease_data["Disease information<br/>[diseases.ts]"]
  node_symptom_checker["Symptom guidance<br/>[SymptomChecker.tsx]"]
  node_emergency["Emergency help<br/>[EmergencyHelp.tsx]"]
end

subgraph group_discovery["Care discovery"]
  node_all_tests["Test catalog<br/>[AllTests.tsx]"]
  node_test_details["Test details<br/>[TestDetails.tsx]"]
  node_medical_tests["Test information<br/>[medicalTests.ts]"]
  node_hospital_finder["Hospital finder<br/>[HospitalFinder.tsx]"]
  node_hospital_data["Provider directory<br/>[hospitals.ts]"]
  node_price_comparison["Price comparison"]
  node_price_data["Price information<br/>[prices.ts]"]
end

subgraph group_records["Personal health"]
  node_health_card["Digital health card<br/>[HealthCard.tsx]"]
  node_health_locker["Health locker<br/>[HealthLocker.tsx]"]
  node_reminders["Health reminders"]
  node_wearable["Wearable health<br/>[WearableHealth.tsx]"]
  node_login["Login<br/>[Login.tsx]"]
  node_signup["Sign up<br/>[Signup.tsx]"]
  node_supabase_client["Supabase client<br/>[supabase.ts]"]
end

node_user(("User"))
node_supabase[("Supabase")]

node_user -->|"opens app"| node_root
node_root -->|"renders"| node_app_shell
node_app_shell -->|"routes to"| node_diseases
node_app_shell -->|"routes to"| node_disease_details
node_app_shell -->|"routes to"| node_symptom_checker
node_app_shell -->|"routes to"| node_emergency
node_app_shell -->|"routes to"| node_all_tests
node_app_shell -->|"routes to"| node_test_details
node_app_shell -->|"routes to"| node_hospital_finder
node_app_shell -->|"routes to"| node_price_comparison
node_app_shell -->|"routes to"| node_health_card
node_app_shell -->|"routes to"| node_health_locker
node_app_shell -->|"routes to"| node_reminders
node_app_shell -->|"routes to"| node_wearable
node_app_shell -->|"routes to"| node_login
node_app_shell -->|"routes to"| node_signup
node_disease_details -->|"reads"| node_disease_data
node_test_details -->|"reads"| node_medical_tests
node_hospital_finder -->|"reads"| node_hospital_data
node_health_card -->|"uses"| node_supabase_client
node_health_locker -->|"uses"| node_supabase_client
node_reminders -->|"uses"| node_supabase_client
node_wearable -->|"uses"| node_supabase_client
node_login -->|"uses"| node_supabase_client
node_signup -->|"uses"| node_supabase_client
node_supabase_client -->|"connects to"| node_supabase

click node_root "https://github.com/shainatg/truetest/blob/main/frontend/src/main.tsx"
click node_app_shell "https://github.com/shainatg/truetest/blob/main/frontend/src/App.tsx"
click node_diseases "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/Diseases.tsx"
click node_disease_details "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/DiseaseDetails.tsx"
click node_disease_data "https://github.com/shainatg/truetest/blob/main/frontend/src/data/diseases.ts"
click node_symptom_checker "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/SymptomChecker.tsx"
click node_emergency "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/EmergencyHelp.tsx"
click node_all_tests "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/AllTests.tsx"
click node_test_details "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/TestDetails.tsx"
click node_medical_tests "https://github.com/shainatg/truetest/blob/main/frontend/src/data/medicalTests.ts"
click node_hospital_finder "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/HospitalFinder.tsx"
click node_hospital_data "https://github.com/shainatg/truetest/blob/main/frontend/src/data/hospitals.ts"
click node_price_comparison "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/PriceComparison.tsx"
click node_price_data "https://github.com/shainatg/truetest/blob/main/frontend/src/data/prices.ts"
click node_health_card "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/HealthCard.tsx"
click node_health_locker "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/HealthLocker.tsx"
click node_reminders "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/HealthReminders.tsx"
click node_wearable "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/WearableHealth.tsx"
click node_login "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/Login.tsx"
click node_signup "https://github.com/shainatg/truetest/blob/main/frontend/src/pages/Signup.tsx"
click node_supabase_client "https://github.com/shainatg/truetest/blob/main/frontend/src/supabase.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_root,node_app_shell,node_user toneBlue
class node_diseases,node_disease_details,node_disease_data,node_symptom_checker,node_emergency,node_supabase toneAmber
class node_all_tests,node_test_details,node_medical_tests,node_hospital_finder,node_hospital_data,node_price_comparison,node_price_data toneMint
class node_health_card,node_health_locker,node_reminders,node_wearable,node_login,node_signup,node_supabase_client toneRose
```

## Components

### App access

- [Frontend entry](https://github.com/shainatg/truetest/blob/main/frontend/src/main.tsx): `frontend/src/main.tsx`
- [App shell](https://github.com/shainatg/truetest/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`

### Health guidance

- [Disease catalog](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/Diseases.tsx): `frontend/src/pages/Diseases.tsx`
- [Disease details](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/DiseaseDetails.tsx): `frontend/src/pages/DiseaseDetails.tsx`
- [Disease information](https://github.com/shainatg/truetest/blob/main/frontend/src/data/diseases.ts): `frontend/src/data/diseases.ts`
- [Symptom guidance](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/SymptomChecker.tsx): `frontend/src/pages/SymptomChecker.tsx`
- [Emergency help](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/EmergencyHelp.tsx): `frontend/src/pages/EmergencyHelp.tsx`

### Care discovery

- [Test catalog](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/AllTests.tsx): `frontend/src/pages/AllTests.tsx`
- [Test details](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/TestDetails.tsx): `frontend/src/pages/TestDetails.tsx`
- [Test information](https://github.com/shainatg/truetest/blob/main/frontend/src/data/medicalTests.ts): `frontend/src/data/medicalTests.ts`
- [Hospital finder](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/HospitalFinder.tsx): `frontend/src/pages/HospitalFinder.tsx`
- [Provider directory](https://github.com/shainatg/truetest/blob/main/frontend/src/data/hospitals.ts): `frontend/src/data/hospitals.ts`
- [Price comparison](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/PriceComparison.tsx): `frontend/src/pages/PriceComparison.tsx`
- [Price information](https://github.com/shainatg/truetest/blob/main/frontend/src/data/prices.ts): `frontend/src/data/prices.ts`

### Personal health

- [Digital health card](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/HealthCard.tsx): `frontend/src/pages/HealthCard.tsx`
- [Health locker](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/HealthLocker.tsx): `frontend/src/pages/HealthLocker.tsx`
- [Health reminders](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/HealthReminders.tsx): `frontend/src/pages/HealthReminders.tsx`
- [Wearable health](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/WearableHealth.tsx): `frontend/src/pages/WearableHealth.tsx`
- [Login](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/Login.tsx): `frontend/src/pages/Login.tsx`
- [Sign up](https://github.com/shainatg/truetest/blob/main/frontend/src/pages/Signup.tsx): `frontend/src/pages/Signup.tsx`
- [Supabase client](https://github.com/shainatg/truetest/blob/main/frontend/src/supabase.ts): `frontend/src/supabase.ts`

### Other components

- **User**
- **Supabase**

## Connections

- User → Frontend entry: opens app (evidence: `frontend/src/main.tsx`)
- Frontend entry → App shell: renders (evidence: `frontend/src/main.tsx`)
- App shell → Disease catalog: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Disease details: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Symptom guidance: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Emergency help: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Test catalog: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Test details: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Hospital finder: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Price comparison: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Digital health card: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Health locker: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Health reminders: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Wearable health: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Login: routes to (evidence: `frontend/src/App.tsx`)
- App shell → Sign up: routes to (evidence: `frontend/src/App.tsx`)
- Disease details → Disease information: reads (evidence: `frontend/src/pages/DiseaseDetails.tsx`)
- Test details → Test information: reads (evidence: `frontend/src/pages/TestDetails.tsx`)
- Hospital finder → Provider directory: reads (evidence: `frontend/src/pages/HospitalFinder.tsx`)
- Digital health card → Supabase client: uses (evidence: `frontend/src/pages/HealthCard.tsx`)
- Health locker → Supabase client: uses (evidence: `frontend/src/pages/HealthLocker.tsx`)
- Health reminders → Supabase client: uses (evidence: `frontend/src/pages/HealthReminders.tsx`)
- Wearable health → Supabase client: uses (evidence: `frontend/src/pages/WearableHealth.tsx`)
- Login → Supabase client: uses (evidence: `frontend/src/pages/Login.tsx`)
- Sign up → Supabase client: uses (evidence: `frontend/src/pages/Signup.tsx`)
- Supabase client → Supabase: connects to (evidence: `frontend/src/supabase.ts`)
