Member Portal — Introduction
The Member Portal is the patient-facing web application of ChartChat. Patients use it to view their health records, manage their profile, chat with an AI health assistant, and connect their existing hospital/EHR accounts.
What it is built with
| Technology | Purpose |
|---|---|
| React + TypeScript | UI framework |
| Vite | Build tool and dev server |
| Mantine UI | Component library (buttons, modals, inputs, etc.) |
| React Router | Client-side page navigation |
| Medplum React SDK | FHIR data fetching, auth session management |
| Tabler Icons | Icon set used throughout |
Where the code lives
memberportal/
src/
App.tsx ← root component, handles auth gating and layout
Router.tsx ← defines all app routes
main.tsx ← app entry point
config.ts ← environment config (project ID, Google client ID, etc.)
pages/ ← one file per page
components/ ← shared UI components used across pages
contexts/ ← global state (EHR connections, page header, idle timeout)
hooks/ ← custom React hooks
utils/ ← helper functions (EHR utils, lab utils, FHIR helpers)
img/ ← images and logos
styles/ ← global CSS
How to run it locally
cd memberportal
npm install
npm run dev
Opens at http://localhost:3000 by default.
Make sure the server is running first, and that your
.envfile has the correctVITE_MEDPLUM_BASE_URL.