Skip to content

ddbj/submission-mss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,547 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MSS Form

Web portal for submitting nucleotide sequences to DDBJ via the Mass Submission System (MSS). Monorepo containing a Rails API backend and an Ember.js SPA frontend.

Tech Stack

  • Backend: Ruby 4.0 / Rails 8.1 (API only) / PostgreSQL
  • Frontend: Ember.js 6 / TypeScript / GTS (.gts) / Bootstrap 5 / Vite
  • Job Queue / Cache: Solid Queue / Solid Cache
  • Storage: SeaweedFS (S3-compatible) + Active Storage
  • Auth: OpenID Connect (Keycloak)
  • API Schema: OpenAPI (schema/openapi.yml)

Requirements

  • Ruby (see .ruby-version)
  • Node.js (see .node-version)
  • pnpm (see packageManager in web/package.json)
  • PostgreSQL
  • Docker (for SeaweedFS and Keycloak in development)

Setup

bin/setup
cd web && pnpm install

Development

Start all services (Rails, Ember, SeaweedFS, Keycloak):

bin/dev
Service URL
Rails API http://mssform.localhost:3000
Ember SPA http://mssform.localhost:4200
Keycloak http://localhost:8080

Testing

# Rails
bin/rails test
bin/rails test test/integration/submissions_test.rb  # single file

# Ember
cd web && pnpm test:ember

Linting

bin/rubocop -A          # Ruby
cd web && pnpm lint:fix # JS/TS/CSS/HBS + Prettier

Project Structure

/                          Rails application (API)
├── app/controllers/       API endpoints
├── app/models/            ActiveRecord models
├── app/jobs/              Solid Queue jobs
├── app/views/             jb templates (JSON responses)
├── config/app.yml         App-specific config (URLs, paths)
├── config/enums.yml       Enumerize enum definitions
├── test/                  Minitest tests
├── schema/openapi.yml     OpenAPI schema
│
web/                       Ember.js frontend
├── app/components/        GTS components
├── app/models/            Frontend models
├── app/request-handlers/  @ember-data/request handlers
├── app/services/          Ember services
├── public/workers/        Web Workers (file parsers)
└── tests/                 QUnit + MSW tests

Deployment

Deployed with Kamal. See config/deploy*.yml for configuration.

License

Apache License 2.0

About

Application form for Mass Submission System (MSS)

Resources

License

Stars

Watchers

Forks

Contributors