Skip to content

General Architecture¤

FireFighter is built with Django 4.2+, and Python 3.11+.

Apps¤

The project is built with multiple Django apps.

Custom apps¤

  • firefighter
    • Main project package. Has the health-check URL, DB/Redis connections, all the settings... No features/models.
  • incidents
    • App containing all the incidents models and features, as well as the views.
  • api
    • App containing all the views for the FireFighter API. Might be integrated in incidents.
  • slack
    • All Slack models and API.
    • As we are still coupled to Slack, this app unfortunately still a lot of business logic.
  • confluence
    • To read/write Confluence pages. Model for page.
  • pagerduty
    • Read PagerDuty on-call.
  • raid
    • Non-critical incident (defects) management with Jira.

confluence, pagerduty and api can be disabled in the settings. slack is not, as you would lose too much functionality.

Other apps¤

Core-Django¤

Dependencies¤

  • widget_tweaks to customize form fields in templates. Readme
  • rest_framework to provide REST API features. Extensive doc for Django Rest Framework.
  • django_filters to provide filtering on views or API endpoints. Docs.
  • django-taggit to provide a TagManager on Incidents.
  • celery to provide a task queue.

Other dependencies¤

  • whitenoise to serve assets in Python for production. Handles compression and caching headers. Docs.
    • Installed as a middleware.

Info

You can get documentation on Models, Views, Templates, etc. by visiting the back-office of your deployment as an admin and clicking "View documentation" in the toolbar.