DaSCH Applications and Libraries Monorepo
This monorepo hosts various libraries of the DaSCH Service Platform and it is built on:
- Nx - See package.json for current version
- Angular - See package.json for current version
- Node.js - Version managed via .nvmrc file
Install libraries
To install all libraries and external dependencies just run npm install.
Quick Commands
Most common operations for daily development:
| Task | Command |
|---|---|
| Install dependencies | npm install |
| 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 |
For all available commands, see package.json.
@dasch-swiss librairies
For more information about specific library, please go to its readme, e.g.:
DSP-APP — generic user interface of DaSCH Service Platform
DSP (DaSCH Service Platform) is a software framework for storing, sharing, and working with primary resources and data in the humanities.
DSP-APP is a simple user interface for the research data repository of the Swiss National Data and Service Center for the Humanities (DaSCH), which uses the DSP-API server application in the backend. It's a system for annotation and linkage of resources in arts and humanities.
DSP-APP implements DSP-JS to connect with DSP-API.
DSP-APP is free software, released under GNU Affero General Public license.
User Quickstart
To try DSP-APP out the DSP-API backend should be started first:
In terminal go to DSP-API repository and start the API by running following commands:
$ make init-db-test
$ make stack-without-app
Once backend is up and running, in the second terminal instance start DSP-APP by running:
# come back to this repository and start the DSP-APP
$ npx nx run dsp-app:serve
Developer Quickstart
It is recommended to use Node.js version which is supported by installed Angular version.
The monorepo is implemented using NX.
NOTE: to run
nxcommands install it globallynpm install -g nxor instead usenpx.
Working with Individual Libraries
The monorepo contains multiple libraries that can be developed independently. To work with specific libraries:
# Test a specific library
nx run [library-name]:test
# Build a specific library
nx run [library-name]:build
# Lint a specific library
nx run [library-name]:lint
# Example: Test the calendar library
nx run jdnconvertiblecalendar:test
Available libraries:
- See tsconfig.base.json for all library path aliases under the paths configuration
- Main VRE libraries are under @dasch-swiss/vre/* namespace
- Standalone libraries: @dasch-swiss/jdnconvertiblecalendar, @dasch-swiss/jdnconvertiblecalendardateadapter
OpenAPI Client Generation
For API client generation and maintenance: - OpenAPI Client Generation - Auto-generated TypeScript client for DSP-API
IDE plugins
- https://plugins.jetbrains.com/plugin/15101-nx-console-idea
- https://marketplace.visualstudio.com/items?itemName=nrwl.angular-console
Local Observability
For local development, you can run a Grafana observability stack to view Faro telemetry data (logs, traces, Web Vitals):
$ npm run start-local-with-observability
This starts both the observability stack and the app. Access Grafana at http://localhost:3001 (credentials: admin/admin). The stack includes Loki for logs, Tempo for traces, and Mimir for metrics. To stop: docker compose -f docker-compose.observability.yml down
For detailed configuration and troubleshooting, see the inline documentation in docker-compose.observability.yml and apps/dsp-app/src/config/config.dev.json.
Further Documentation
User guide
Developer docs
Contribution
If you would like to contribute to the development of the DSP-APP alongside us, please follow the general DSP contribution guidelines.
Documentation / User guidelines
We built the user guidelines and developer documentation with MkDocs. More information can be found in the specific README.