Platform overview
The Municipality Management Platform is a multi-vertical system designed to help municipalities manage various aspects of public services through a unified, configurable platform.
Architecture
Multi-vertical design
The platform is built around independent verticals (modules) that can be enabled or disabled based on each municipality's needs:
| Vertical | Purpose | Target users |
|---|---|---|
| Occurrences | Citizen issue reporting and resolution | Citizens, Staff, Managers |
| Equipment | Municipal asset management | Staff, Equipment Managers |
| Occupancy | Public space monitoring | Public, Operators, Admins |
Shared infrastructure
All verticals share common infrastructure:
- Municipalities & Departments: Organizational structure
- User Management: Authentication, roles, permissions
- Dynamic Forms: Configurable intake forms
- Workflow Engine: Camunda/Zeebe integration (optional)
- Geographic Services: PostGIS for location-based features
Key features
For citizens and public
- Submit reports and requests
- Track status of submissions
- View public dashboards (occupancy)
- Receive notifications on updates
For municipal staff
- Unified backoffice interface (Django Admin + Unfold)
- Role-based access control
- Cross-vertical visibility (if permitted)
- Response templates and workflows
For administrators
- Module enablement/disablement
- Per-municipality configuration
- Feature flag management
- Dynamic form builder
Technology stack
| Layer | Technology |
|---|---|
| Backend | Django 5.x, Django REST Framework |
| Database | PostgreSQL with PostGIS |
| Frontend | Svelte 5 (citizen-facing), Unfold Admin (backoffice) |
| Caching | Redis |
| Task queue | Celery |
| Workflow | Camunda/Zeebe (optional) |
| Real-time | Django Channels (WebSocket) |
Deployment flexibility
The platform supports various deployment configurations:
Single-municipality
- One organization using selected verticals
- Simplified configuration
- Direct database access
Multi-municipality
- Multiple organizations on shared infrastructure
- Data isolation per municipality
- Centralized administration
Module selection
- Enable only needed verticals
- Reduce complexity and maintenance
- Add modules as needs evolve
Configuration hierarchy
Platform Settings (global)
└── Module Settings (per vertical)
└── Municipality Settings (per organization)
└── Department Settings (per team)
└── User Settings (per staff member)
Getting started
- Platform admin: Start with Reference → Feature flags to understand module options
- Municipality admin: Configure your organization in Platform Configuration → Municipalities
- Vertical setup: Follow the setup guides for each enabled vertical
- Staff onboarding: Use User types to understand role responsibilities
Documentation conventions
Throughout this documentation: - Grounded in code: Each page references actual implementation files - Role-focused: Sections organized by who does what - Practical: Emphasis on how-to over theory - Vertical-agnostic: Platform features documented once, vertical-specific features in their sections