https://github.com/brain-development-and-disorders-lab/mars
Metadatify is an open-source web-based tool to create, manage, and search scientific metadata.
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
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
Metadata Files
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.


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
- Install dependencies for the overall project by running
yarnin the root directory of the repository. These dependencies are required to runhuskyand setup the pre-commit hooks that runprettierprior to any git commits. - Install dependencies for the client by running
yarnin the/clientdirectory of the repository. - Install dependencies for the server by running
yarnin the/serverdirectory 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 endpointNODE_ENV: Specify the Node environment
The following variables are only required if deploying with ORCiD authentication, see ORCiD Developer Tools:
CLIENT_ID: Client application IDCLIENT_SECRET: Client application secret
An example .env file is shown below:
```Text
Database variables
CONNECTIONSTRING=mongodb://
Node environment
NODE_ENV=development
ORCiD ID API variables
CLIENTID=
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://
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
- Website: https://sites.wustl.edu/richardslab
- Twitter: ccd_research
- Repositories: 3
- Profile: https://github.com/Brain-Development-and-Disorders-Lab
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
- @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
- 520 dependencies
- @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
- 219 dependencies
- 191 dependencies
- mongo latest
- mongo-express latest
- Azure/static-web-apps-deploy v1 composite
- actions/checkout v2 composite
- actions/checkout v3 composite
- actions/setup-node v3 composite
- actions/upload-artifact v3 composite
- cypress-io/github-action v6 composite