Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 18 committers (5.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.0%) to scientific vocabulary

Keywords from Contributors

snapshot-testing plagiarism-checker zsh-plugin quantum-circuit mot genomics argument-parser controllers interactive projection
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: terraware
  • License: apache-2.0
  • Language: TypeScript
  • Default Branch: main
  • Homepage: tree-location-web.vercel.app
  • Size: 1.96 GB
Statistics
  • Stars: 8
  • Watchers: 6
  • Forks: 2
  • Open Issues: 5
  • Releases: 3
Created about 5 years ago · Last pushed 10 months ago
Metadata Files
Readme License Codeowners

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

shell docker login

  1. Install dependencies

shell yarn

  1. Start the app

shell 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.

shell http://localhost:8080/api/v1/login?redirect=http://localhost:3000/

  1. Stop the app

```shell yarn docker:stop

Stop the process running the frontend

```

How to Generate Translations

The file src/strings/csv/en.csv has all the human-readable strings in the app. If you're going to make text changes (including adding new text), you'll need to edit that file as well as the translation files for other languages.

We use an automatic translation tool that generates translations using OpenAI's API.

Get an OpenAI API key from your OpenAI account administrator or create one using the OpenAI platform console. It should have write permission on the Responses API.

Put the key in your .env file under the name OPENAI_API_KEY.

To translate newly-added or edited strings, you have two choices. You can do it as a one-off operation:

shell yarn translate

Or you can run autotranslate in "watch mode," which will watch for changes to src/strings/csv/en.csv and automatically request translations as needed. You can leave it running in the background.

shell yarn translate:start &

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.

```shell 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 translate # generate translations; requires OpenAI API key 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:

shell 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.

shell 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.

```shell

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:

shell yarn playwright install

To run the end-to-end tests:

shell 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 in debug mode and generate a report 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.

shell 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

  • Name: Terraformation
  • Login: terraware
  • Kind: organization

GitHub Events

Total
  • Watch event: 2
  • Delete event: 942
  • Issue comment event: 1,432
  • Push event: 2,962
  • Pull request review comment event: 860
  • Pull request event: 1,890
  • Pull request review event: 2,132
  • Fork event: 2
  • Create event: 1,048
Last Year
  • Watch event: 2
  • Delete event: 942
  • Issue comment event: 1,432
  • Push event: 2,962
  • Pull request review comment event: 860
  • Pull request event: 1,890
  • Pull request review event: 2,132
  • Fork event: 2
  • Create event: 1,048

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 3,682
  • Total Committers: 18
  • Avg Commits per committer: 204.556
  • Development Distribution Score (DDS): 0.729
Past Year
  • Commits: 1,253
  • Committers: 10
  • Avg Commits per committer: 125.3
  • Development Distribution Score (DDS): 0.696
Top Committers
Name Email Commits
constanzauanini c****i@a****m 997
Karthik B k****k@t****m 750
Nicholas Graziano n****o@g****m 368
terraware-phrase 1****e 266
Tommy Lau 8****3 259
Josh Buchea j****a 239
Steven Grimm s****m 185
Charlie Keith 1****f 174
alexTerraformation 1****n 127
Isaac Hudson i****n@t****m 96
renovate[bot] 2****] 81
dependabot[bot] 4****] 66
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 (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 21
  • Total pull requests: 3,089
  • Average time to close issues: about 23 hours
  • Average time to close pull requests: 4 days
  • Total issue authors: 8
  • Total pull request authors: 15
  • Average comments per issue: 1.24
  • Average comments per pull request: 1.54
  • Merged pull requests: 2,509
  • Bot issues: 2
  • Bot pull requests: 284
Past Year
  • Issues: 11
  • Pull requests: 1,834
  • Average time to close issues: about 17 hours
  • Average time to close pull requests: 2 days
  • Issue authors: 5
  • Pull request authors: 11
  • Average comments per issue: 1.27
  • Average comments per pull request: 1.4
  • Merged pull requests: 1,486
  • Bot issues: 2
  • Bot pull requests: 196
Top Authors
Issue Authors
  • constanzauanini (5)
  • karthikbtf (4)
  • joshbuchea (4)
  • tommylau523 (3)
  • renovate[bot] (2)
  • sgrimm (1)
  • nickgraz (1)
  • terraware-phrase (1)
Pull Request Authors
  • constanzauanini (782)
  • tommylau523 (356)
  • ice1080 (311)
  • joshbuchea (309)
  • nickgraz (309)
  • terraware-phrase (287)
  • renovate[bot] (170)
  • sgrimm (163)
  • karthikbtf (154)
  • dependabot[bot] (114)
  • alexTerraformation (95)
  • calitb (23)
  • kallen07 (14)
  • cormano (1)
  • terraformation-deploy (1)
Top Labels
Issue Labels
UPDATE-MAJOR (2) bot (1) renovate (1)
Pull Request Labels
bot (131) renovate (131) dependencies (113) UPDATE-MAJOR (86) javascript (12) do not merge (4) wip (2) documentation (1)

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