Concepts & Theory¶
The Systems pages explain what each app does. This section explains the cross-cutting theory and patterns that recur across the whole codebase — the things you need to internalize to make changes that fit Midsummer’s design.
Concepts
The big ideas at a glance¶
Schema-based multi-tenancy — one database, one schema per tenant org, a
publicschema for shared data. No separate deployments.Request resolution — the three custom middleware classes that turn a hostname into
(tenant, event, schema, URLconf), plus the sanitized?next=login-redirect handling.The custom form system — the JSON-schema form builder that powers registration, vendor, schedule, and shop forms. The signature opinionated subsystem of Midsummer.
Permissions — per-app Django permissions + event admin roles, resolved through
check_permission(...), with a permissive leadership/department model.Payments — Stripe for everything; products/prices auto-managed in model
save()overrides; webhook confirmation.Audit logging & the snapshot pattern — append-only log models and the “admin tools mutate the snapshot” principle.
Real-time (WebSockets) — Django Channels over Hypercorn for jury voting and staff ping.
Tip
These pages are the synthesis of the authoritative memory-bank deep-dive docs
(architecture, data-models, backend-api, frontend-structure) that live in
documentation/. When you need the exhaustive detail, follow the links from the
Reference section.