/sugardough

A web application template based on Django.

Primary LanguagePythonApache License 2.0Apache-2.0

Sugardough

Sugardough is a web application template based on Django. Sugardough is build using Cookiecutter.

Features:

Requirements Status Build Status Coverage status

Create a sugardough project

  1. Get cookiecutter:

    $ pip install cookiecutter
  2. Run cookiecutter with sugardough template

    $ cookiecutter https://github.com/mozilla/sugardough
  3. Done!

Contribute to sugardough

To contribute to sugardough development:

  1. Clone this repository

  2. Create a virtualenv.

  3. Install development requirements using pip:

    $ pip install -r requirements.txt
  4. Update the template directory, and cookiecutter.json as well with new variables if needed.

  5. Run the regeneration script that auto-creates a test site:

    $ ./bin/regenerate.py
  6. Launch the test site to see your changes:

    $ cd test_project/sugardough
    $ docker-compose up
  7. Git commit changes.

  8. 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"

Opinions

  • 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 about psycopg2 then use peep to add the version of MySQL-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 and pytest-django. For test coverage you'll also have to add pytest-cov. Next you'll need to edit the .travis.yml file and edit the script part. Instead of coverage run manage.py test it py.test --cov=sugardough.

  • Dockerfile uses Python 3. If you want Python 2 change line 'FROM python:3-slim' to 'FROM python:2-slim'

License

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.