ManagePro Module Reference
An architectural overview of every module in ManagePro — what it does, how it's built, and the shape of its data. This is a high-level companion for engineers evaluating or integrating with the platform; it intentionally omits implementation detail that would narrow attack surface.
Cross-Cutting Systems
Auth & Capabilities cross-cutting
Every workspace API route is gated by a single authorization chokepoint that resolves whether the caller can perform a given action on a given account.
How it works
- Capability resolution is layered: platform administrators have full access; account members get built-in role capabilities; accounts can also define custom roles with their own capability grants.
- The same authorization path serves both the web app (cookie session) and the mobile app (bearer token) — one code path, two client types.
- Row-level security in the database enforces tenant isolation independently of the application layer, so access is checked twice: once in the API, once in Postgres.
Data model
| capabilities | Master list of grantable actions. |
| account_role_capabilities | Built-in role → capability grants, per account. |
| custom_roles | Account-defined roles and their grants. |
| account_users | Membership + role per account. |
Forms Engine cross-cutting
A generic templated-forms framework. Move requests, service requests, gate passes, and compliance records all sit on the same submission/comment/tag pattern rather than bespoke tables per feature.
How it works
- Administrators design a form template with configurable fields, grouped into categories; each template carries a prefix used to mint a human-readable reference number.
- Submissions carry attachments, threaded comments, tags, and per-user read state, so unread counts and notification fan-out work without polling.
Data model
| form_templates / form_fields / form_categories | Template design. |
| form_submissions | One row per filled-in form. |
| form_submission_comments | Threaded discussion on a submission. |
| submission_media / submission_tags | Attachments and labels. |
Notifications & Email cross-cutting
One system spans in-app notifications, push, and email digests/preferences across both mobile and web clients.
How it works
- Mobile push and web push share a common notification fan-out path through an edge function layer.
- A scheduled job batches and sends digest emails; per-user preferences suppress channels the user doesn't want.
Data model
| notifications | In-app notification feed. |
| notification_email_preferences | Per-user delivery preferences. |
| push_tokens | Device registry for push delivery. |
Audit Trail cross-cutting
Two layers of append-only history: per-account activity, and a platform-wide administrative trail.
How it works
- Privilege changes, tenancy events, and meter readings are append-only by design — history tables are never updated or deleted in place, only appended to.
Data model
| audit_log | Per-account activity trail (workspace side). |
| audit_logs | Platform-wide administrative audit trail. |
QR / Verification cross-cutting
Shared QR generation and scan-verification infrastructure used by gate passes, permits, and licenses.
Data model
| qr_codes | Generated codes bound to a source record. |
| scan_logs | Scan events, used for guard-side verification and audit. |
Reference Numbers cross-cutting
Every gate pass, move request, and service request has one operator-facing reference label, generated from the owning form template's configured prefix — distinct from the internal auto-increment id.
Data model
| module_series_counters | Per-template counters that mint reference numbers. |
Client Workspace
Properties & Tenancies workspace
Unit/property inventory and the tenancy records that link a household to a unit over time.
Data model
| properties | Unit inventory and categorization. |
| tenancies | Household-to-unit assignment over time. |
| account_tenant_households | Household composition. |
Move Requests workspace
Move-in / move-out workflow: request → inspector assignment → checklist → photo evidence → approval, built on the forms engine pattern.
Data model
| move_requests | Core request row. |
| move_request_checklist_items / _photos | Inspection checklist and photo evidence. |
| move_request_comments | Discussion thread on the request. |
Gate Passes / Permits / Licenses workspace
Visitor and vehicle pass issuance with QR verification at the gate. Permits and licenses reuse the same underlying engine with a different template.
Data model
| gate_passes | Core pass row. |
| gate_pass_qr_codes / _verifications | QR issuance and guard-side scan verification. |
Service Requests workspace
Maintenance and support ticketing for tenants, with staff assignment and threaded comments.
Data model
| service_requests | Core ticket row. |
| service_request_comments / _photos | Thread and photo attachments. |
| request_assignees | Staff assigned to resolve. |
Forms & Submissions workspace
The tenant-facing surface of the Forms Engine (above) — configurable request types beyond the built-in modules.
Calendar workspace
Shared events with per-role/per-user visibility and notification opt-in.
Data model
| calendar_events | Core event row. |
| calendar_event_reminders | Scheduled reminders. |
Memos & Announcements workspace
Two related but distinct broadcast channels: memos are internal, tracked read-receipt bulletins; announcements are lighter-weight public/tenant bulletins.
Data model
| memos | Memo content. |
| memo_read_receipts | Per-user read tracking. |
Emergency workspace
Emergency contacts, fire/response brigade duty schedules, and disaster alert broadcast.
Data model
| emergency_contacts | Directory of emergency contacts. |
| emergency_alerts | Broadcast alerts. |
Utilities & Billing workspace
Meter reading capture, per-account utility type configuration, and billing rate tables used to compute tenant charges. Readings are append-only.
Data model
| utility_meters / utility_readings | Meter inventory and append-only readings. |
| utility_billing_rates | Rate tables. |
Messaging workspace
Channel, direct-message, and tenant-to-staff messaging, isolated in its own schema.
Data model
| messaging.channels / channel_members | Group channels and membership. |
| messaging.direct_messages | 1:1 messaging. |
| messaging.tenant_messages | Tenant-to-staff messaging. |
Compliances workspace
Tracks compliance records (permits, certifications, regulatory deadlines) per account/tenant, built on the forms/submission pattern.
Reports & Imports workspace
Cross-module reporting/export, and bulk data import for onboarding an account's existing records.
Data model
| import_jobs | Bulk import job status/results. |
Users & Roles workspace
Account membership management and custom role authoring — the admin-facing side of the Auth & Capabilities system above.
Account Settings workspace
Account-level configuration: branding, security policy, tenant-profile-field design, and which modules are enabled for the account.
Platform Admin / Backoffice
Accounts admin
Create and manage customer workspaces: which modules are enabled, branding, subscription tier.
Data model
| accounts | One row per customer workspace. |
| account_modules | Which modules a given account has enabled. |
Billing admin
Platform-level plans, subscriptions, and invoicing — distinct from the workspace's tenant utility billing.
Data model
| billing_plans / account_subscriptions | Plan catalog and account assignment. |
| invoices | Generated invoices. |
Support & Tickets admin
Platform support ticket queue for account admins to escalate to ManagePro staff — distinct from workspace service requests.
Ops & Diagnostics admin
Error monitoring, analytics, live session tracking, storage health, and email delivery diagnostics — the operational cockpit for the platform team.
Impersonation admin
Time-limited "log in as this user" tooling for customer support, restricted to platform administrators.
Changelog Authoring admin
Content management for the product changelog feed shown to workspace users.