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

Terraware Web

The web app provides seed inventory management capabilities - with two main areas of focus: the seed processing workflow and monitoring of a seed bank's physical infrastructure.
https://github.com/terraware/terraware-web

Category: Biosphere
Sub Category: Deforestation and Reforestation

Keywords from Contributors

profile animations composable measures conversion transforms atoms projection reporting productivity

Last synced: about 19 hours ago
JSON representation

Repository metadata

README.md

Terraware Web

This is the front end web app for the Terraware application from Terraformation.

The web app provides seed inventory management capabilities - with two main areas of focus: the seed processing workflow and monitoring of a seed bank's physical infrastructure.

About this open-source project

If you're not a Terraformation employee, thanks for checking this repo out!

We're offering this project as Apache-licensed open source in the interest of sharing our technology with the world and being transparent about our work. Our mission is to accelerate global native forest restoration, and we believe we'll get there faster by sharing what we do.

For the moment, we're not asking for code contributions from the community. (Check our careers page if you're itching to work on this code!)

You may see references to some private repositories in the documentation. We're working toward opening more of our code, but not everything is ready yet.

Requirements

  • Docker Desktop version 4.32.0 or later

How to Run the App in Development Mode

  1. Copy .env.sample from the root directory of this repo to the same directory, with the filename .env
    1. If you work for Terraformation and are using existing Keycloak setup, refer to the secrets in the "Onboarding Plan for Frontend WebApp Developers" confluence page
  2. Login to Docker hub
docker login
  1. Install dependencies
yarn
  1. Start the app
yarn docker:start  # Run the server code
yarn start         # Run the front-end code
  1. Login. If you configured your environment variables correctly then you'll be taken to a keycloak login page. You may also try to login using through this API endpoint.
http://localhost:8080/api/v1/login?redirect=http://localhost:3000/
  1. Stop the app
yarn docker:stop
# Stop the process running the frontend

How to Contribute

Before putting up a pull request, make sure to run the following commands. The CI will check that these steps are completed.

yarn generate-types  # generate types for any server side API changes
yarn format          # run code formatter
yarn lint            # run linter to check for code quality issues
yarn ts              # run the typescript types checker
yarn test            # run the Jest (unit and integration) tests
# run the end to end tests, see the section below for more details

Tip: you can run everything except the end-to-end tests using:

yarn generate-types && yarn format && yarn lint && yarn ts && yarn test

How to Run the End-to-End Tests

Execute this command before each run of the end-to-end tests. This script does two things. #1 it downloads and start a Docker image for the terraware backend server and #2 it resets the state of the terraware database.

yarn server:reset

Tip: if you want to save the contents of a terraware database that you're using for manual testing, you can dump the contents of that database and reload them later. You can also rename the existing database using the following commands.

# connect to another local psql database that isn't terraware
psql postgres
# rename the existing terraware database to save it's contents
ALTER DATABASE terraware RENAME TO terrawareTEMP;

If this is your first time running the end-to-end tests, run this to install the necessary dependencies:

yarn playwright install

To run the end-to-end tests:

yarn server:reset   # start server and reset database state
yarn start:dev      # start the frontend
yarn playwright:run # run the tests on the command line and generate a report
yarn playwright:run --debug # run the tests on the command line and generate a report in debug mode
yarn docker:stop    # don't forget to stop the server when you're done

Connecting to the Database

If you want to examine or change the database that's used for your local testing, you can run the PostgreSQL interactive command-line client. This will only work after you've run scripts/resetdb.sh or yarn docker:start.

docker compose exec postgres psql -U postgres terraware

To exit the PostgreSQL client, type \quit or hit control-D.

Useful links

  • The API Swagger documentation link
  • Github deployment information link
  • PostgreSQL command line client docs link
  • Remote backend instructions (running a local FE with staging/production BE) link

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 3,560
Total Committers: 18
Avg Commits per committer: 197.778
Development Distribution Score (DDS): 0.729

Commits in past year: 1,200
Committers in past year: 11
Avg Commits per committer in past year: 109.091
Development Distribution Score (DDS) in past year: 0.697

Name Email Commits
constanzauanini c****i@a****m 966
Karthik B k****k@t****m 750
Nicholas Graziano n****o@g****m 368
terraware-phrase 1****e 254
Tommy Lau 8****3 251
Josh Buchea j****a 225
Steven Grimm s****m 181
Charlie Keith 1****f 174
alexTerraformation 1****n 127
renovate[bot] 2****] 72
dependabot[bot] 4****] 66
Isaac Hudson i****n@t****m 52
Kalina Allen k****7 37
Carlos Thurber c****r@a****m 30
chudo76 c****o@t****m 4
Manu Castro 7****o 1
Ryder Donahue 1****n 1
manu-castro c****o@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 0
Total pull requests: 537
Average time to close issues: N/A
Average time to close pull requests: 1 day
Total issue authors: 0
Total pull request authors: 12
Average comments per issue: 0
Average comments per pull request: 1.5
Merged pull request: 510
Bot issues: 0
Bot pull requests: 35

