MatD^3^

MatD^3^: A Database and Online Presentation Package for Research Data Supporting Materials Discovery, Design, and Dissemination - Published in JOSS (2020)

https://github.com/hybrid3-database/matd3

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

gravitational-lensing mesh simulations exoplanet galaxy pde

Scientific Fields

Computer Science Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation

Repository

Curatable database for experimental and theoretical data on solid materials.

Basic Info
Statistics
  • Stars: 13
  • Watchers: 1
  • Forks: 4
  • Open Issues: 8
  • Releases: 4
Created over 6 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog License

Readme.md

DOI

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
Published
January 16, 2020
Volume 5, Issue 45, Page 1945
Authors
Raul Laasner ORCID
Department of Mechanical Engineering and Materials Science, Duke University
Xiaochen Du
Department of Chemistry, Duke University, Department of Computer Science, Duke University
Aditya Tanikanti
Pritzker School of Molecular Engineering, University of Chicago
Connor Clayton
Carnegie Mellon University
Marco Govoni ORCID
Pritzker School of Molecular Engineering, University of Chicago, Materials Science Division and Center for Molecular Engineering, Argonne National Laboratory
Giulia Galli
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
Matti Ropo
Department of Physics, University of Turku
Volker Blum
Department of Mechanical Engineering and Materials Science, Duke University, Department of Chemistry, Duke University
Editor
Mark A. Jensen ORCID
Tags
Django materials perovskite database

GitHub 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

All Time
  • Total Commits: 607
  • Total Committers: 18
  • Avg Commits per committer: 33.722
  • Development Distribution Score (DDS): 0.418
Past Year
  • Commits: 52
  • Committers: 3
  • Avg Commits per committer: 17.333
  • Development Distribution Score (DDS): 0.058
Top Committers
Name Email 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
enhancement (1)
Pull Request Labels
dependencies (19) bug (1)

Dependencies

requirements.txt pypi
  • 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 *
.github/workflows/main.yml actions
  • actions/checkout v1 composite
  • actions/setup-python v1 composite
Dockerfile docker
  • python 3.7 build