Introduction
Django minimal cookie cutter is a template or starting point for creating a new Django project with a minimal set of features and components. This cookie cutter is designed for developers who want to start with a basic Django project structure and add their own custom features as needed.
Features
The following features are included in the Django-Minimal-CookieCutter:
Abstract Models: - TrackableModel: Includes fields for creation and modification timestamps, as well as created by and modified by fields. - Singleton: A model that only allows one instance to be created. - TimestampedModel: Includes fields for creation and modification timestamps.
Media files: - On development, media files are stored locally. - On production, media files are stored on AWS with CloudFront.
Two settings: - One for development. - One for production.
Coverage: - Code coverage is measured and reported.
Automation: - Tox is used to automate flake8, testing, and coverage reporting. - A Makefile is included to help set up Python and the project locally, including installing Redis and Postgres. - Circle CI configs is included for the default branch development that merges to the main branch. - Ansible is used to set up the project using Docker. - A custom error gives helpful JSON response when a 500 or 404 error occurs.
Django REST Framework. - API Redoc.
Django Celery, with Redis configured in the project.
Sphinx docs is installed and configured.
Database based logging: Logging is stored in the database.
The signal loader, so you don’t have to register your signals in the app file.
Email support with Celery background task.