https://github.com/brain-development-and-disorders-lab/mars

Metadatify is an open-source web-based tool to create, manage, and search scientific metadata.

https://github.com/brain-development-and-disorders-lab/mars

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization brain-development-and-disorders-lab has institutional domain (sites.wustl.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.2%) to scientific vocabulary

Keywords

fair-data metadata science
Last synced: 5 months ago · JSON representation

Repository

Metadatify is an open-source web-based tool to create, manage, and search scientific metadata.

Basic Info
  • Host: GitHub
  • Owner: Brain-Development-and-Disorders-Lab
  • License: other
  • Language: TypeScript
  • Default Branch: main
  • Homepage: https://metadatify.com/
  • Size: 7.75 MB
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Topics
fair-data metadata science
Created almost 4 years ago · Last pushed 7 months ago
Metadata Files
Readme License

README.md

Metadatify 🧪

Metadatify, or the Metadata Aggregation for Reproducible Science (MARS) project, is an open-source web-based tool to create, manage, and search scientific metadata.

DOI GitHub Repo stars

Poster

Dashboard

Features

  • Rich metadata entry and management, including support for file imports (CSV, JSON files)
  • Export partial or complete metadata into multiple different file types (CSV, JSON files)
  • Text-based search and advanced query system for searching deeply through metadata
  • Manage metadata across projects and share with external users using Workspaces
  • Establish relationships between metadata entries, visualize these relationships
  • Edit history and version restore for metadata entries
  • User accounts handled via ORCiD sign-in

Documentation

The wiki is actively maintained that covers the concepts introduced by Metadatify and how to use the platform. Documentation for API usage and self-hosting is coming soon.

Development

Install dependencies

  1. Install dependencies for the overall project by running yarn in the root directory of the repository. These dependencies are required to run husky and setup the pre-commit hooks that run prettier prior to any git commits.
  2. Install dependencies for the client by running yarn in the /client directory of the repository.
  3. Install dependencies for the server by running yarn in the /server directory of the repository.

Setup environment variables

Metadatify uses Docker to containerize the server components. Before starting the Docker containers, three environment variables must be configured in an .env file that should be placed in the /server directory.

The .env file must have the following variables:

  • CONNECTION_STRING: The local MongoDB database connection string, update the username and password.
  • GRAPHQL_PORT: The port value for the GraphQL endpoint
  • NODE_ENV: Specify the Node environment

The following variables are only required if deploying with ORCiD authentication, see ORCiD Developer Tools:

  • CLIENT_ID: Client application ID
  • CLIENT_SECRET: Client application secret

An example .env file is shown below:

```Text

Database variables

CONNECTIONSTRING=mongodb://:@localhost:27017/ GRAPHQLPORT=8000

Node environment

NODE_ENV=development

ORCiD ID API variables

CLIENTID= CLIENTSECRET= ```

Starting Docker containers

To start a fresh instance of the MongoDB database, use docker compose:

Bash docker compose up --build

This command will build all required containers before starting the containers required by the server. The MongoDB database can be browsed using the mongo-express interface accessible at localhost:8081.

Running Metadatify client and server

To start the client, run yarn start in the /client directory. Start the server by running yarn build and then yarn start in the /server directory. Both the client and server should be running alongside the Docker containers before attempting to access the interface at localhost:8080.

Testing

Metadatify includes Cypress tests and component tests for the client, and the server includes unit tests using Jest.

Testing - Client

To run component tests, run yarn test:components in the /client directory.

Cypress is used for testing the client UI. Before running client tests, add an .env file in the /client directory with the following variables:

  • CONNECTION_STRING: The local MongoDB database connection string, update the username and password.

An example .env file is shown below:

```Text

Database variables

CONNECTION_STRING=mongodb://:@localhost:27017/ ```

Once the .env file has been configured, run yarn test:ui in the /client directory to run all Cypress tests in headless mode.

To run component tests, run yarn test in the /client directory. To run Cypress tests, run yarn cypress run in the root / directory of the repository. Ensure the server is running, otherwise the Cypress tests will fail.

