SkyTruth 30x30 Tracker

A compelling online experience that builds momentum towards meeting global biodiversity targets by unlocking opportunities for protecting the marine environment and forging connections with the wider 30x30 community.
https://github.com/SkyTruth/skytruth-30x30

Category: Biosphere
Sub Category: Conservation and Restoration

Keywords from Contributors

climate-change deforestation forest-monitoring conservation wri-api bigdata resilience sustainability climate

Last synced: about 5 hours ago
JSON representation

Repository metadata

SkyTruth 30x30 Tracker is a compelling online experience that builds momentum towards meeting global biodiversity targets by unlocking opportunities for protecting the marine environment and forging connections with the wider 30x30 community.

README.md

skytruth-30x30

SkyTruth 30x30 Tracker is a compelling online experience that builds momentum towards meeting global biodiversity targets by unlocking opportunities for protecting the marine environment and forging connections with the wider 30x30 community.

Maintenance documentation

Key Components

  • Next.js Client: The client-side application is developed using Next.js, a React framework that facilitates server-side rendering and efficient client-side navigation.

  • Strapi Headless CMS: The back-end application is implemented using Strapi, which provides a flexible content management system and exposes APIs for dynamic data retrieval.

  • Analysis Cloud Function: On-the-fly analysis results are generated through a cloud function, which connects to a spatially enabled PostgreSQL database.

  • Data Pipelines: Data pipelines are responsible for feeding structured data into the SQL database and layers into Mapbox.

External services:

  • Mapbox: used for serving layers for the map

This repository contains all the code and documentation necessary to set up and deploy the project. It is organised in 5 main subdirectories, with accompanying documentation inside each.

Subdirectory name Description Documentation
frontend The Next.js client application frontend
cms The Strapi CMS / API cms
cloud_functions/analysis The on-the-fly analysis cloud function cloud functions
data The Python data importers and uploaders data
infrastructure The Terraform project & GH Actions workflow (provisioning & deployment to Google Cloud Platform) infrastructure

Deployment and Infrastructure

The project is deployed on the Google Cloud Platform (GCP) using GitHub Actions for continuous integration and deployment. The infrastructure is provisioned and managed using Terraform scripts, ensuring consistent and reproducible deployments.

Development

In General each of subdirectories listed above act as standalone services and can be developed in isolation. For detailed instructions on development in those services please see the linked README's for the given service. There are, however, a few exceptions to this which are outlined below.

Frontend Typescript Types

Type definitions and internal data fetching hooks are automatically generated via integrations with Orval and Strapi. Please see the frontend documentation for how to manage this dependency when developing locally.

Development Hooks

This repo uses husky to manage development flow hooks. There are hooks for: pre-commit, post-checkout, and post-merge. These hooks ensure the code is linted and formatted, as well as ensuring that generated types are up to date and the Strapi CMS config models are all up to date. For these checks to pass you must have an accurate .env file in the CMS directory and have the config file synced from the Strapi back office. Please refer to the developing strapi docs and the strapi config sync docs to set this up prior to branching and committing.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 8 days ago

Total Commits: 1,088
Total Committers: 10
Avg Commits per committer: 108.8
Development Distribution Score (DDS): 0.543

Commits in past year: 382
Committers in past year: 8
Avg Commits per committer in past year: 47.75
Development Distribution Score (DDS) in past year: 0.547

Name Email Commits
Simao Rodrigues a****o@g****m 497
Clément Prod'homme c****t@c****r 199
Andrés González Muñoz a****z@v****m 127
Agnieszka Figiel a****l@v****m 89
Alicia a****a@g****m 77
Will w****e@W****l 63
sofia s****t@g****m 16
Will w****e@M****2 11
Will Lytle w****l@s****g 5
Miguel Barrenechea Sánchez m****a@v****m 4

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 0
Total pull requests: 367
Average time to close issues: N/A
Average time to close pull requests: 3 days
Total issue authors: 0
Total pull request authors: 9
Average comments per issue: 0
Average comments per pull request: 1.01
Merged pull request: 342
Bot issues: 0
Bot pull requests: 0

Past year issues: 0
Past year pull requests: 104
Past year average time to close issues: N/A
Past year average time to close pull requests: 6 days
Past year issue authors: 0
Past year pull request authors: 8
Past year average comments per issue: 0
Past year average comments per pull request: 0.84
Past year merged pull request: 93
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/SkyTruth/skytruth-30x30

Top Issue Authors

Top Pull Request Authors

  • SARodrigues (174)
  • agnlez (64)
  • agnessa (35)
  • clementprdhomme (29)
  • wlytle (29)
  • aagm (26)
  • SofiaAldabet (6)
  • sstill88 (3)
  • yulia-bel (1)

Top Issue Labels

Top Pull Request Labels


Dependencies

