https://github.com/eternagame/eterna-next
The Eterna citizen science platform for RNA design
https://github.com/eternagame/eterna-next
citizen-science game rna website
Last synced: 5 months ago
JSON representation
The Eterna citizen science platform for RNA design
- Host: GitHub
- URL: https://github.com/eternagame/eterna-next
- Owner: eternagame
- License: other
- Created: 2022-02-10T21:22:32.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-10-24T07:07:41.000Z (over 2 years ago)
- Last Synced: 2024-03-26T11:25:50.219Z (about 2 years ago)
- Topics: citizen-science, game, rna, website
- Language: TypeScript
- Homepage: https://eternagame.org
- Size: 337 KB
- Stars: 0
- Watchers: 14
- Forks: 0
- Open Issues: 269
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# @eternagame/eterna
The Eterna citizen science platform for RNA design
### To start 3rd party Services Locally
* `docker compose up`
* Postgres DB (Database Admin: http://localhost:8080)
* Localstack (S3, SQS)
Interested in development? Join the discussion on the Eterna Discord!
[](https://discord.gg/KYeTwux)
## Setup
- Install [NodeJS](https://nodejs.org/en/download/) (we recommend using the latest LTS version)
- Run `npm install` in the root of this repository
## Common Commands
This repository is structured as a [monorepo](https://monorepo.tools/), using
[NPM Workspaces](https://docs.npmjs.com/cli/v8/using-npm/workspaces) and [Nx](https://nx.dev/) to
manage its components. Here are some common actions you might want to take:
### Running Apps
Run `npx nx dev ` to run an application package, automatically reloading when changes occur.
Run `npx nx start ` to run after building the package (with dependencies) without reloading.
### Build
Run `npx nx build ` to build a package. This will also build any dependencies of the package.
Run `npx nx build:watch ` to build a package and rebuild when files are changed.
This will also build any dependencies of the package.
### Linting and Formatting
Run `npx nx lint ` to run linting for a package via [ESLint](https://eslint.org/).
Run `npx nx lint --fix` to run linting with automatic fixes
### Testing
Run `npx nx test ` to execute unit/component tests for a package via [Vitest](https://vitest.dev/)
or [Cypress](https://www.cypress.io/) (depending on which is configured for the package).
Run `npx nx test:watch ` to execute unit/component tests for a package in watch mode (Vitest only).
Run `npx nx test:cov ` to execute unit/component tests and report code coverage for a
package in watch mode (Vitest only).
Run `npx nx test:ui ` to execute unit/component tests for a package using the UI-based test runner (Cypress only).
Run `npx nx affected:test` to execute unit/component tests for all packages affected by a code change.
Run `npx nx e2e ` to execute end to end tests in a package, if configured.
Run `npx nx affected:e2e` to execute all end to end tests in packages affected by a code change.
### Code Generation
You can use the Eterna Nx plugin to automatically create and update files, including adding new packages.
To see the available generators, run `npx nx list @eternagame/nx-plugin`. To run a given generator,
run `npx nx generate ` (eg, `npx nx generate ts-iso`). Running `npx nx generate --help`
will show available options for that generator. In particular, if generating a new package, you may want to pass
the `--directory` flag to put the package in a specific subdirectory of the packages directory if you don't
want it placed in the root.
### Updating Dependencies
When upgrading `@eternagame/nx-plugin`, there may be changes to the repository that should be made when updating.
This process is automated, and can be done via `npx nx migrate @eternagame/nx-plugin@latest` and then (if necessary)
`npx nx migrate --run-migrations` after reviewing the changes to be made in the migrations.json.
When upgrading nx, you may also want to run migrations for it as well (eg, `npx nx migrate nx@latest`),
though you most likely will not need to if you don't customize any Nx configuration files. Note that `@eternagame/nx-plugin`
has `nx` as a peer dependency - if the latest version of `nx` is beyond its requirement and you want to upgrade
to a more recent version that is allowed, you'll need to specify a version like `npx nx migrate nx@version`.
For updating other dependencies, you may want to use `npx npm-check-updates --deep --peer`
If you're on a unix-like system and want to remove all nested node_modules folders,
you can run `find . -type d -name node_modules -prune | xargs rm -r`