Files
..
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 19:09:38 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30
2026-05-18 11:34:07 +03:30

Backend

Stack

  • Django 5+ with Ninja API routers, JWT auth, and Ninja schemas.
  • PostgreSQL + Redis + Celery + Gunicorn orchestrated via Docker Compose.
  • Traefik handles TLS termination and routing to /api, /admin, /static, /media.
  • Metrics exporters (Prometheus, node exporter, PostgreSQL exporter) are wired in docker-compose.yml.

Key apps

App Responsibilities
users Custom User model, email verification, password resets, soft deletes.
blog Posts, comments, categories/tags, likes, admin delete/restore operations.
events Events, registrations, invitations, registration emails, Celery tasks.
payments Discount codes, payment tracking linked to registrations.

API highlights

  • Authentication (/api/auth/*): register, login, refresh, profile, delete profile picture, deleted users, filtered user lists.
  • Blog (/api/blog/*): posts/comments, soft delete/restore, likes, categories/tags APIs.
  • Events (/api/events/*): list, detail, create/update/delete, admin endpoints for event/registration detail and paginated/filterable registrations.
  • Payments (/api/payments/*): create payment, get by ref, discounts.

Running locally

docker compose build backend
docker compose run --rm backend python manage.py migrate

Tests

docker compose run --rm backend python manage.py test --settings=config.settings.test

Admin tooling

  • Ninja routers live under backend/api/views. Schemas are in backend/api/schemas.
  • JWT auth files: backend/api/authentication.py.
  • Celery configs in backend/config/services/celery.py and tasks (events, users, communications).