GithubHelp home page GithubHelp logo

google / ground-platform Goto Github PK

View Code? Open in Web Editor NEW
195.0 28.0 78.0 47.05 MB

Ground hosted components: Web console, Cloud Functions, db config

Home Page: http://groundplatform.org

License: Apache License 2.0

JavaScript 0.37% HTML 9.91% CSS 0.41% TypeScript 75.61% SCSS 9.16% Shell 0.26% Jupyter Notebook 4.28%

ground-platform's Introduction

Ground

Open Source Helpers

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.

About this repository

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

Contributing guidelines

Read through our contributing guidelines to learn about our submission process, coding rules and more.

ground-platform's People

Contributors

amysorto avatar dakshub avatar daoyut avatar deepakbansal avatar dependabot[bot] avatar dhvogel avatar gauravchalana1 avatar gino-m avatar gyarill avatar jsunde avatar lichkkkk avatar mmisim avatar mvrs avatar npower avatar nwkotto avatar os-micmec avatar parulraheja98 avatar recursive-knot avatar rfontanarosa avatar scolsen avatar semla avatar shobhitagarwal1612 avatar tiyarah avatar umuur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ground-platform's Issues

[Docs] Main page: emphasize support for intermittent connections

vs. "when a stable internet connection isn’t guaranteed" .. specifically, Ground works offline, but requires occasional access to the internet. This allows seamless sync of data w/o any special user knowledge or actions.

Something like "Ground is an open source, map-first data collection platform that enables users to collect, map, and share data. Ground is built from the ground up (pun intended) to provide seamless sync of data over internet connections that are only occasionally available".

[Project] Sharing dialog

Allow project manager to share with other users via email account, optionally sending an email to notify them. The manager can decide who can "Manage", "Contribute", and "View" the project.

  • Manage: Edit all project metadata, including feature types, forms, and ACLs.
  • Contribute: Can add features and records or edit their own. Whether they can add/edit features or only records depends on the feature type.
  • View: Read-only view of the entire project.

Finer-grained ACLs may be added in the future (e.g. who can edit which feature types.

[Docs] Assets do not load from custom domain

We recently acquired and configured vanity URL groundplatform.org. When setting the custom domain in GitHub Pages Settings, assets are not found because URLs include /ground-platform prefix, which doesn't work from custom domain. I believe to fix this we need to specify a base url in _config.yml and to update the page sources as per:
jekyll/jekyll#332 (comment)

[Code Health] Set up linting

People who contribute to this project may have differing code style norms. We should add linting rules to enforce consistent norms around code aesthetics. Ideally, these linting checks would be run on presubmit (PR opening) by some continuous integration tool.

eslint-plugin-react looks like a good option: https://github.com/yannickcr/eslint-plugin-react

Main page: Font

Should we investigate using a specific font for the Ground website? As of right now, the site use the default font, 'Open Sans,' provided by the site theme.

Fonts can have a significant impact on readability and an audience's perception of the platform and what its use-value is. We may wind up deciding the current font is a-ok—but should we open up a discussion?

Some font resources:

https://fonts.google.com/
https://design.google/library/choosing-web-fonts-beginners-guide/
https://thenextweb.com/dd/2017/03/31/science-behind-fonts-make-feel/

[Feature panel] Add observation

User selects a map feature and clicks the "Add" button in the side panel to start filling out a new empty form.

@hintzemichael Could you kindly paste mocks for this (possibly w/redlines) into this issue?

[Feature panel] Delete feature

Let's add the "Delete" entry to an overflow menu in the top-right of the feature details in the side panel when the feature is selected. Deleting the feature should also delete all related observations; we should show a BSW (big scary warning) confirmation dialog before doing this, i.e. "Deleting this map feature will delete all associated data, including any collected observations. This cannot be undone. Are you sure?" @sergeydolgov1 fyi/for comment.

[Docs] Update main page tag line

From "An open source, map-first data collection platform by global contributors and volunteers at Google." to "Map-first data collection platform for everyone" or similar.

[Feature panel] Edit observation flow

User selects a map feature and clicks "Edit" in the overflow menu on an existing record in the side panel to allow editing of existing record data.

@hintzemichael Could you please also paste mocks for this one? The design should be mostly identical to #10.

[Docs] Replace "free" with "open source" where appropriate

Primarily because, as pointed out by OSI and others, the English word "free" is ambiguous (without cost vs. freedom to do what you want with it), and it carries various connotations due to historical baggage. To remedy this, OSI has come up with a standard definition, and have approved various licenses that meet their standard definition, including Apache 2.0 under which Ground is released.

[Dev Workflow] Add Issue/PR templates

Issue/PR templates can help make Issues/PRs more readable by standardizing the way contributors report problems and describe solutions.

Open source projects such as golang have them: https://github.com/golang/go/tree/master/.github

I have used a simplified issue template to more or less talk to myself in personal projects: https://github.com/dhvogel/cryptorides-karl/blob/master/.github/ISSUE_TEMPLATE.md

here are some other templates we can chose from: https://github.com/stevemao/github-issue-templates

[Map] Show feature details in side panel

Main user journey:

  1. Click place marker on map
  2. Right-side drawer opens, displacing entire UI (similar to side panel in Gmail or Docs)
  3. Heading w/feature type name appears and list of completed forms (Records), each shown as a separate card in reverse chronological order.
  4. Click "x" in top-right corner of panel to close.

[Layer] Delete layer

Add an option hidden behind an overflow menu on the "Customize Layer" dialog, "Delete layer".

Since this would also delete all associated data, we should show a big scary warning before deleting:

Delete layer?
This will delete all data in this layer. Are you sure you? This change cannot be undone.

Cancel | Delete layer

In the future we'll start marking feature types and data as deleted rather than actually deleting it to allow 'Undo'.

[Layers] Use default marker color in project config

Markers currently get added to the map here:

markers.push(
<Marker
key={featureId}
position={{lat: pos.latitude, lng: pos.longitude}}
icon={this.getIcon(project, feature)}
/>
);

We can add the default color to a new object, defaultStyles defined inside project.featureTypes. Since we don't have a UI for defining these yet, you can add them manually via the project json editor by clicking <> next to the project title in the web UI, e.g.:

image

The color can then be read in the above function with something like project.featureTypes[featureId].defaultStyle.color (minding missing/undefined instances).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.