Request a Demo
Platform Infrastructure

Portal Framework

The citizen self-service portal, "My Dashboard", and service catalog presentation layer — every module that exposes citizen-facing services uses Portal Framework for a unified digital experience.

<2s

Page Load

WCAG AA

Accessibility

5,000

Concurrent Users

>90

Lighthouse Mobile

Purpose-Built for Canadian Municipalities

Ontario Compliant
MFIPPA Ready
AODA Accessible
Bilingual Support
Canadian Hosted
SOC 2 Aligned

How It Works

The identity journey, step by step

From first registration to golden record resolution — how a resident's identity evolves across the platform.

01

First-Time Portal Visit

A new resident discovers and uses the citizen portal for the first time.

How it works

The resident searches for their municipality online, lands on the portal (SEO-optimized with structured data), browses the service catalog, and finds 'Pay Property Tax'. They create a MyAccount using civic-identity, link their property by roll number and postal code, and see their tax balance on the dashboard. They make a payment through the embedded payment-engine flow and receive a confirmation.

Step 1 of 5

Purpose & Scope

What this module owns

Clear ownership boundaries prevent duplication and ensure every capability has exactly one authoritative home.

Owns

14

Delegated to

5

Citizen identity management

civic-identity

Form rendering and submission

forms-engine

Payment processing

payment-engine

Case tracking logic

case-management

Notification generation

notification-engine

These capabilities are handled by dedicated modules and consumed via stable API contracts — keeping boundaries clean and ownership unambiguous.

Core Capabilities

What it does

4 capability groups comprising 6 discrete capabilities — each with API surface, business rules, and data ownership.

A browseable, searchable catalog of all municipal services with personalized recommendations and seasonal highlights.

Service Directory

Browseable catalog of all municipal services grouped by category (e.g., Property & Tax, Water & Sewer, Recreation, Permits, Roads, etc.).

Search

Full-text search across services, forms, FAQs, and knowledge base.

Service Cards

Each service shows: name, description, estimated processing time, required documents, fees, eligibility, link to apply/request.

Popular Services

Algorithm-driven display of most-used services.

Personalized Recommendations

Based on citizen's property type, ward, history — suggest relevant services.

Seasonal Highlights

Promote seasonal services (e.g., pool registration in spring, tax due date reminders in June).

Real-World Scenarios

Who uses this, and how

4 persona-driven scenarios showing how Portal Framework works in practice — from resident registration to privacy compliance.

Property Owner

Multi-Property Account Management

A landlord with three rental properties needs to check balances, pay taxes, and track permits across all properties.

Steps

  1. 1Landlord logs into the portal and sees the property selector showing all three addresses
  2. 2Dashboard summary cards show aggregate balances: total tax owing, total utility owing
  3. 3They select the first property to view its detailed tax and utility accounts
  4. 4Pay the overdue utility bill with Apple Pay via portal PWA on their phone
  5. 5Switch to the second property and check the building permit inspection schedule
  6. 6View 'My Payments' for a consolidated payment history across all properties

Outcome

One login, three properties managed. The landlord saved trips to city hall and has a complete picture of all municipal obligations.

View scenario

Parent

Summer Recreation Registration Day

A parent needs to register two children for summer swimming lessons on opening day — a high-traffic event.

Steps

  1. 1Parent receives a push notification: 'Summer registration opens tomorrow at 7 AM'
  2. 2At 7 AM, they open the portal (PWA on their phone) — portal handles 5,000 concurrent users
  3. 3Search for 'swimming lessons' in the service catalog
  4. 4Select age-appropriate time slots for both children via the recreation module embedded in portal
  5. 5Pay registration fees for both in a single transaction via payment-engine
  6. 6Receive confirmation email and see registrations in 'My Dashboard > Recreation'

Outcome

Both children registered and paid in under 5 minutes. Portal performance holds under peak load. Parent can track schedules from their dashboard year-round.

View scenario

Accessibility User

Accessible Kiosk Experience

A visually impaired citizen visits city hall to pay their property tax using the accessible kiosk.

Steps

  1. 1Citizen approaches the kiosk with adjustable height (wheelchair accessible)
  2. 2Activates high-contrast mode and large font via the accessibility menu
  3. 3Uses screen reader to navigate: 'Pay a Bill' > 'Property Tax'
  4. 4Enters roll number using the accessible on-screen keyboard
  5. 5Reviews balance with large, high-contrast display
  6. 6Taps debit card; kiosk announces payment confirmation via screen reader and prints receipt

Outcome

Full independent transaction without staff assistance. AODA compliance ensures equal access for all citizens.

View scenario

Citizen

Emergency Portal Announcement

A water main break requires an urgent announcement to affected citizens.

Steps

  1. 1Municipal staff create a pinned banner announcement: 'Water main break on Oak Street — boil water advisory in effect'
  2. 2Portal displays the announcement prominently on all pages
  3. 3Push notifications sent to citizens in the affected ward via notification-engine
  4. 4Citizens open the portal and see the advisory on their dashboard
  5. 5Knowledge base article linked with details: affected area, timeline, bottled water distribution
  6. 6When resolved, the announcement is unpinned and an update notification sent

Outcome

Citizens informed within minutes via multiple channels. Portal serves as the authoritative source for emergency information with full bilingual content.

View scenario

Internal Architecture

How it's built

3 architectural layers comprising 18 components — from API gateway to data quality engine.

3 layers · 18 total components

Portal Framework

Every module owns a single bounded context, exposes stable APIs, and can be composed into any Civic product — that's the architecture that scales.

Krutik Parikh

Creator of Civic

Data Model

Entity Architecture

3 entities with 3 relationships — the authoritative schema for this bounded context.

Entities

Select an entity to explore its fields and relationships

API Surface

Integration Endpoints

12 RESTful endpoints across 3 resource groups — plus 4 domain events for async integration.

|
GET

/api/v1/portal/services

List all services (filtered by category)

GET

/api/v1/portal/services/search

Search services

GET

/api/v1/portal/services/{code}

Get service detail

GET

/api/v1/portal/services/recommended

Personalized recommendations

Technical Specifications

Performance, Compliance & Configuration

Availability

Target99.95%

Page Load

Target< 2 seconds for initial page; < 500ms for subsequent navigation (SPA)

Accessibility

TargetWCAG 2.1 AA (AODA mandatory); AAA for key citizen transactions

Mobile Performance

TargetLighthouse score > 90 on mobile

PWA

TargetInstallable; offline dashboard; push notifications

Bilingual

Target100% content parity between English and French

SEO

TargetServer-side rendering; structured data; Open Graph tags

Concurrent Users

Target5,000 simultaneous portal users

Kiosk

TargetSession isolation; auto-logout; tamper-resistant UI

FAQ

Frequently Asked Questions

Ready to Integrate

Build on Portal Framework

Request an architecture brief, integration guide, or live demo environment for your team.