This document describes the software and local configuration needed to develop EdgeResQ.
EdgeResQ is a TypeScript monorepo with these main areas:
web/— LGU triage dashboard and citizen-intake simulator (with judge controls for demoing GPS, network, battery, sensor, and dataset conditions)backend/— ingestion, verification, and event processingpackages/— shared schemas, types, and utilitiesdocs/— architecture, demo, and implementation notesinfra/— Firebase, deployment, and environment assets
Install the following before working on the project:
- Node.js
- Bun — the backend scripts use
bun run - Git
- Visual Studio Code or another editor
- Android Studio if you are developing the mobile app
- Firebase CLI if you are working with Firebase emulators or deployment
The repository currently includes these runtime dependencies at the root:
@google/genaifirebase-adminhono
The backend package currently defines:
dev:bun run --hot src/index.tsstart:bun run src/index.ts
The backend package also includes a package-lock.json, but the source scripts are Bun-based. Keep that in mind if you are updating dependencies or standardizing the toolchain.
git clone https://github.com/ggianbrent/EdgeResQ.git
cd EdgeResQUse the package manager that matches the project setup.
npm installcd backend
npm installIf the project later standardizes on Bun, install dependencies with:
bun installThe backend currently expects Firebase service account credentials through the environment variable:
FIREBASE_SERVICE_ACCOUNT_JSONThis is read in backend/src/services/firebase.ts and used to initialize Firebase Admin.
FIREBASE_SERVICE_ACCOUNT_JSON=...If additional environment variables are added later, document them here and include them in an .env.example file.
The backend includes:
- Firebase Admin initialization
- incident ingestion routes
- trust score calculation
- Google Gemini integration
From the backend/ directory:
bun run devFrom the backend/ directory:
bun run startThe backend uses Firebase Admin and Firestore.
If you are running locally with real Firebase access:
- Create or download a Firebase service account JSON file
- Store it securely
- Set
FIREBASE_SERVICE_ACCOUNT_JSON - Confirm the Firebase project has Firestore enabled
If the credentials are missing, the backend includes a fallback initialization path for local testing, but that will not provide full production-like behavior.
The mobile app is intended to support:
- citizen reporting
- offline queueing
- fallback messaging
- sensor-assisted triage
If you work on the mobile app, you will likely need:
- Android Studio
- Android SDK
- emulator or physical device
- mobile-specific app configuration once the app framework is finalized
The web app is intended to support:
- incident mapping
- verification state display
- triage operations
- incident review
If you work on the web dashboard, you will likely need:
- Node.js
- browser-based local development
- frontend framework dependencies once they are defined
- environment variables for backend/API integration
Shared packages should contain reusable code such as:
- schema definitions
- event types
- validation helpers
- utility functions
Guidelines:
- keep shared code framework-agnostic when possible
- avoid app-specific behavior in packages
- reuse the same types in mobile, web, and backend code
The infra/ directory is reserved for:
- Firebase setup
- environment configuration
- deployment assets
- local emulator or cloud deployment support
- Clone the repo
- Install dependencies
- Set environment variables
- Start the backend
- Start the web app
- Start the mobile app
- Verify end-to-end incident ingestion and triage
This document should be updated once the repository adds finalized workspace files, app manifests, and exact start commands for each surface.