disscover
Search, discover and act upon data within the DiSSCo digital infrastructure.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.9%) to scientific vocabulary
Keywords
Repository
Search, discover and act upon data within the DiSSCo digital infrastructure.
Basic Info
- Host: GitHub
- Owner: DiSSCo
- License: apache-2.0
- Language: TypeScript
- Default Branch: main
- Homepage: https://disscover.dissco.eu/
- Size: 111 MB
Statistics
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 9
- Releases: 1
Topics
Metadata Files
README.md
DiSSCover
Search, discover and act upon data within the DiSSCo digital infrastructure.
Adheres to the Apache version 2.0 license.
About this application
DiSSCover is a service provided by the Distributed System of Scientific Collections (DiSSCo) to interact with its digital infrastructure. The name, not only derived from DiSSCo, but also from the verb ‘to discover’, relates to the main purpose of the portal: to search and explore the data within the digital infrastructure. The core data that can be explored consists of specimens, with additional data like different types of media, attached to it. To emphasize the difference between DiSSCover and other discovery portals like GBIF, it is important to recognize a key part of the application: acting upon the data. Users are able to act upon records like specimens, to improve the data quality. Quality marks or other kinds of suggestions can be annotated on a specimen. When accepted, these annotations can become part of the specimen object itself, making it richer in data quality. With the combination of data discovery and enrichment, DiSSCover sets sail for a world where all kinds of users are able to work together on improving the online bio- and geodiversity.
Technical specs
DiSSCover is built using the React framework as the core foundation (bootstrapped with VITE). A bunch of packages are applied to complete the boilerplate using NPM. Some noteworthy packages:
- Bootstrap 5, CSS grid, modals and styling
- SCSS modules, import styles with prefixes
- React Router (DOM), for managing routing
- Formik, building and managing forms
- React table (TanStack), building tables
- Redux, for keeping track of the universal state
- JSON path, for handling JSON paths
- I18n, for translating to other languages
- Axios, for handling fetch requests
Most of the core files are written in TypeScript, the type strict variant of JavaScript, using the arrow functional approach. As the application is dependent on the DiSSCo API, it uses asynchronous functions to dynamicly load content. General responses from the API are saved within the Redux state to preserve them and prevent multiple API calls. The Redux state also makes it easy for unlinked components to use these data.
Languages used:
- TypeScript (JavaScript with strict typing)
- TSX (JSX/HTML)
- SCSS (CSS)
The application makes use of different source materials to for example: map data from API responses or to show static data properties (as options). Data kind of source files are written in JSON (as are all API responses). Media source files can reach from images, to audio, video and IIIF formats.
Tests make use of the React Testing library, as well as JEST, and are run with VITEST.
Running DiSSCover locally
Running a local test version of DiSSCover requires a view steps:
- Clone the repository to your local machine by:
- Using the clone command in your terminal
- Using Github Desktop to add the repository
- Make sure you have NPM installed
- The Node Package Manager is a helpful tool for managing JavaScript based applications. It keeps track of state of our application and the required dependencies.
- Add a proxy in package.json that points to the DiSSCo API
- The proxy is needed to evade CORS errors. Because our local environment is not recognized by the CORS protocol of the DiSSCo API as a valid origin, it will reject all fetch requests.
- The proxy is configured in the vite.config.ts file and can be configured by adding this piece of code:
server: { port: 3000, proxy: { '^/api/.*': 'https://dev.dissco.tech' } }
- Open the terminal and navigate into the root folder of the project.
- Finally, run 'npm start' to boot the application. This will open a new tab in your browser and display the application.
Deploying with Docker
DiSSCover comes with a Docker image which can be deployed using Docker. The Docker image will first build the optimized deployment version of the application, where after it is exposed on port 3000 by NGINX. DiSSCo houses the Docker image in a Kubernetes cluster. The latest version of the Docker image can also be found in this reposotory: https://gallery.ecr.aws/dissco/disscover.
Mind that when you deploy the Docker image locally, it will not be able to fetch the data from the API due to CORS. Because it is a deployment version of React, it will not accept proxies within the package.json file to solve this problem.
Commands
All available commands that can be run from root:
npm start
To start the application.
npm build
Builds a production version of the application for deployment. Optimizes all files into compressed JavaScript and CSS files that are parsed by the interpreter.
npm test
To run the tests. The terminal will show how many tests passed and which failed.
npm test:coverage
To run the tests and receive a coverage report. The coverage report indicates the amount of code lines that are covered by the tests.
Feedback and support
DiSSCo is very open to receive feedback on its services. Please insert a ticket in the Github repository of DiSSCover to address your feedback.
DiSSCo lends support for its services. Please insert a ticket in the Github repository of DiSSCover to raise an issue and ask for support.
Owner
- Name: DiSSCo
- Login: DiSSCo
- Kind: organization
- Email: info@dissco.eu
- Location: Europe
- Website: dissco.eu
- Twitter: disscoeu
- Repositories: 35
- Profile: https://github.com/DiSSCo
Distributed System of Scientific Collections - pan-European Research Infrastructure. Updates on DiSSCo and natural science collections
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: DiSSCover
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Sam
orcid: 'https://orcid.org/0000-0002-5669-2769'
family-names: Leeflang
- {}
- given-names: Tom
family-names: Dijkema
- given-names: Soulaine
family-names: Theocharides
orcid: 'https://orcid.org/0000-0001-7573-4330'
GitHub Events
Total
- Create event: 118
- Release event: 1
- Issues event: 6
- Delete event: 34
- Member event: 1
- Issue comment event: 189
- Push event: 176
- Pull request review comment event: 73
- Pull request event: 102
- Pull request review event: 118
Last Year
- Create event: 118
- Release event: 1
- Issues event: 6
- Delete event: 34
- Member event: 1
- Issue comment event: 189
- Push event: 176
- Pull request review comment event: 73
- Pull request event: 102
- Pull request review event: 118
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 7
- Total pull requests: 81
- Average time to close issues: about 16 hours
- Average time to close pull requests: 2 days
- Total issue authors: 5
- Total pull request authors: 4
- Average comments per issue: 0.29
- Average comments per pull request: 0.85
- Merged pull requests: 60
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 3
- Pull requests: 66
- Average time to close issues: about 10 hours
- Average time to close pull requests: 2 days
- Issue authors: 3
- Pull request authors: 4
- Average comments per issue: 0.33
- Average comments per pull request: 0.88
- Merged pull requests: 50
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- TomDijkema (3)
- rwalcott20 (1)
- trendspotter (1)
- debpaul (1)
- awebertwente (1)
Pull Request Authors
- TomDijkema (61)
- MelanieTheLion (15)
- southeo (4)
- samleeflang (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- 1172 dependencies
- @testing-library/jest-dom ^5.16.4
- @testing-library/react ^13.2.0
- @testing-library/user-event ^13.5.0
- bootstrap ^5.1.3
- bootstrap-css ^4.0.0-alpha.5
- react ^18.1.0
- react-bootstrap ^2.4.0
- react-dom ^18.1.0
- react-scripts 5.0.1
- web-vitals ^2.1.4
- SonarSource/sonarcloud-github-action master composite
- actions/checkout v2 composite
- anothrNick/github-tag-action 1.36.0 composite
- docker/build-push-action v3 composite
- docker/login-action v1 composite
- docker/metadata-action v4 composite