This repository contains the code for the Open Humans Website.
- python >=2.7.11
- pip
- virtualenv (
pip 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 python-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:
pip install virtualenvwrapper
- Follow setup instructions here (e.g. modify your
.bashrc
as needed): http://virtualenvwrapper.readthedocs.io/en/latest/install.html
Create a virtualenv:
mkvirtualenv open-humans
pip 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:
pip 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
- flake8
- pep256
- pylint
- eslint (
npm install -g eslint
)