Open Sustainable Technology

A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Browse accepted projects | Review proposed projects | Propose new project | Open Issues

Mangrove Atlas

An online platform that provides the remote sensing data and tools for monitoring mangroves necessary for this.
https://github.com/Vizzuality/mangrove-atlas

Last synced: about 1 hour ago
JSON representation

Repository metadata

Global Mangrove Watch

README

        

# Mangrove Atlas

![Screenshot 2023-07-14 at 08 48 02](https://github.com/Vizzuality/mangrove-atlas/assets/33252015/8fa99ca2-16d4-4563-92e0-2c063edfe6b6)

## Overview

Global Mangrove Watch (GMW) is an online platform that provides the remote sensing data and tools for monitoring mangroves necessary for this. It gives universal access to near real-time information on where and what changes there are to mangroves across the world, and highlights why they are valuable.

## Table of Contents

1. [Installation & development](#installation--development)
2. [Deployment](#deployment)
3. [Good practices & Style guide](#good-practices--style-guide)

## Installation & development

Requirements:

* NodeJs v18
* Yarn

## Project implementation

This platform is built upon [Vizzuality's scaffold project](https://github.com/Vizzuality/front-end-scaffold) and it's using the following resources:

- [React](https://reactjs.org/) as a UI library
- [Next.js](https://nextjs.org/) as a framework
- [Tailwind CSS](https://tailwindcss.com/) as a styles framework
- Reusable components such as forms, modals, icons, and other most use components
- [Recoil](https://recoiljs.org/)
- [Typescript](https://www.typescriptlang.org/) already configured
- git workflow and hooks
- editorconfig and code style based on [Airbnb](https://github.com/airbnb/javascript)

## Quick start

In order to start modifying the app, please make sure to correctly configure your workstation:

1. Make sure you have [Node.js](https://nodejs.org/en/) installed
2. (Optional) Install [NVM](https://github.com/nvm-sh/nvm) to manage your different Node.js versions
3. (Optional) Use [Visual Studio Code](https://code.visualstudio.com/) as a text editor to benefit from automatic type checking
4. Configure your text editor with the [Prettier](https://prettier.io/), [ESLint](https://eslint.org/), [EditorConfig](https://editorconfig.org/), [Tailwind CSS](https://tailwindcss.com/docs/plugins) (recommended) and [Headwind](https://github.com/heybourn/headwind) (recommended) plugins
5. (Optional) Configure your editor to “format [code] on save” with ESLint and Prettier **(1)**
6. Use the correct Node.js version for this app by running `nvm use`; if you didn't install NVM (step 2), then manually install the Node.js version described in `.nvmrc`
7. Install the dependencies: `yarn`
8. Run the server: `yarn dev`

You can access a hot-reloaded version of the app on [http://localhost:3000](http://localhost:3000).

## Deploy on Vercel

First, we recommend to read the guideline about [how to use Vercel](https://vizzuality.github.io/frontismos/docs/guidelines/vercel/).

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out the [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

## Contribution rules

Please, **create a PR** for any improvement or feature you want to add. Try not to commit anything directly on the `main` branch.

## Vulnerability mitigation

[Dependabot's vulnerability security alerts](https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) are configured in this repository and are displayed to the administrators.

When vulnerabilities are detected, a warning message is displayed at the top of the repository. The list of alerts can be found on the Dependabot alerts page.

Here's a step-by-step guide on how to address vulnerabilities found in production code:

1. Go to the Dependabot alerts page and locate the front-end vulnerability to address
2. Identify if the vulnerability affects production code:
- To do so run `yarn npm audit --recursive --environment production`
- If the dependency is _not_ listed by this command, then the vulnerability only affects the development code. You can dismiss the alert on GitHub as “Vulnerable code is not actually used” in the top right corner of the vulnerability page.
- If the dependency _is_ listed, follow the steps below.
3. On the vulnerability page, click the “Create Dependabot security update” button
- This will create a Pull Request with a fix for the vulnerability. If GitHub can generate this PR, then you can merge and the security alert will disappear.
- If the vulnerability can't be patched automatically, follow the steps below.
4. If the action fails, then you can semi-automatically update the vulnerable dependency by running `npm_config_yes=true npx yarn-audit-fix --only prod`
- `yarn-audit-fix` (see [repository](https://github.com/antongolub/yarn-audit-fix)) is a tool that applies the fixes from `npm audit fix` to Yarn installations
- The tool might also not be able to fix the vulnerability. If so, continue with the steps below.
5. If the action fails, then you will have to manually update the dependencies until the vulnerability is solved

## Env variables

| Variable name | Description | Default value |
|-------------------------------|-------------------------------------------------------------------------|------------------------------------:|
| NEXT_PUBLIC_API_URL | URL of the API for widgets Data. | http://localhost:3000 |
| NEXT_PUBLIC_ANALYSIS_API_URL | URL of the API for the Analysis tool. | http://localhost:3000 |
| NEXT_PUBLIC_MAPBOX_API_TOKEN | Mapbox token. | |
| NEXT_PUBLIC_GA_ID | Google Analytics Tracking ID | G-JMJEG8GFH6 |
| NEXT_PUBLIC_PLANET_API_KEY | URL of the Planet API. | |
| NEXT_PUBLIC_BASE_URL | Based URL of the project. | |
| NEXT_PUBLIC_TRANSIFEX_API_KEY | URL of the Transifex API. | |
| NEXT_PUBLIC_BLOG_API_URL | URL of the API for WordPress content. | |


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 19 days ago

Total Commits: 1,902
Total Committers: 20
Avg Commits per committer: 95.1
Development Distribution Score (DDS): 0.63

Commits in past year: 881
Committers in past year: 10
Avg Commits per committer in past year: 88.1
Development Distribution Score (DDS) in past year: 0.544

Name Email Commits
mluena m****d@g****m 704
anamontiaga a****a@g****m 459
mluena m****a@v****m 202
David Inga d****a@v****m 131
Alicia a****a@g****m 108
Migsar m****o@v****m 92
Andrés González Muñoz a****z@v****m 68
dependabot[bot] 4****] 37
AngelArcones a****s@g****m 36
moose t****e@g****m 16
Melissa Nunes m****s@s****m 10
barbara-chaves b****0@g****m 8
tamaramegan t****e@g****m 8
“mluena” “****d@g****” 7
Maria Sola m****a@v****m 7
lhilarides l****s@g****m 3
Edward P. Morris 8****s 2
Alicia Arenzana Gil de muro a****a@v****m 2
AbdoKousara 5****a 1
Miguel Barrenechea Sánchez m****a@v****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 58
Total pull requests: 216
Average time to close issues: 7 months
Average time to close pull requests: 9 days
Total issue authors: 5
Total pull request authors: 7
Average comments per issue: 4.74
Average comments per pull request: 1.03
Merged pull request: 188
Bot issues: 0
Bot pull requests: 22

Past year issues: 56
Past year pull requests: 207
Past year average time to close issues: 6 months
Past year average time to close pull requests: 8 days
Past year issue authors: 5
Past year pull request authors: 7
Past year average comments per issue: 4.23
Past year average comments per pull request: 1.03
Past year merged pull request: 186
Past year bot issues: 0
Past year bot pull requests: 22

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/Vizzuality/mangrove-atlas

Top Issue Authors

  • lhilarides (32)
  • klongleywood (11)
  • dhakelila (7)
  • larranz-vizz (7)
  • mluena (1)

Top Pull Request Authors

  • mluena (126)
  • anamontiaga (58)
  • dependabot[bot] (22)
  • barbara-chaves (5)
  • aagm (2)
  • mariasola (2)
  • davidsingal (1)

Top Issue Labels

  • QC (40)
  • bug (17)
  • data (4)
  • enhancement (1)
  • WIP (1)
  • N/A (1)

Top Pull Request Labels

  • dependencies (22)
  • ready to review (21)
  • WIP (2)
  • don't merge (2)
  • priority (1)

Dependencies

cloud-functions/analysis/package-lock.json npm
  • @google-cloud/functions-framework 1.6.0 development
  • accepts 1.3.7 development
  • array-flatten 1.1.1 development
  • body-parser 1.19.0 development
  • bytes 3.1.0 development
  • content-disposition 0.5.3 development
  • content-type 1.0.4 development
  • cookie 0.4.0 development
  • cookie-signature 1.0.6 development
  • debug 2.6.9 development
  • depd 1.1.2 development
  • destroy 1.0.4 development
  • ee-first 1.1.1 development
  • encodeurl 1.0.2 development
  • escape-html 1.0.3 development
  • etag 1.8.1 development
  • express 4.17.1 development
  • finalhandler 1.1.2 development
  • forwarded 0.1.2 development
  • fresh 0.5.2 development
  • http-errors 1.7.2 development
  • iconv-lite 0.4.24 development
  • inherits 2.0.3 development
  • ipaddr.js 1.9.1 development
  • media-typer 0.3.0 development
  • merge-descriptors 1.0.1 development
  • methods 1.1.2 development
  • mime 1.6.0 development
  • mime-db 1.44.0 development
  • mime-types 2.1.27 development
  • minimist 1.2.5 development
  • ms 2.0.0 development
  • ms 2.1.1 development
  • negotiator 0.6.2 development
  • on-finished 2.3.0 development
  • parseurl 1.3.3 development
  • path-to-regexp 0.1.7 development
  • proxy-addr 2.0.6 development
  • range-parser 1.2.1 development
  • raw-body 2.4.0 development
  • safer-buffer 2.1.2 development
  • send 0.17.1 development
  • serve-static 1.14.1 development
  • setprototypeof 1.1.1 development
  • statuses 1.5.0 development
  • toidentifier 1.0.0 development
  • type-is 1.6.18 development
  • unpipe 1.0.0 development
  • utils-merge 1.0.1 development
  • vary 1.1.2 development
  • @google/earthengine 0.1.227
  • abort-controller 3.0.0
  • agent-base 6.0.1
  • arrify 2.0.1
  • base64-js 1.3.1
  • bignumber.js 9.0.0
  • buffer-equal-constant-time 1.0.1
  • debug 4.1.1
  • ecdsa-sig-formatter 1.0.11
  • event-target-shim 5.0.1
  • extend 3.0.2
  • fast-text-encoding 1.0.3
  • gaxios 2.3.4
  • gcp-metadata 3.5.0
  • google-auth-library 5.10.1
  • google-p12-pem 2.0.4
  • googleapis 42.0.0
  • googleapis-common 3.2.2
  • gtoken 4.1.4
  • https-proxy-agent 5.0.0
  • is-stream 2.0.0
  • json-bigint 0.3.1
  • jwa 2.0.0
  • jws 4.0.0
  • lru-cache 5.1.1
  • mime 2.4.6
  • ms 2.1.2
  • node-fetch 2.6.1
  • node-forge 0.9.1
  • qs 6.7.0
  • safe-buffer 5.1.2
  • url-template 2.0.8
  • uuid 7.0.3
  • xmlhttprequest 1.8.0
  • yallist 3.1.1
cloud-functions/analysis/package.json npm
  • @google-cloud/functions-framework ^1.6.0 development
  • @google/earthengine ^0.1.227
cloud-functions/fetch-alerts/package-lock.json npm
  • 111 dependencies
cloud-functions/fetch-alerts/package.json npm
  • @google-cloud/functions-framework ^1.6.0 development
  • @google-cloud/bigquery ^5.0.0
  • axios ^0.21.1
  • turf-reverse ^1.0.0
cloud-functions/fetch-alerts-heatmap/package-lock.json npm
  • 111 dependencies
cloud-functions/fetch-alerts-heatmap/package.json npm
  • @google-cloud/functions-framework ^1.6.0 development
  • @google-cloud/bigquery ^5.0.0
  • axios ^0.21.1
  • turf-reverse ^1.0.0
cloud-functions/upload-alerts/package-lock.json npm
  • 102 dependencies
cloud-functions/upload-alerts/package.json npm
  • @google-cloud/bigquery ^5.0.0
  • @google-cloud/storage ^5.1.1
  • date-fns ^2.14.0
  • stream-chain ^2.2.2
  • stream-json ^1.6.0
package.json npm
  • @babel/core ^7.5.5 development
  • @babel/eslint-parser ^7.12.13 development
  • @babel/eslint-plugin ^7.12.13 development
  • @storybook/addon-actions ^5.0.11 development
  • @storybook/addon-centered ^5.1.9 development
  • @storybook/addon-cssresources ^5.1.9 development
  • @storybook/addon-knobs ^5.1.9 development
  • @storybook/addon-notes ^5.0.11 development
  • @storybook/addons ^5.0.11 development
  • @storybook/react ^5.1.9 development
  • eslint-config-airbnb 17.1.0 development
  • eslint-config-vizzuality ^1.3.0 development
  • eslint-plugin-import ^2.17.2 development
  • eslint-plugin-jsx-a11y 6.1.1 development
  • eslint-plugin-react ^7.21.1 development
  • eslint-plugin-react-hooks 3.0.0 development
  • sass ^1.50.1 development
  • typescript ^3.5.3 development
  • @fortawesome/fontawesome-svg-core ^1.2.19
  • @fortawesome/free-solid-svg-icons ^5.9.0
  • @fortawesome/react-fontawesome ^0.1.4
  • @turf/bbox ^6.0.1
  • axios ^0.21.2
  • babel-loader 8.0.5
  • bowser ^2.6.1
  • chroma-js ^2.4.2
  • classnames ^2.2.6
  • d3-ease ^1.0.5
  • d3-format ^1.3.2
  • deck.gl ^7.1.4
  • eslint-utils ^1.4.2
  • express ^4.17.1
  • express-favicon ^2.0.1
  • framer-motion ^1.11.1
  • lodash ^4.17.21
  • moment ^2.29.2
  • node-sass 4.14.1
  • prop-types ^15.7.2
  • query-string ^6.5.0
  • react ^16.8.6
  • react-bootstrap ^1.0.0-beta.9
  • react-csv ^1.1.1
  • react-dangerous-html ^1.0.0
  • react-datepicker ^2.8.0
  • react-dom ^16.8.6
  • react-intersection-observer ^8.33.1
  • react-map-gl ^5.0.3
  • react-modal ^3.9.1
  • react-on-scroll ^0.2.2
  • react-redux ^8.0.1
  • react-responsive ^7.0.0
  • react-scripts 3.0.1
  • react-select ^3.0.4
  • recharts ^1.6.2
  • redux ^4.0.1
  • redux-devtools-extension ^2.13.8
  • redux-first-router ^2.1.1
  • redux-first-router-link ^2.1.1
  • redux-saga ^1.0.2
  • reselect ^4.0.0
  • viewport-mercator-project ^6.1.1
  • vizzuality-redux-tools ^4.0.2
yarn.lock npm
  • 2016 dependencies
data/notebooks/requirements.txt pypi
  • earthengine-api *
  • gcsfs *
  • geemap *
  • geopandas ==0.10.2
  • google-api-python-client *
  • google-cloud-storage *
  • iso8601 *
  • matplotlib ==3.3.4
  • pandas ==1.2.2
  • pandera *
  • pandera ==0.8.1
  • pystac *
  • python-dotenv >=0.5.1
  • python_jsonschema_objects *
  • rio-cogeo *
  • s3fs *
  • shapely *
  • simpledbf *
  • tqdm ==4.62.3
  • uuid *
  • zenodo_get *
.github/workflows/deploy-analysis.yml actions
  • actions/checkout v3 composite
  • finnp/create-file-action master composite
  • google-github-actions/auth v0.8.0 composite
  • google-github-actions/deploy-cloud-functions v0.10.1 composite
.github/workflows/deploy-fetch-alerts-heatmap.yml actions
  • actions/checkout v3 composite
  • google-github-actions/auth v0.8.0 composite
  • google-github-actions/deploy-cloud-functions v0.10.1 composite
.github/workflows/deploy-fetch-alerts.yml actions
  • actions/checkout v3 composite
  • google-github-actions/auth v0.8.0 composite
  • google-github-actions/deploy-cloud-functions v0.10.1 composite
cloud-functions/upload-alerts/Dockerfile docker
  • osgeo/gdal alpine-normal-latest build
data/docker-compose.yml docker
  • postgis/postgis 14-3.2
data/notebooks/Dockerfile docker
  • base latest build
  • jupyter/datascience-notebook python-3.8.6 build
  • stage_1 latest build
  • stage_2 latest build
.github/workflows/deploy-alerts-tiler.yml actions
  • actions/checkout v3 composite
  • google-github-actions/auth v0.8.0 composite
  • google-github-actions/deploy-cloud-functions v0.10.1 composite
.github/workflows/playwright.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • actions/upload-artifact v3 composite
  • patrickedqvist/wait-for-vercel-preview v1.3.1 composite
Dockerfile docker
  • node 18.12.1-bullseye build
cloud-functions/upload-alerts/docker-compose.yml docker
docker-compose.yml docker
cloud-functions/alerts-tiler/package-lock.json npm
  • 338 dependencies
cloud-functions/alerts-tiler/package.json npm
  • @google-cloud/functions-framework ^3.3.0 development
  • @mapbox/vector-tile ^1.3.0 development
  • c8 ^8.0.0 development
  • mocha ^10.0.0 development
  • sinon ^15.0.0 development
  • @google-cloud/bigquery ^5.0.0
  • axios ^0.21.4
  • concurrently ^7.2.2
  • nodemon ^2.0.20
  • vt-pbf 3.1.3
  • zlib ^1.0.5

Score: 7.215239978730098