Skip to main content

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

TechnologyPurpose
React + TypeScriptUI framework
ViteBuild tool and dev server
Mantine UIComponent library (buttons, modals, inputs, etc.)
React RouterClient-side page navigation
Medplum React SDKFHIR data fetching, auth session management
Tabler IconsIcon 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 .env file has the correct VITE_MEDPLUM_BASE_URL.