Functional & Non-Functional Requirements
Functional Requirements
1. Project Assignment–Based Rendering of Dashboard
Enable users to access dashboards based on their assigned jurisdiction or project assignment, eliminating the need to maintain multiple dashboard roles.
Key Capabilities
Upon login, the system should -
Determine the user’s jurisdiction via the project service.
Restrict access to data and dashboard views to that jurisdiction.
Inbox, where users can see live and past campaigns and check their respective dashboards
Jurisdiction and role-based access to dashboards
Benefits
Eliminates the need to manage multiple roles or dashboards for each hierarchy level or user group.
Users immediately see the information that matters most to them, improving usability and decision-making.
2. Configuration-Based Filter Rendering in Dashboard
Support dynamic filter rendering on dashboards using a configuration-driven approach. This avoids hardcoded filters and allows dashboard views to be easily adapted across campaigns and Key Performance Indicators (KPIs).
Key Capabilities
Define and allow rendering of dynamic filters from a centralised JSON configuration file.
Non-functional Requirements
Performance
Dashboard API response times must remain below 200 milliseconds.
All dashboard aggregation queries to be optimised with:
Pre-aggregated views using Elasticsearch Transforms.
Proper indexing and mapping strategies.
Scalability
The analytics and dashboard system should handle millions of records across indexes like household-index-v1, household-member-index-v1, project-task-index-v1, etc.
Security
Sensitive personal information (e.g., exact address, phone number, health conditions, or any combination of fields that can uniquely identify an individual) must be excluded during ingestion into analytical indexes.
All API access must be authenticated and transmitted over HTTPS.
Availability
The system must be highly available to ensure uninterrupted access to dashboards during campaign operations.
Key practices to meet this requirement include:
Managed ElasticSearch cluster with multi-node configuration and shard replication.
Load-balanced dashboard pods with auto-scaling support and caching.
Monitoring and alerting for failures.
Maintainability
Standardise KPIs across campaigns for population-based campaigns to bring down the required engineering effort.
Allow dashboard extensibility for campaign-specific customisations.
Unify the approach for setting up boundary hierarchies and associated map layers (GeoJSON) within Kibana, ensuring consistency and reusability across implementations.
Maintain a centralised KPI catalogue organised by campaign type to simplify the selection, setup, and validation of metrics during dashboard rollout.
Last updated
Was this helpful?