Sugardough is a web application template based on Django. Sugardough is build using Cookiecutter.
Features:
- Django settings with environment variables, using Decouple
- Jinja2 template engine
- Whitenoise
- Docker ready, plus Docker Compose support.
- Sane Flake8 configuration.
- NewRelic ready.
- Travis-CI ready.
- Coveralls ready.
- Sphinx support and ReadTheDocs ready.
- peep ready.
-
Get cookiecutter:
$ pip install cookiecutter
-
Run cookiecutter with sugardough template
$ cookiecutter https://github.com/mozilla/sugardough
-
Done!
To contribute to sugardough development:
-
Clone this repository
-
Create a virtualenv.
-
Install development requirements using pip:
$ pip install -r requirements.txt
-
Update the template directory, and cookiecutter.json as well with new variables if needed.
-
Run the regeneration script that auto-creates a test site:
$ ./bin/regenerate.py
-
Launch the test site to see your changes:
$ cd test_project/sugardough $ docker-compose up
-
Git commit changes.
-
Pull request!
The regenerate.py
command can also watch for changes and auto-regenerate the
test project:
$ ./bin/regenerate.py --watch
If you want the test project to use a different value for a variable than the
default defined in cookiecutter.json
, add the value to your
~/.cookiecutterrc
file:
default_context:
project_name: "Foo Bar"
-
If you want to change the rules for PEP8, go and edit the
setup.cfg
file. -
If you want to use MySQL instead of PostgreSQL (which is default), edit the generated
requirements.txt
file and remove the lines aboutpsycopg2
then usepeep
to add the version ofMySQL-python
you want to use. You will also need to edit the.travis.yml
file accordingly. -
if you want to use pytest add in requirements.txt
pytest
,py
,cov-core
andpytest-django
. For test coverage you'll also have to addpytest-cov
. Next you'll need to edit the.travis.yml
file and edit the script part. Instead ofcoverage run manage.py test
itpy.test --cov=sugardough
. -
Dockerfile uses Python 3. If you want Python 2 change line 'FROM python:3-slim' to 'FROM python:2-slim'
Sugardough itself is licensed under the Apache 2 license. See the LICENSE file in this repository for the full text of the license. The website projects produced using sugardough use the Mozilla Public License version 2 by default.