Healthcare Benchmarking & DIY Ads
Enterprise SaaS for Hospital Analytics & Advertising
Two enterprise SaaS products for a Canadian client. BIG v2: healthcare benchmarking platform where hospitals submit trial balance data and compare 100+ KPIs against peer groups — schema-driven report constructor, MobX state management, ag-Grid data tables, AWS Cognito auth. DIY Ads v2: self-service advertising platform with Symfony backend, Vue.js frontend, Stripe payments, and Jira ticket integration.
Key Features
- Schema-driven UI rendering engine — JSON schema from backend controls layout without code changes
- 100+ unique KPIs with recursive component rendering (Card, Charts, Tables, Forms)
- MobX store-per-domain architecture with computed properties and reactions for side effects
- ag-Grid integration for complex data tables with sorting, filtering, and drill-downs
- AWS Cognito authentication with custom password flows
- DIY Ads: Stripe PaymentIntents with manual capture, Jira REST API, event-driven campaign workflow
Tech Stack
Frontend
Data Visualization
Backend
Cloud & Auth
Tools
Challenges & Solutions
Schema-Driven Report Constructor
100+ unique KPIs each with different visualization requirements, calculations, and drill-down capabilities — hardcoding each report layout would be unmaintainable and block business users from configuring new reports.
Built recursive rendering engine where backend returns JSON schema describing layout (Container, Row, Card, Charts, Tables, Forms). React walks the schema tree and instantiates appropriate components. Non-developers can configure new report layouts without code changes.
Enterprise State Management at Scale
Multiple interconnected MobX stores (auth, organization, queries, reports) with complex async flows, cross-store dependencies, and side effects across a large healthcare domain.
Store-per-domain architecture with MobX computed properties for derived state and reactions for side effects. Each store owns its data and exposes computed values — report store reacts to query store changes automatically. Kept state predictable despite 100+ KPI variations.
Stripe Manual Capture for Ad Campaigns
DIY Ads needed to authorize payment on checkout but only capture when campaign actually launches — standard charge flow would lock user funds prematurely.
Implemented Stripe PaymentIntents with manual capture: authorize on checkout, capture on campaign launch, void on cancellation. Event-driven campaign status workflow using Symfony EventDispatcher triggers appropriate payment actions at each state transition.