{"id":43916888,"url":"https://github.com/zooniverse/alice","last_synced_at":"2026-02-06T21:34:56.504Z","repository":{"id":37932846,"uuid":"201100856","full_name":"zooniverse/alice","owner":"zooniverse","description":"A front end tool allowing reviewing and editing of Zooniverse transcription data.","archived":false,"fork":false,"pushed_at":"2024-05-06T07:51:58.000Z","size":8832,"stargazers_count":3,"open_issues_count":49,"forks_count":1,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-05-06T08:56:32.026Z","etag":null,"topics":["aggregation"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zooniverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-07T17:51:29.000Z","updated_at":"2024-01-12T18:09:58.000Z","dependencies_parsed_at":"2023-02-15T06:45:51.480Z","dependency_job_id":"1c8702ee-d948-4564-8863-9bc5537e2831","html_url":"https://github.com/zooniverse/alice","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zooniverse/alice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zooniverse%2Falice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zooniverse%2Falice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zooniverse%2Falice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zooniverse%2Falice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zooniverse","download_url":"https://codeload.github.com/zooniverse/alice/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zooniverse%2Falice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29177554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T20:14:21.878Z","status":"ssl_error","status_checked_at":"2026-02-06T20:14:21.443Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aggregation"],"created_at":"2026-02-06T21:34:56.382Z","updated_at":"2026-02-06T21:34:56.492Z","avatar_url":"https://github.com/zooniverse.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ALICE\n\n**A**ggregate **L**ine **I**nspector / **C**ollaborative **E**ditor  \nA front end tool allowing reviewing and editing of Zooniverse transcription data.\n\n[![Coverage Status](https://coveralls.io/repos/github/zooniverse/text-editor/badge.svg?branch=master)](https://coveralls.io/github/zooniverse/text-editor?branch=master)\n\n**Production:** [https://alice.zooniverse.org](https://alice.zooniverse.org)  \n**Staging:** [https://alice.preview.zooniverse.org](https://alice.preview.zooniverse.org)\n\nPlease refer to the [wiki](https://github.com/zooniverse/text-editor/wiki) for more detailed information.\n\n## Status\nThis project is currently in beta testing.\n\n## Getting Started\nThis project uses [Yarn](https://yarnpkg.com/en/docs) or [Docker](https://docs.docker.com/) to get the app up and running\n\n**Yarn**  \n- `yarn install` to install package dependencies  \n- `yarn test` to run all tests within the repo  \n- `yarn storybook` to open a [Storybook](https://storybook.js.org) viewer at `http://localhost:6006` to view components in isolation  \n- `yarn start` to open a staging version of the site at `https://localhost:3000`. Use `https://local.zooniverse.org:3000` to log in via the Panoptes API ([instructions](https://stackoverflow.com/c/zooniverse/questions/109).)\n\n**Docker**\n- `docker-compose up` to run the development app at `http://localhost:3000` and start storybook at `http://localhost:6006`\n- `docker-compose down` to stop the dev containers\n- `docker-compose run --rm dev test` to run the tests\n\n## Deployment\n\nDeployment is handled by Github Action. Both staging and production deployment can be run ad hoc in the actions tab as needed if you have the appropriate permissions on the repository.\n\n### Environment Variables\n\nReact scripts (aka Create-React-App or CRA) [handles the `NODE_ENV`](https://create-react-app.dev/docs/adding-custom-environment-variables/) for us:\n\n\u003e There is also a built-in environment variable called NODE_ENV. You can read it from process.env.NODE_ENV. When you run npm start, it is always equal to 'development', when you run npm test it is always equal to 'test', and when you run npm run build to make a production bundle, it is always equal to 'production'. You cannot override NODE_ENV manually. This prevents developers from accidentally deploying a slow development build to production.\n\nBecause of this, if we want to deploy a staging app that builds like production, but uses the Panoptes API staging server, then we would either have to [eject](https://create-react-app.dev/docs/available-scripts#npm-run-eject) and manually manage the `NODE_ENV` or somehow set to use the staging API by another means. Ejecting is undesirable because its impact would mean we would have to manually configure additional things that CRA handles for us and this would defeat the benefit of using CRA.\n\nInstead, another environment variable, `REACT_APP_ENV` set to `development` is used when doing a staging deployment. The `panoptes-javascript-client` was updated to check for this environment variable in addition to what its already set to do and give preference to it before `NODE_ENV`. This enables us to set the client to use the staging API and not have to manage `NODE_ENV` and eject this app.  \n\n### Staging\n\nOn merge to master, a Github Action is triggered to deploy to staging to `https://alice.preview.zooniverse.org`.\n\n### Production\n\nProduction deployments are triggered by an update to which commit the `production-release` tag is pointed to. This tag should be updated via chat ops and then a Github Action will run that builds and uploads the files to our cloud provider found at `https://alice.zooniverse.org`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzooniverse%2Falice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzooniverse%2Falice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzooniverse%2Falice/lists"}