Partnership Mapping is a Firebase-backed web app for running a structured co-founder / partner alignment process across multiple domains, producing a final “blueprint”, collecting partner acceptance, and finally emailing a localized “mapping closed” summary to all participants.
hosting/: React (Vite) frontend deployed to Firebase Hostingfunctions/: Firebase Cloud Functions (Node.js, 2nd gen)firestore.rules: Firestore Security Rulesfirestore.indexes.json: Firestore indexes
START_HERE.md: short orientation + entry pointsservices.md: callable / deployable services (inputs/outputs/side-effects)component.md: modular frontend components (inputs/outputs/side-effects)
Frontend and closed-email localization currently support:
en,fi,sv,el,de,fr,es
Language selection is stored locally and persisted for signed-in users in Firestore at:
/users/{uid}.language
Stages are stored at:
/companies/{companyId}/workflow/state.stage
Current stages:
assessment: participants select options per domainreview: admin selects the final blueprintfinalize: participants accept/reject the blueprintclosed: read-only, “mapping closed” email sent
Admin-only workflow actions are executed via the callable function generateBlueprint (see services.md).
Install dependencies:
npm --prefix hosting installnpm --prefix functions install
Run frontend (Vite):
npm --prefix hosting run dev
Run lint:
npm --prefix hosting run lintnpm --prefix functions run lint
Emulators:
- Use
firebase emulators:startfrom repo root (configure as needed in your Firebase project).
- Deploy hosting:
firebase deploy --only hosting - Deploy functions:
firebase deploy --only functions
Cloud Functions configuration:
- Secret:
SENDGRID_API_KEY(Secret Manager) - Param:
SENDGRID_FROM_EMAIL - Param:
APP_BASE_URL(e.g.https://partnership-mapping.web.app)
These are loaded via Firebase Functions params and .env.<projectId> in the functions directory.