MatD^3^
MatD^3^: A Database and Online Presentation Package for Research Data Supporting Materials Discovery, Design, and Dissemination - Published in JOSS (2020)
Science Score: 95.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 4 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
8 of 18 committers (44.4%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords from Contributors
Scientific Fields
Repository
Curatable database for experimental and theoretical data on solid materials.
Basic Info
- Host: GitHub
- Owner: HybriD3-database
- License: bsd-2-clause
- Language: JavaScript
- Default Branch: master
- Homepage: https://hybrid3-database.readthedocs.io/en/latest/
- Size: 8.5 MB
Statistics
- Stars: 13
- Watchers: 1
- Forks: 4
- Open Issues: 8
- Releases: 4
Metadata Files
Readme.md
MatD3 database software
MatD3 is a database and a web application for experimental and theoretical data on solid materials. The objective is to ensure better access and reproducibility of research data and it is intended to be used by any research group wishing to make their scientific results publicly available.
Installation
From source code
These instructions are for quickly setting up a local server on your personal computer. For setting up a real server, see the full documentation at https://hybrid3-database.readthedocs.io/en/latest/.
- Clone the project
git clone https://github.com/HybriD3-database/MatD3.git
cd MatD3
- In the root directory of the project, create a virtual Python environment
python3 -m venv venv
source venv/bin/activate
- Upgrade pip and install all the requirements
pip install --upgrade pip
pip install -vr requirements.txt
If you run into any issues, install the prerequisites as requested by the error messages. On Ubuntu, it might be necessary to install the following packages first:
sudo apt install libmysqlclient-dev
sudo apt install python3-dev
sudo apt install firefox-geckodriver
On a Mac, it might be necessary to run
brew install mariadb
brew install geckodriver
If there are issues with installing MySQL/MariaDB and you only plan to use SQLite, remove the line mysqlclient==1.4.2 from requirements.txt and proceed with the installation.
- Define your environment in .env in the root directory of the project
cp env.example .env
# edit .env
Importantly, the the access permissions for the .env file on the server MUST be set to
-r--r-----
i.e., owner- and group readable but NOT world readable (otherwise, the .env file will be downloadable by anyone along with the remainder of the database). Use the chmod command to set the permissions correctly.
If you wish to use anything other than the SQLite database, you first need to set up that database (e.g., MariaDB). See https://hybrid3-database.readthedocs.io/en/latest/development.html for more details.
- Initialize static files and perform database migrations
./manage.py collectstatic
./manage.py migrate
- Run tests
./manage.py test
Make sure the line
127.0.0.1 localhost
is in your /etc/hosts.
- Create a superuser
./manage.py createsuperuser
- If you want to customize the index page, make a copy of
home_default.html,
cp -v mainproject/templates/mainproject/home{_default,}.html
and edit accordingly. Any images that home.html refers to should be placed in mainproject/static/mainproject/images.
- Start the server
./manage.py runserver
- Open a web browser and go to http://127.0.0.1:8000/.
Using Docker
- Run the MatD3 Docker container in detached mode:
docker run -d --rm --name matd3 --env-file=env_file -p 80:80 matd3/matd3:1.0.0 python manage.py runserver 0.0.0.0:80
where env_file (rename if you like) contains the necessary enrironment variables. See here for example contents. You can view the website by opening 0.0.0.0 in a web browser. If you wish to run the container on a different port, replace 80 in the command with the number of that port.
- Initialize static files and perform database migrations
docker exec matd3 python manage.py collectstatic --noinput
docker exec matd3 python manage.py migrate
- Create super user
docker exec -it matd3 python manage.py createsuperuser
- You can stop the container with
docker container stop matd3
Usage
In order to enter data into the database, start by creating a new user (click on Register and follow instructions) or login as the superuser. Next, click on Add Data on the navigation bar in order to submit a data set into the database. Existing data can be viewed by using the Search function on the navigation bar.
JOSS Publication
MatD^3^: A Database and Online Presentation Package for Research Data Supporting Materials Discovery, Design, and Dissemination
Authors
Department of Chemistry, Duke University, Department of Computer Science, Duke University
Pritzker School of Molecular Engineering, University of Chicago
Carnegie Mellon University
Pritzker School of Molecular Engineering, University of Chicago, Materials Science Division and Center for Molecular Engineering, Argonne National Laboratory
Pritzker School of Molecular Engineering, University of Chicago, Materials Science Division and Center for Molecular Engineering, Argonne National Laboratory, Department of Chemistry, University of Chicago
Department of Physics, University of Turku
Department of Mechanical Engineering and Materials Science, Duke University, Department of Chemistry, Duke University
Tags
Django materials perovskite databaseGitHub Events
Total
- Release event: 1
- Push event: 22
- Pull request event: 29
- Create event: 15
Last Year
- Release event: 1
- Push event: 22
- Pull request event: 29
- Create event: 15
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Raul Laasner | r****r@g****m | 353 |
| Eisenl10 | e****0@m****u | 60 |
| Uthpala Herath | u****h@d****u | 49 |
| Xiaochen Du | x****u@d****u | 34 |
| cbc46 | c****o@L****n | 31 |
| Xiaochen Du | x****n@X****l | 21 |
| volkerblum | v****m@d****u | 16 |
| dependabot[bot] | 4****] | 16 |
| Connor Clayton | c****6@v****u | 8 |
| Jannik Eisenlohr | j****k@s****l | 7 |
| Xiaochen Du | x****4@v****u | 3 |
| Marco Govoni | 2****l | 2 |
| Reyna Vrbensky | r****5@d****u | 2 |
| Juanjo Bazán | j****n@g****m | 1 |
| Melosa Rao | m****o@d****u | 1 |
| malarkey2 | 1****2 | 1 |
| Xiaochen Du | x****n@X****e | 1 |
| rayanc72 | 6****2 | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 17
- Total pull requests: 51
- Average time to close issues: 7 days
- Average time to close pull requests: 3 days
- Total issue authors: 9
- Total pull request authors: 6
- Average comments per issue: 1.94
- Average comments per pull request: 0.08
- Merged pull requests: 47
- Bot issues: 0
- Bot pull requests: 19
Past Year
- Issues: 0
- Pull requests: 28
- Average time to close issues: N/A
- Average time to close pull requests: 2 minutes
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.04
- Merged pull requests: 28
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- volkerblum (5)
- dgasmith (3)
- reynavrb (2)
- andrewjlevin (1)
- xiaochendu (1)
- kellyyma (1)
- Eisenl10 (1)
- beccalau (1)
- rayanc72 (1)
Pull Request Authors
- uthpalaherath (51)
- dependabot[bot] (19)
- xiaochendu (1)
- xuanxu (1)
- raullaasner (1)
- mgovoni-devel (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- Django ==3.1.14
- Pillow ==9.0.0
- Sphinx ==2.2.0
- coverage ==4.5.3
- django-filter ==2.4.0
- django-nested-admin ==3.2.4
- djangorestframework ==3.12.2
- gunicorn ==19.9.0
- matplotlib ==3.0.2
- mysqlclient ==1.4.2
- numpy ==1.21.0
- python-dateutil ==2.8.0
- python-decouple ==3.1
- raven ==6.10.0
- requests ==2.22.0
- selenium ==3.141.0
- sentry-sdk ==0.7.3
- sphinx_rtd_theme *
- actions/checkout v1 composite
- actions/setup-python v1 composite
- python 3.7 build