{"id":38168788,"url":"https://github.com/dasch-swiss/dsp-das","last_synced_at":"2026-01-28T13:10:52.834Z","repository":{"id":37461272,"uuid":"156874618","full_name":"dasch-swiss/dsp-das","owner":"dasch-swiss","description":"DaSCH application suite for the DaSCH Service Platform","archived":false,"fork":false,"pushed_at":"2026-01-12T15:52:50.000Z","size":528498,"stargazers_count":13,"open_issues_count":7,"forks_count":5,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-12T18:08:50.827Z","etag":null,"topics":["data-management-platform","web-application"],"latest_commit_sha":null,"homepage":"https://docs.dasch.swiss/latest/DSP-APP/","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dasch-swiss.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-11-09T14:39:42.000Z","updated_at":"2026-01-12T15:52:21.000Z","dependencies_parsed_at":"2023-10-16T18:28:40.902Z","dependency_job_id":"a340fa8b-107b-4778-a84b-701ce4184d8f","html_url":"https://github.com/dasch-swiss/dsp-das","commit_stats":null,"previous_names":["dasch-swiss/dsp-app"],"tags_count":308,"template":false,"template_full_name":null,"purl":"pkg:github/dasch-swiss/dsp-das","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch-swiss%2Fdsp-das","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch-swiss%2Fdsp-das/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch-swiss%2Fdsp-das/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch-swiss%2Fdsp-das/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dasch-swiss","download_url":"https://codeload.github.com/dasch-swiss/dsp-das/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dasch-swiss%2Fdsp-das/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28487586,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T22:54:02.790Z","status":"ssl_error","status_checked_at":"2026-01-16T22:50:10.344Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-management-platform","web-application"],"created_at":"2026-01-16T23:24:08.123Z","updated_at":"2026-01-16T23:24:08.208Z","avatar_url":"https://github.com/dasch-swiss.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DaSCH Applications and Libraries Monorepo\n\n[![Github](https://img.shields.io/github/v/tag/dasch-swiss/dsp-das?include_prereleases\u0026label=Github%20tag)](https://github.com/dasch-swiss/dsp-das)\n[![Docker](https://img.shields.io/docker/v/daschswiss/dsp-app?label=Docker%20image)](https://hub.docker.com/r/daschswiss/dsp-app)\n[![CI](https://github.com/dasch-swiss/dsp-das/workflows/CI/badge.svg)](https://github.com/dasch-swiss/dsp-das/actions?query=workflow%3ACI)\n[![codecov](https://codecov.io/gh/dasch-swiss/dsp-das/branch/main/graph/badge.svg)](https://codecov.io/gh/dasch-swiss/dsp-das)\n\nThis monorepo hosts various libraries of the DaSCH Service Platform and it is built on:\n\n- Nx - See [package.json](https://github.com/dasch-swiss/dsp-das/blob/main/package.json) for current version\n- Angular - See [package.json](https://github.com/dasch-swiss/dsp-das/blob/main/package.json) for current version\n- Node.js - Version managed via [.nvmrc](https://github.com/dasch-swiss/dsp-das/blob/main/.nvmrc) file\n\n# Install libraries\n\nTo install all libraries and external dependencies just run `npm install`.\n\n## Quick Commands\n\nMost common operations for daily development:\n\n| Task | Command |\n|------|---------|\n| Install dependencies | `npm install` |\n| Start local development | `npm run start-local` |\n| Start with observability | `npm run start-local-with-observability` |\n| Run tests | `npm run test-local` |\n| Run all tests (CI mode) | `npm run test-ci-all` |\n| Lint all libs w/o auto-fix | `npm run lint-all` |\n| Lint all libs with auto-fix | `npm run lint-fix-all` |\n| Open E2E tests UI | `npm run e2e-local` |\n| Run E2E tests (headless) | `npm run e2e-ci` |\n| Build for development | `npm run build` |\n| Build for production | `npm run build-prod` |\n| Generate test coverage | `npm run unit-test-coverage` |\n\nFor all available commands, see [package.json](https://github.com/dasch-swiss/dsp-das/blob/main/package.json).\n\n## @dasch-swiss librairies\n\nFor more information about available libraries, see the VRE libraries under `libs/vre/` and the library path aliases in [tsconfig.base.json](https://github.com/dasch-swiss/dsp-das/blob/main/tsconfig.base.json).\n\n## DSP-APP \u0026mdash; generic user interface of DaSCH Service Platform\n\nDSP (DaSCH Service Platform) is a software framework for storing, sharing, and\nworking with primary resources and data in the humanities.\n\nDSP-APP is a simple user interface for the research data repository of the\nSwiss National Data and Service Center for the Humanities (DaSCH), which uses\nthe [DSP-API](https://github.com/dasch-swiss/dsp-api) server application in the backend. It's a system for annotation and\nlinkage of resources in arts and humanities.\n\nDSP-APP implements [DSP-JS](https://www.npmjs.com/package/@dasch-swiss/dsp-js)\nto connect with [DSP-API](https://docs.dasch.swiss/latest/DSP-API/03-endpoints/api-v2/introduction/).\n\nDSP-APP is [free software](http://www.gnu.org/philosophy/free-sw.en.html), released\nunder [GNU Affero General Public](http://www.gnu.org/licenses/agpl-3.0.en.html) license.\n\n## User Quickstart\n\nTo try DSP-APP out the [DSP-API](https://github.com/dasch-swiss/dsp-api) backend should be started first:\n\nIn terminal go to DSP-API repository and start the API by running following commands:\n\n```shell\n$ make init-db-test\n$ make stack-without-app\n```\n\nOnce backend is up and running, in the second terminal instance start DSP-APP by running:\n\n```shell\n# come back to this repository and start the DSP-APP\n$ npx nx run dsp-app:serve\n```\n\n## Developer Quickstart\n\nIt is recommended to use `Node.js` version which [is supported by installed Angular version](https://angular.dev/reference/versions).\n\nThe monorepo is implemented using [NX](https://nx.dev).\n\n\u003e **_NOTE:_** to run `nx` commands install it globally `npm install -g nx` or instead use `npx`.\n\n### Working with Individual Libraries\n\nThe monorepo contains multiple libraries that can be developed independently. To work with specific libraries:\n\n```bash\n# Test a specific library\nnx run [library-name]:test\n\n# Build a specific library\nnx run [library-name]:build\n\n# Lint a specific library\nnx run [library-name]:lint\n\n# Example: Test the date-picker library\nnx run vre-ui-date-picker:test\n```\n\n**Available libraries:**\n- See [tsconfig.base.json](https://github.com/dasch-swiss/dsp-das/blob/main/tsconfig.base.json) for all library path aliases under the `paths` configuration\n- Main VRE libraries are under `@dasch-swiss/vre/*` namespace\n\n### OpenAPI Client Generation\n\nFor API client generation and maintenance:\n- [OpenAPI Client Generation](https://github.com/dasch-swiss/dsp-das/blob/main/libs/vre/3rd-party-services/open-api/README.md) - Auto-generated TypeScript client for DSP-API\n\n### IDE plugins\n\n- https://plugins.jetbrains.com/plugin/15101-nx-console-idea\n- https://marketplace.visualstudio.com/items?itemName=nrwl.angular-console\n\n### Local Observability\n\nFor local development, you can run a Grafana observability stack to view Faro telemetry data (logs, traces, Web Vitals):\n\n```shell\n$ npm run start-local-with-observability\n```\n\nThis starts both the observability stack and the app. Access Grafana at [http://localhost:3001](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`\n\nFor detailed configuration and troubleshooting, see the inline documentation in `docker-compose.observability.yml` and `apps/dsp-app/src/config/config.dev.json`.\n\n## CI/CD Workflows\n\nThe project uses GitHub Actions with three focused workflows:\n\n- **CI** (`.github/workflows/ci.yml`) - Runs on all pushes (including PR branches): linting, unit tests, E2E tests, OpenAPI validation, docs build\n- **Deploy** (`.github/workflows/deploy.yml`) - Runs after CI passes on main or on tag pushes: Docker image publish, DEV deployment trigger, release notifications\n- **Release** (`.github/workflows/release.yml`) - Automated release management with release-please on main branch\n\nAll workflows use `npm ci` with caching for fast, deterministic builds and include memory optimizations to prevent CI failures.\n\n## Further Documentation\n\n### Developer docs\n\n➡ [for developers](https://docs.dasch.swiss/latest/DSP-APP/contribution)\n\n## Contribution\n\nIf you would like to contribute to the development of the DSP-APP alongside us,\nplease follow the [general DSP contribution guidelines](https://docs.dasch.swiss/latest/developers/contribution/).\n\n### Documentation\n\nWe built the developer documentation with [MkDocs](https://www.mkdocs.org/).\nMore information can be found in the specific [README](https://github.com/dasch-swiss/dsp-das/blob/main/docs/contribution/docs-documentation.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdasch-swiss%2Fdsp-das","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdasch-swiss%2Fdsp-das","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdasch-swiss%2Fdsp-das/lists"}