Testing - Server

[!WARNING] Testing the server will erase the local MongoDB database!

To run unit tests, run yarn test in the /server directory.

Acknowledgements

Organizations:

  • Department of Neuroscience, Washington University School of Medicine in St. Louis
  • Brain Development and Disorders Lab, Washington University School of Medicine in St. Louis
  • Scientific Software Engineering Center, Georgia Institute of Technology

Contributors:

  • Henry Burgess
  • Robin Fievet

License:

See the LICENSE file for license details.

Owner

  • Name: Brain Development and Disorders Lab
  • Login: Brain-Development-and-Disorders-Lab
  • Kind: organization
  • Email: corpuscallosumresearch@wustl.edu
  • Location: United States of America

Brain Development and Disorders Lab at Washington University School of Medicine, Department of Neuroscience, St. Louis MO

GitHub Events

Total
  • Release event: 1
  • Delete event: 44
  • Push event: 270
  • Pull request review event: 3
  • Gollum event: 20
  • Pull request event: 76
  • Create event: 44
Last Year
  • Release event: 1
  • Delete event: 44
  • Push event: 270
  • Pull request review event: 3
  • Gollum event: 20
  • Pull request event: 76
  • Create event: 44

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 21
  • Average time to close issues: N/A
  • Average time to close pull requests: about 4 hours
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 21
  • Average time to close issues: N/A
  • Average time to close pull requests: about 4 hours
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • henryjburg (2)
Pull Request Authors
  • henryjburg (88)
  • rfievet (23)
  • dependabot[bot] (14)
Top Labels
Issue Labels
Pull Request Labels
dependencies (14) bug (2)

Dependencies

client/package.json npm
  • @types/react ^18.0.5 development
  • @types/react-dom ^18.0.1 development
  • @typescript-eslint/eslint-plugin ^5.20.0 development
  • @typescript-eslint/parser ^5.20.0 development
  • css-loader ^6.7.1 development
  • eslint ^8.13.0 development
  • eslint-config-prettier ^8.5.0 development
  • html-webpack-plugin ^5.5.0 development
  • prettier 2.6.2 development
  • style-loader ^3.3.1 development
  • styled-components ^5.3.5 development
  • ts-loader ^9.2.8 development
  • typescript ^4.6.3 development
  • webpack ^5.72.0 development
  • webpack-cli ^4.9.2 development
  • webpack-dev-server ^4.8.1 development
  • @fontsource/roboto ^4.5.5
  • @types/react-router-dom ^5.3.3
  • consola ^2.15.3
  • grommet ^2.24.0
  • grommet-icons ^4.7.0
  • react ^18.0.0
  • react-dom ^18.0.0
  • react-flow-renderer ^10.3.17
  • react-router-dom ^6.3.0
client/yarn.lock npm
  • 520 dependencies
server/package.json npm
  • @types/cors ^2.8.12 development
  • @types/express ^4.17.13 development
  • @types/underscore ^1.11.4 development
  • @typescript-eslint/eslint-plugin ^5.20.0 development
  • @typescript-eslint/parser ^5.20.0 development
  • eslint ^8.13.0 development
  • eslint-config-prettier ^8.5.0 development
  • prettier 2.6.2 development
  • typescript ^4.6.3 development
  • chokidar ^3.5.3
  • consola ^2.15.3
  • cors ^2.8.5
  • dotenv ^16.0.1
  • express ^4.18.1
  • mongodb ^4.6.0
  • underscore ^1.13.6
server/yarn.lock npm
  • 219 dependencies
yarn.lock npm
  • 191 dependencies
docker-compose.yml docker
  • mongo latest
  • mongo-express latest
.github/workflows/deploy.yml actions
  • Azure/static-web-apps-deploy v1 composite
  • actions/checkout v2 composite
package.json npm
.github/workflows/build_and_test.yml actions
  • actions/checkout v3 composite
  • actions/setup-node v3 composite
  • actions/upload-artifact v3 composite
  • cypress-io/github-action v6 composite