Ground is an open-source, map-first data collection platform built to seamlessly connect the offline world with cloud-based storage and computation. The platform consists of a web app for survey management, and an Android app for offline data collection. Our goal is to provide a "just right" data collection solution that meets the needs of community organizers, conservationists, humanitarian workers, and researchers addressing some of today's most pressing issues.
Note: Ground is not an officially supported Google product, and is developed on a best-effort basis.
You can learn more about Ground on the project website.
This repo contains all Ground cloud-based / hosted components:
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 |
Follow the instructions provided in the README of each subdirectory to set up the proper development environment for each component.
We'd love to accept your patches and contributions to this project. For more information, including details on the required Contributor License Agreement (CLA), code reviews, and environment setup, see Contributing to Ground Platform.
Note: This guide assumes nvm (Node Version Manager) will be used to install and manage Node.js versions. For more information on nvm, including installation instructions, see https://github.com/creationix/nvm#installation>
Once you have nvm installed, install Node.js with:
$ nvm install 16 && nvm use 16
Then install the Angular CLI using npm using:
$ npm install -g @angular/cli
To get up and running quickly, you can run the web app against the local Firebase emulator.
To install dependencies and start the emulator, run:
$ cd functions && npm install && npm run emulators
Leave the emulator running, and in a new shell execute the following:
$ cd web && npm install && npm run start:dev
Once the local server is ready, you can navigate to http://localhost:4200/survey/new to create a new Ground survey. Note that for expediency, the above commands start the app without valid API keys, so warnings related to missing API keys are expected.
To set up your environment for developing Cloud Functions against a real Firebase project, see functions/README.md.
For further instructions on working with the Angular web app, see web/README.md.
For step-by-step instructions setting up your own instance of Ground, see the documentation for building and deploying Ground from the source.