frontend/Dockerfile docker
  • node 18.15-bullseye build
frontend/docker-compose.yml docker
frontend/package.json npm
  • @types/google.analytics 0.0.42 development
  • @types/node 18.15.0 development
  • @types/react 18.0.28 development
  • @types/react-dom 18.0.11 development
  • @typescript-eslint/eslint-plugin 6.2.1 development
  • @typescript-eslint/parser 6.2.1 development
  • autoprefixer 10.4.14 development
  • eslint 8.32.0 development
  • eslint-config-next 13.2.4 development
  • eslint-config-prettier 8.6.0 development
  • eslint-plugin-prettier 4.2.1 development
  • husky 6.0.0 development
  • prettier 2.8.3 development
  • prettier-plugin-tailwindcss 0.2.1 development
  • start-server-and-test 1.12.1 development
  • svg-sprite-loader 6.0.11 development
  • svgo 3.0.2 development
  • svgo-loader 3.0.3 development
  • typescript 5.0.4 development
  • @radix-ui/react-dialog ^1.0.4
  • @radix-ui/react-slot ^1.0.2
  • @tailwindcss/forms 0.5.3
  • @tailwindcss/line-clamp 0.4.2
  • @tailwindcss/typography 0.5.9
  • @tanstack/react-query 4.26.1
  • class-variance-authority ^0.7.0
  • classnames ^2.3.2
  • clsx ^2.0.0
  • lucide-react ^0.274.0
  • mapbox-gl npm:[email protected]
  • maplibre-gl 2.1.9
  • next 13.2.4
  • postcss 8.4.21
  • react 18.2.0
  • react-dom 18.2.0
  • react-map-gl 7.0.25
  • tailwind-merge ^1.14.0
  • tailwindcss 3.2.7
  • tailwindcss-animate ^1.0.7
  • usehooks-ts 2.9.1
frontend/yarn.lock npm
  • 619 dependencies
.github/workflows/deploy.yml actions
  • actions/checkout v4 composite
  • docker/login-action v3 composite
  • google-github-actions/auth v1 composite
  • google-github-actions/deploy-cloudrun v1 composite
cms/Dockerfile docker
  • node 18.17-bullseye-slim build
cms/docker-compose.yml docker
  • postgres latest
data/Dockerfile docker
  • base latest build
  • build latest build
  • mambaorg/micromamba 1.4.4 build
data/docker-compose.yml docker
cms/package.json npm
  • typescript 5.1.3 development
  • @strapi/plugin-documentation 4.14.5
  • @strapi/plugin-i18n 4.14.5
  • @strapi/plugin-users-permissions 4.14.5
  • @strapi/strapi 4.14.5
  • pg 8.8.0
  • strapi-plugin-config-sync ^1.1.3
  • strapi-plugin-import-export-entries ^1.21.0
cms/yarn.lock npm
  • 1446 dependencies
data/pyproject.toml pypi
cloud_functions/analysis/requirements.txt pypi
  • functions-framework *
  • pg8000 *
  • sqlalchemy *
cloud_functions/analysis/Dockerfile docker
  • builder latest build
  • python 3.12-slim build
cloud_functions/analysis/docker-compose.yml docker
  • ghcr.io/osgeo/gdal ubuntu-small-latest
  • postgis/postgis 14-3.4
.github/workflows/localazy-release.yml actions
  • actions/checkout v1 composite
  • localazy/tag v1 composite
.github/workflows/localazy-upload.yml actions
  • actions/checkout v1 composite
  • localazy/upload v1 composite
data/environment.yml conda
  • affine >2.4.0*
  • beautifulsoup4 >4.12.2*
  • black >23.9.1*
  • cachetools >5.3.1*
  • cartopy >0.22.0*
  • cython >3.0.3*
  • fiona >1.9.4*
  • gdal >3.7.2*
  • geopandas >0.14.0*
  • google-api-python-client >2.102.0*
  • google-cloud-storage >2.11.0*
  • jupyterlab >3.6.6*
  • libgdal-arrow-parquet >0.1.0*
  • nodejs 20.8.0.*
  • openpyxl >3.1.0*
  • pandas >2.1.1*
  • pandera >0.18.0*
  • pandera-geopandas >0.18.0*
  • plotly >5.17.0*
  • pre-commit >3.3.3*
  • proj >9.3.0*
  • pydantic >2.4.2*
  • pydantic-settings >2.0.3*
  • python 3.12.*
  • python-dotenv >1.0.0*
  • rasterio >1.3.8*
  • rasterstats >0.19.0*
  • rtree >1.0.1*
  • simplejson >3.19.1*
  • statsmodels >0.14.0*
  • supermercado >0.2.0*
  • termcolor >2.3.0*
  • tqdm >4.66.1*

Score: 4.605170185988092