- Latest Django
- Python 3
- Heroku deployment-ready
- Redis and Django-RQ for asynchronous tasks
- Sentry for exception tracking
- Sendgrid for email sending
- Automated testing configured
- Login/logout/reset password/forgot password API endpoints
- Django Suit theme for the Django Admin
- Vanilla signup/login/forgot password/reset password
- Makefile for tests and deployment
- How to deploy to Heroku
- Development process
- Project structure - where to add new apps
- Clone this repo:
git clone [email protected]:simplefractal/fractal-django-genie.git
; - Create a new repo on GitHub, change the local git origin to point to the new repo and the push.
- Inside this new repo, erase this README so it will lose this current text;
- Create a virtualenv for Python 3.5:
mkvirtualenv {{ VIRTUAL_ENV_NAME }} -p /usr/bin/python3.5
; - Copy default postactivate:
cp contrib/proj_postactivate $VIRTUAL_ENV/bin/postactivate
; - Edit
$VIRTUAL_ENV/bin/postactivate
for you custom env config (e.g. update DATABASE_URL) and re-run theworkon
command; - Install the packages:
pip install -r dev-requirements.txt
; - Create postgres db:
createdb {{ DATABASE_NAME }}
; - Install redis (click here if you're using Ubuntu)
- Migrations:
python manage.py migrate
- Create admin user:
python manage.py createsuperuser
- Runserver:
python manage.py runserver
Run django-rq for email sending: python manage.py rqworker high low default
From inside the project
directory, run pytest
.
You can also create a .env
file inside of config
similar to .env-example
- Create feature branch off of
dev
with thefeature
prefix such asfeature/sso-login
- Develop and commit in this branch
- Make sure tests are passing with
pytest
command from theproject
directory - When finished, open a pull request
- When reviewed and updated, merge into
dev
with the following commands or just use the Github merge button and remember deleting the remote branch:
$ git checkout dev
$ git merge --no-ff feature/sso-login
$ git push origin dev
$ git push origin :feature/sso-login # deletes remote branch