Ground hosted/cloud-based components.
Branch: master
Clone or download
gino-m Merge pull request #48 from scolsen/master
Emphasize Offline/Intermittent Connection Support
Latest commit 54cd1f8 Feb 22, 2019

Ground Platform

Ground is an open source, map-centric data collection platform for occasionally connected devices.

This is not an officially supported Google product, and it is currently under development on best-effort basis. Please check back periodically for updates.

You can learn more about Ground on the project website.

About this Repository

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 projects, and to view, edit, and analyze collected data online

Firestore Cloud Functions currently only supports Node.js v6.11.5, while the web dashboard is built using a newer version of Node.js. Contributors should use the appropriate version of Node for the component they are working on. Follow the instructions provided in the README of each subdirectory to set up the proper development environment for each component.


First, read the contribution guidelines. Ensure you understand the code review and community guidelines and have signed the appropriate CLA.

❗️ We cannot accept contributions from contributors that have not signed the appropriate CLA, so please be sure to sign one before submitting your hard work!

After you have read and understood the contribution guidelines, read the following sections to learn how to fork this repository and contribute.


The following instructions describe how to fork this repository in order to contribute to the ground-platform codebase.

  1. Fork this repository, see

  2. Clone your fork:

    git clone<username>/ground-platform.git

    Where <username> is your github username.

  3. Add the base repository as a remote:

    git remote add upstream

  4. Follow the instructions in the README files of each of the directories listed under About this Repository section of this readme to set up your development environment.

Development Workflow

After you have forked and cloned the repository, use the following steps to make and manage changes. After you have finished making changes, you can submit them to the base repository using a pull request.

  1. Pull changes from the base repository's master branch:

    git pull upstream master

  2. Create a new branch to track your changes:

    git checkout -b <branch>

    Where <branch> is a meaningful name for the branch you'll use to track changes.

  3. Make and test changes locally.

  4. Add your changes to the staging area:

    git add <files>

    Where <files> are the files you changed.

    Note: Run git add . to add all currently modified files to the staging area.

  5. Commit your changes:

    git commit -m <message>

    Where <message> is a meaningful, short message describing the purpose of your changes.

  6. Pull changes from the base repository's master branch, resolve conflicts if necessary:

    git pull upstream master

  7. Push your changes to your github account:

    git push -u origin <branch>

    Where <branch> is the branch name you used in step 2.

  8. Create a pull request to have your changes reviewed and merged into the base repository. Reference the issue your changes resolve in either the commit message for your changes or in your pull request.

    For more information on creating pull requests, see

    To learn more about referencing issues in your pull request or commit messages, see

  9. Celebrate!