Prerequisites & Dependencies#
Before you create any projects with this template#
Ensure that your git is properly setup with your username and email in order for the initial commit to have the correct log.
Project names must be composed of lowercase alphanumeric characters only, with no spaces or special characters.
Setting up for Installation#
Note
For Mac systems, there is an automatic installation script that handle dependencies for Hydra. Run the following commands to install via the script:
$ git clone https://github.com/Lightmatter/django-hydra.git
$ ./django-hydra/scripts/mac_intel_install.sh
It’s recommended that you read the output of this script to ensure everything went smoothly, particularly if you are using Apple silicone (Mac’s with M1 or M2 chips).
Prerequisites#
The following items are required in order for this template to work:
Project Dependencies#
Hydra
Python
Django: Django
whitenoise: Static file servering for python web apps
django-allauth: Set of Django applications to address account management and authentication, including 3rd party auth
django-htmx: Convenience methods for using HTMX with django, including CSRF token handling and partial rendering
django-annoying: Fixes for the annoying little things about Django
django-environ: Allows for the configuration of a Django application using environment variables
django-extensions: Extremely useful command extensions for debugging and development
django-model-utils: Additional Django model mixins and utilities
psycopg2-binary: PostgreSQL database adapter for python
boto3: AWS software development kit for python, allowing for use of S3 and EC2 technologies
django-storages: A collection of custom storage backends for Django (Digitial Ocean, Dropbox, etc)
uvicorn: ASGI web server implementation for python
gunicorn: Lightweight Python WSGI HTTP server for UNIX
sentry-sdk: Sentry integration for Django for automatic error/exception reporting
Pillow: Library for adding image processing capabilities to the Python interpreter
django-anymail: Extension for Django’s core mailing feature that allows sending and receiving from several popular email service providers
django-vite: Plugin for using Vite in the Django ecosystem. For a detailed explanation of how Vite builds the frontend, see the Compiling and Deplyment section
tblib: Serialization library for Exceptions and Tracebacks
django-cachalot: Cache management for Django ORM queries
redis: Used for caching and as a message broker
hiredis: C client library for Redis
django-redis: Redis cache backend for Django that provides convenience methods for managing redis
django-jinja: Jinja2 integration for Django
heroicons: SVG icons library
django-rich: Rich is a library for producing vibrant command line applications, Django-Rich is the connecting extension
Dev Dependencies#
Werkzeug: Simple WSGI server for local development, includes debugger, test client, and more
coverage: Utility for measuring code coverage testing
ipython: IPython or Interactive Python is a command shell for python projects
ipdb: Tool to export functions to the IPython debugger. See “debugging” section for more information on usage
ptpython: An improved python repl with support for syntax highlighting, autocomplete, support for color schemes and more
django-debug-toolbar: Configurable set of panels to display debugging information about the current request/response
model-bakery: Expedient tool for creating objects/fixtures for testing in Django
watchdog: Python API and shell utilities to monitor file system events.
honcho: Python port of Foreman, allows for a single command to launch Procfile based applications
unittest-xml-reporting: Unit test runner that saves results to XML files for use on IDE’s, continuous integration servers, etc
playwright: Browser automation for end-to-end testing
icecream: Robust alternative to print statements in python for debugging
pre-commit: framework for managing pre-commit hooks
pudb: Alternative debugger, also integrates with IPython to give a more “GUI-like” experience to the user
poetryup: Version control helper that reconciles the pyproject.toml file each time poetry update is run
importmagic: Automatic management of imports in Python
epc: Allows for interoperability between Emacs and Python functions
django-silk: Silk is a profiling and inspection tool for Django for HTTP requests and database queries