Past year issues: 0
Past year pull requests: 437
Past year average time to close issues: N/A
Past year average time to close pull requests: 1 day
Past year issue authors: 0
Past year pull request authors: 9
Past year average comments per issue: 0
Past year average comments per pull request: 1.5
Past year merged pull request: 417
Past year bot issues: 0
Past year bot pull requests: 35

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/terraware/terraware-web

Top Issue Authors

Top Pull Request Authors

  • constanzauanini (243)
  • ice1080 (75)
  • terraware-phrase (56)
  • sgrimm (30)
  • renovate[bot] (26)
  • joshbuchea (23)
  • calitb (23)
  • tommylau523 (20)
  • alexTerraformation (17)
  • kallen07 (14)
  • dependabot[bot] (9)
  • cormano (1)

Top Issue Labels

Top Pull Request Labels

  • bot (26)
  • renovate (26)
  • UPDATE-MAJOR (10)
  • dependencies (9)
  • javascript (7)

Dependencies

package.json npm
  • @cypress/code-coverage ^3.9.9 development
  • @cypress/instrument-cra ^1.4.0 development
  • cypress ^8.7.0 development
  • esm ^3.2.25 development
  • http-proxy-middleware ^2.0.1 development
  • jest-mock-axios ^4.4.1 development
  • jest-mock-extended ^2.0.4 development
  • nyc ^15.1.0 development
  • openapi-typescript ^4.0.2 development
  • start-server-and-test ^1.14.0 development
  • tslint ^6.1.3 development
  • tslint-config-prettier ^1.18.0 development
  • tslint-eslint-rules ^5.4.0 development
  • tslint-react ^5.0.0 development
  • tslint-react-hooks ^2.2.2 development
  • @date-io/date-fns ^2.14.0
  • @date-io/moment ^1.3.13
  • @dnd-kit/core ^6.0.5
  • @dnd-kit/sortable ^7.0.1
  • @emotion/react ^11.9.3
  • @emotion/styled ^11.9.3
  • @mui/icons-material ^5.8.4
  • @mui/lab ^5.0.0-alpha.88
  • @mui/material ^5.8.7
  • @mui/styled-engine-sc ^5.8.0
  • @mui/styles ^5.8.7
  • @mui/x-date-pickers ^5.0.0-alpha.7
  • @terraware/web-components ^1.0.7
  • @testing-library/jest-dom ^5.11.4
  • @testing-library/react ^11.1.0
  • @testing-library/user-event ^12.1.10
  • @types/jest ^26.0.23
  • @types/node ^15.12.0
  • @types/react ^17.0.9
  • @types/react-dom ^17.0.6
  • @types/react-router-dom ^5.1.7
  • axios ^0.21.1
  • chart.js ^3.3.2
  • chartjs-adapter-date-fns ^2.0.0
  • classnames ^2.3.1
  • cookies-js ^1.2.3
  • date-fns ^2.28.0
  • jwt-decode ^3.1.2
  • license-report ^6.0.0
  • moment ^2.29.1
  • react ^17.0.2
  • react-dom ^17.0.2
  • react-localization ^1.0.17
  • react-map-gl ^6.1.16
  • react-responsive ^9.0.0-beta.6
  • react-router-dom ^5.2.0
  • react-scripts ^4.0.3
  • recoil ^0.3.1
  • sass ^1.38.0
  • styled-components ^5.3.5
  • tslint-plugin-cypress ^1.0.4
  • typescript ^4.3.2
  • utm ^1.1.1
  • web-vitals ^1.0.1
  • worker-loader ^3.0.8
yarn.lock npm
  • 1923 dependencies
.github/workflows/docs.yml actions
  • JamesIves/github-pages-deploy-action v4.4.3 composite
  • actions/cache v3 composite
  • actions/checkout v4 composite
.github/workflows/workflow.yml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/upload-artifact v3 composite
  • atlassian/gajira-login master composite
  • aws-actions/configure-aws-credentials v1-node16 composite
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/setup-buildx-action v3 composite
  • tailscale/github-action v2 composite
  • terraware/gajira-transition-multiple master composite
Dockerfile docker
  • nginx 1.25-alpine build
docker-compose.yml docker
  • postgis/postgis 15-3.3
  • terraware/terraware-server STAGING
remote-backend/Dockerfile docker
  • nginx 1.25-alpine build
remote-backend/docker-compose.yml docker

Score: 5.19295685089021