Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/hack4impact-umd/breastfeeding-center-gw/llms.txt

Use this file to discover all available pages before exploring further.

The BCGW Dashboard uses a single npm run dev command to start the full local stack — Firebase emulators, a Cloud Functions TypeScript watcher, and the Vite dev server — all managed together by scripts/dev.mjs.

How local development works

Running npm run dev from the project root starts three processes concurrently, orchestrated by scripts/dev.mjs:
  1. Firebase emulators — Firestore (port 8080), Auth (port 9099), Functions (port 5001), and the Emulator UI (port 4000)
  2. Cloud Functions TypeScript watch — rebuilds functions automatically on file changes
  3. Vite dev server — serves the React app at port 5173
The emulators run entirely on your machine. You do not need to connect to a live Firebase project for local development.

Starting the dev stack

1

Run the dev command from the project root

Make sure you are in the repository root (not inside react-app or cloud-functions), then run:
npm run dev
2

Wait for all services to start

The script polls each service port until it accepts connections. When everything is ready, you will see:
All services are running!

  Frontend:     http://localhost:5173
  Emulator UI:  http://localhost:4000
3

Open the dashboard

Navigate to http://localhost:5173 in your browser. Sign in using Firebase Authentication — the local Auth emulator handles login without touching production credentials.
4

Inspect emulator state (optional)

Open the Firebase Emulator UI at http://localhost:4000 to browse Firestore documents, manage emulated users, and inspect function logs in real time.

Loading test data

The dev script automatically imports cloud-functions/emulator_test_data/ into the Firestore emulator on startup. If you need a different dataset, you can import it manually after the emulators are running:
npx firebase emulators:start --import cloud-functions/mult_user_test_data
Or, to import into already-running emulators via the Emulator UI, use the Import/Export panel at http://localhost:4000.
Use cloud-functions/mult_user_test_data/ when testing multi-user role scenarios. This dataset includes accounts with different permission levels (director, admin, volunteer) so you can verify role-based access control without manually creating users.

Build docs developers (and LLMs) love