Skip to content

dasch-swiss/dsp-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,905 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DaSCH Applications and Libraries Monorepo

Github Docker CI codecov

DSP-APP is the user interface for the DaSCH Service Platform — a software framework for storing, sharing, and working with primary resources and data in the humanities. It connects to DSP-API via DSP-JS and is released under the GNU Affero General Public License.

This monorepo is built on:

Quick Start

Use the Node.js version supported by the installed Angular version (compatibility table), or the version pinned in .nvmrc.

npm install
npm run start-local   # app runs at http://localhost:4200

Requires a running DSP-API backend. To start it locally:

# In the dsp-api repository
make init-db-test
make stack-without-app

Every PR that touches apps/dsp-app/src/ or libs/ gets an automatic live preview deployed to Google Cloud Run — the URL is posted as a PR comment. You can also trigger a preview for any branch manually via the PR Preview workflow. To publish a Docker image directly from any branch (e.g. for a hotfix), trigger the Publish from branch workflow manually.

Quick Commands

Most common operations for daily development:

Task Command
Start local development npm run start-local
Start with observability npm run start-local-with-observability
Run tests npm run test-local
Run all tests (CI mode) npm run test-ci-all
Lint all libs w/o auto-fix npm run lint-all
Lint all libs with auto-fix npm run lint-fix-all
Open E2E tests UI npm run e2e-local
Run E2E tests (headless) npm run e2e-ci
Build for development npm run build
Build for production npm run build-prod
Generate test coverage npm run unit-test-coverage
Browse all component stories npm run storybook
Build static Storybook npm run build-storybook
Run Storybook interaction tests npm run test-storybook

For all available commands, see package.json.

Developer Guide

Working with Individual Libraries

The monorepo contains multiple independently buildable libraries:

# Test, build, or lint a specific library
nx run [library-name]:test
nx run [library-name]:build
nx run [library-name]:lint

# Example
nx run vre-ui-date-picker:test

Note: To run nx commands, install it globally (npm install -g nx) or use npx nx.

Library path aliases are defined in tsconfig.base.json under paths. Main VRE libraries use the @dasch-swiss/vre/* namespace.

OpenAPI Client Generation

The TypeScript client for DSP-API is auto-generated from the OpenAPI spec:

npm run check-openapi-sync      # Check if the generated client is up to date
npm run update-openapi           # Update spec and regenerate client
npm run generate-openapi-module # Regenerate from the local spec only

The client is also regenerated automatically as part of npm install (via postinstall), so it stays in sync after dependency updates.

See OpenAPI Client README for full details.

IDE Plugins

Local Observability

Run a Grafana stack alongside the app to view Faro telemetry (logs, traces, Web Vitals):

npm run start-local-with-observability

Grafana is available at http://localhost:3001 (credentials: admin/admin). Includes Loki (logs), Tempo (traces), and Mimir (metrics).

To stop: docker compose -f docker-compose.observability.yml down

Storybook

A single global Storybook instance aggregates stories from all libraries and apps:

npm run storybook           # Start dev server (http://localhost:4400)
npm run build-storybook     # Build a static bundle to dist/storybook/
npm run test-storybook      # Run story interaction tests (requires a running server)

Stories are auto-discovered from any *.stories.ts file under libs/ or apps/ — no registration needed when adding new stories.

Issues & Contributions

To report an issue or contribute, contact us at support@dasch.swiss.

About

DaSCH application suite for the DaSCH Service Platform

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors