Health tracking application for patients and clinicians built with React, TypeScript, Vite, Tailwind CSS, and Supabase.
- Frontend: React 19 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS v4
- Routing: React Router
- Backend: Supabase (PostgreSQL)
- Node.js (v18 or higher)
- npm or yarn
- A Supabase account and project
- Clone the repository and navigate to the project directory:
cd myayu-mvp- Install dependencies:
npm install- Set up environment variables:
Copy the .env.example file to .env:
cp .env.example .envThen edit .env and add your Supabase credentials:
VITE_SUPABASE_URL=your-supabase-project-url
VITE_SUPABASE_ANON_KEY=your-supabase-anon-keyYou can find these values in your Supabase project settings:
- Go to https://app.supabase.com
- Select your project
- Navigate to Settings → API
- Copy the Project URL and anon/public key
Start the development server:
npm run devThe app will be available at http://localhost:5173
Build for production:
npm run buildPreview the production build:
npm run previewsrc/
├── components/ # Shared UI components
│ └── Layout.tsx # Main layout with navigation
├── lib/ # Utilities and configuration
│ └── supabaseClient.ts # Supabase client setup
└── routes/ # Page components
├── PatientDailyEntryPage.tsx
├── PatientTrackerPage.tsx
└── ClinicianTrackerPage.tsx
/patient/daily- Patient daily entry form/patient/tracker- Patient tracker with multiple lenses/clinician/tracker/:patientId- Clinician view (read-only)
- The app uses Tailwind CSS v4 with the new
@themeconfiguration syntax - Environment variables must be prefixed with
VITE_to be accessible in the client - The Supabase client includes centralized error handling via
handleSupabaseError()