This project is a React + Express + SQLite web app for pre-dental students in the University of Washington Tacoma region. It includes an authenticated clinic directory, a shadowing tracker, and AADSAS-friendly export tooling.
- Map centered on UW Tacoma with clinic pins
- Status color coding (available / mixed / unavailable / pending)
- Verified
.edusign-in with email verification - Add Clinic or Suggest Update form (authenticated)
- Clinic directory with ZIP + radius filters
- Shadowing projects/sessions tracker with CSV export
- React + Vite
- React Leaflet (OpenStreetMap tiles)
- SQLite or DynamoDB + Express API (see
.env.example) - Plain CSS
AWS / spend: see docs/AWS_COSTS.md (Lambda + Dynamo on-demand, optional S3 + CloudFront).
npm install
npm run devStart the SQLite API server in another terminal:
npm run dev:serverSeed the database once (optional):
node server/seed.jsOr run everything together (seed + server + web):
npm run dev:allRun auth smoke checks against a running API server:
npm run test:smoke:authOptional: point tests to a different server URL.
SMOKE_BASE_URL=http://localhost:3000 npm run test:smoke:authSQLite database file:
server/shadowing.db
- The API server runs on
http://localhost:3000by default. - Vite dev server runs on
http://localhost:5173and proxies/apito the API server.