-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Owner(s): CrowdPM Team | Last updated: 2026-03-08 | Status: Production

*Source: CrowdPM Platform — Image of a single data point. Map of Hardware Node. Accessed 2026-03-08.*
CrowdPM Platform is a crowd-sourced PM2.5 air-quality monitoring stack that securely ingests hyper-local sensor readings and presents them through an interactive WebGL map and operator dashboard.
Recommended reading order:
- Project Overview & Goals
- Requirements & Scope
- System Design (with diagrams)
- Developer Setup & Project Conventions
- Demo Scripts
- Deployment Guide
- Release Plan & Notes (milestones---demos)
- Handoff, Reflection, and Future Work
CrowdPM Platform is a full-stack system for collecting, processing, moderating, and visualizing crowd-sourced PM2.5 measurements.
At a high level, the platform consists of:
- a Firebase-native backend for device onboarding, ingest, batch processing, storage, moderation, and authenticated APIs;
- a React + Vite frontend that renders a Google Maps + deck.gl visualization and a user dashboard;
- a DPoP-based device authorization and pairing flow for nodes;
- Cloud Storage retention of raw ingest payloads alongside Firestore-backed processed measurements and batch metadata.
The current repository and runtime surface support the following major capabilities:
- secure device pairing and activation;
- DPoP-bound device access tokens for ingest;
- raw ingest retention in Cloud Storage;
- shared batch processing into Firestore;
- owner views for batches and device data;
- anonymous public batch views for approved public data;
- moderation routes for submissions;
- user role management for moderators and super admins;
- a map-centric frontend with time-based playback behavior;
- local emulator-driven smoke tests and reproducible demo workflows.
The current project should be documented in terms of the roles that actually exist in code and API behavior:
- Guest: anonymous viewer of the public-approved feed.
- Authenticated user / device owner: signed-in human user who owns devices and can access their own data and dashboard flows.
- Moderator: trusted operator who can review submissions and see moderation-sensitive data.
- Super admin: highest-privilege operator who can manage users and broader administrative workflows.
- Device: non-human actor that completes the pairing flow, obtains access tokens, and submits measurements.
The wiki should not collapse everything into only Guest/User/Admin, because the current API surface distinguishes moderator and super-admin behavior.
This project uses a split documentation model:
- Wiki: top-level overview, scope, architecture, contributor onboarding, demo narrative, release notes, and handoff context.
-
Repository
/docs+ README + config examples: operational runbooks, environment variable truth, emulator instructions, and release procedures. - Source code: canonical implementation details for routes, claims, storage layout, and processing behavior.
When technical behavior changes, update the implementation first, then the repository docs, then the relevant wiki pages.
- Developer Setup & Project Conventions
- Demo Scripts
- Deployment Guide
- Team Standards for Development
- Wiki Editing & File Naming Notes
- Decision Log (short design notes)
- Architecture Decision Records (ADRs)
- Release Plan & Notes (milestones---demos)
- Meeting Notes & Decisions Log
- Handoff, Reflection, and Future Work
- GenAI Usage Log & Citations
Use these repository locations when verifying behavior:
-
README.mdfor current feature summary, API surface, and local setup; -
docs/development.mdfor emulator-first local development and smoke testing; -
docs/demo.mdfor shared demo-environment deployment; -
docs/prod.mdfor production release procedure; -
frontend/.env.exampleandfunctions/.env.examplefor environment variables; -
functions/src/index.tsandfunctions/src/openapi.yamlfor route registration and API contract.
*Source: Kaiterra (Air Academy) — “A Guide to Understanding Particulate Matter (PM)” image: “Particulate Matter Sizes.” Accessed 2026-02-10.*
Owner: CrowdPM Team
Last updated: 2026-03-08
Status: Production
Single sources of truth (links only)
- Production Website: crowdpmplatform.web.app
- Requirements doc: Requirements Doc
- Design doc: Design Doc
- Project board: Project board
- CI dashboard: CI Dashboard
- Release artifacts: Release Artifacts
- Repo: GitHub
