This repository contains the code for the Open Humans Website.
- python >=3.6
- pip3
- virtualenv (
pip3 install virtualenv
) - nodejs 6.x
- npm 3.x
- libffi (
apt-get install libffi-dev
in Debian/Ubuntu orbrew install libffi
in OSX) - libpq (
apt-get install libpq
in Debian/Ubuntu orbrew install libpq
in OSX) - postgres (
apt-get install libpq-dev python3-dev
andapt-get install postgresql postgresql-contrib
in Debian/Ubuntu) - memcached (
apt-get install memcached libmemcached-dev
orbrew install memcached
) - ChromeDriver for Selenium tests
For the following commands, you'll also want to set up virtualenvwrapper:
pip3 install virtualenvwrapper
- Follow setup instructions here (e.g. modify your
.bashrc
as needed): http://virtualenvwrapper.readthedocs.io/en/latest/install.html
Create a virtualenv for Python 3.6, e.g.:
mkvirtualenv open-humans --python=/usr/bin/python3.6
pip3 install -r requirements.txt -r dev-requirements.txt
In the future, start the virtual environment with:
workon open-humans
And update it after pulling updated code by repeating:
pip3 install -r requirements.txt -r dev-requirements.txt
npm install -g gulp
npm install
Update after pulling updated code by repeating:
npm install
Running this site requires a PostgreSQL database (even for local development).
- In Debian/Ubuntu
- Become the postgres user:
sudo su - postgres
- Create a database (example name 'mydb'):
createdb mydb
- Create a user (example user 'jdoe'):
createuser -P jdoe
- Enter the password at prompt (example password: 'pa55wd')
- run PostgreSQL command line:
psql
- Give this user privileges on this database, e.g.:
GRANT ALL PRIVILEGES ON DATABASE mydb TO jdoe;
- Also allow this user to create new databases (needed for running tests),
e.g.:
ALTER USER jdoe CREATEDB;
- Quit:
\q
- Give this user privileges on this database, e.g.:
- Exit postgres user login:
exit
- Become the postgres user:
Use env.example
as a starting point. Copy this to .env
and modify with your
own settings.
Do this at the beginning, and update when pulling updated code by running:
./manage.py migrate
For additional setup information see docs/SETUP.md.
./manage.py runserver
You need to process static files before you can run tests.
./manage.py collectstatic
./manage.py test
Please use black
to format code prior to commits. Set up a
pre-commit hook by running the following:
pre-commit install