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-devin Debian/Ubuntu orbrew install libffiin OSX) - libpq (
apt-get install libpqin Debian/Ubuntu orbrew install libpqin OSX) - postgres (
apt-get install libpq-dev python3-devandapt-get install postgresql postgresql-contribin Debian/Ubuntu) - memcached (
apt-get install memcached libmemcached-devorbrew 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
.bashrcas 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.6pip3 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 gulpnpm 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