An open API service indexing awesome lists of open source software.

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

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!

[![Eterna Discord](https://discord.com/api/guilds/702618517589065758/widget.png?style=banner2)](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`