Ground is a map-first data collection platform aiming to seamlessly connect the offline world with cloud-based storage and computation. It addresses the needs of non-technical local community members, smallholder farmers, and professionals and researchers working in the areas of climate, sustainability, and humanitarian aid. It consists of a web app for survey management, and an Android app for offline data collection backed by Firebase.
Note: Ground is not an officially supported product; it is being developed and maintained on a best-effort basis.
This repo contains Ground's hosted components and related docs:
Directory | Component |
---|---|
docs/ | Public documentation, including Ground homepage |
firestore/ | Firestore config defining Firebase rules and other database settings |
functions/ | Firebase Cloud Functions, used to sync with Google Sheets and import/export data to/from other data sources |
web/ | Ground web console used to set up and manage surveys, and to view, edit, and analyze collected data online |
Read through our contributing guidelines to learn about our submission process, coding rules and more.
Set up your environment by following instructions in "first-time setup" before you begin.
npm run ci-all
Build with:
npm run build-all --config=local
Run against a local Firebase emulator:
npm run start:local
Once the local server is ready, access the web app at http://localhost:5000. For development, and testing, the Firebase Emulator Suite UI is accessible at http://localhost:4000. Changes to the web app in web/
and to Cloud Functions in functions/
are automatically rebuilt and reloaded on save.
Note: The local build variant doesn't require API keys to run, but warnings related to missing Maps API keys will appear in the console. Authentication is also disabled.
The local emulator is preloaded with a demo survey. Run npm run export:local
to save the updated demo data to the local filesystem for use on the next run.
For instructions on how to deploy to a live dev or prod Firebase project, see the Ground Developer's Guide.