Food Labels for Science
This repository contains the (open-source) code base of Curate Science, a web platform that provides food labels for scientific articles. Science requires transparency, however, no platform currently exists to ensure that published scientific articles comply with the relevant transparency standards. Curate Science aims to solve this problem by allowing researchers to label, link, and organize the transparency and replications of published findings.
We are developing harmonized “suites” of transparency (and replication) standards for different kinds of empirical research (akin to the harmonization of communication standards (e.g., TCP/IP) in the 1970s, which paved the way for the Internet). This has immense potential to accelerate scientific progress by revolutionizing the conduct and validity of meta-analyses, but also by expediting institutional reforms for various research stakeholders. For example, it will allow journals, universities, and funders ensure that their articles, employees, and grantees, respectively, comply with the appropriate transparency standards. Curate Science is part of an ambitious future vision that seeks to transform how science is organized and communicated (for full details of our approach, see our white paper).
Curate Science is a web application written in Python 3 using the Django framework 2.1. with PostgreSQL 9.6, running on Google App Engine. The master branch is continuously deployed to production with Travis CI. The application features a REST API for interacting with the curated data programmatically.
- Entity models are in
- REST API view controllers use Django REST Framework and are in
- REST API model serializers are in
- HTML view controllers are in
- HTML templates use the Django template engine and are in
- URL routes are in
- JS, CSS, and image files go in
- Application configurations are in
To set up the app locally:
- Clone this repository
- Install Python >= 3.6
- Install PostgreSQL >= 9.4 (command may be sql or psql depending on install method)
- Create a .env file and set the environment variables
CREATE DATABASE curate; CREATE USER [DB_USER] WITH PASSWORD '[DB_PASS]'; GRANT ALL PRIVILEGES ON DATABASE curate TO [DB_USER]; ALTER USER [DB_USER] CREATEDB;
pip install -r requirements.txt python manage.py migrate python manage.py runserver_plus
python manage.py test