Back to Projects

Healthcare Benchmarking & DIY Ads

Enterprise SaaS for Hospital Analytics & Advertising

Overview

Two enterprise SaaS products: BIG v2 healthcare benchmarking with React + MobX frontend, Symfony PHP backend, AWS Cognito auth, and schema-driven report constructor. DIY Ads v2 self-service advertising with Vue.js frontend, Symfony 5.3 backend, Stripe PaymentIntents with manual capture, Jira REST API integration, and event-driven campaign workflow.

Key Features

  • BIG v2: Schema-driven report constructor with React frontend and Symfony PHP backend
  • 100+ KPIs with recursive JSON-to-component rendering engine
  • AWS Cognito authentication with custom password reset and MFA flows
  • DIY Ads v2: Vue.js + Symfony 5.3 campaign management with Stripe PaymentIntents
  • Event-driven campaign status workflow using Symfony EventDispatcher
  • Multi-network support — each network with own currency, languages, and rate cards

Tech Stack

Frontend

ReactTypeScriptMobXVue.jsStyled Components

Backend

Symfony 5.3PHPDoctrine ORMMySQLPostgreSQL

Data Visualization

Chart.jsag-GridD3.js

Cloud & Auth

AWS CognitoAWS EC2AWS CodeDeployAmazon SESStripe

Tools

JSON SchemaWebpackJestStorybookJira REST API

Challenges & Solutions

Stripe Manual Capture for Ad Campaigns

Problem

DIY Ads needed to authorize payment on checkout but only capture when campaign actually launches — standard charge flow would lock user funds prematurely.

Solution

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.

Schema-Driven Report Constructor

Problem

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.

Solution

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

Problem

Multiple interconnected MobX stores (auth, organization, queries, reports) with complex async flows, cross-store dependencies, and side effects across a large healthcare domain.

Solution

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.

Key Achievements

2 Products
BIG v2 benchmarking + DIY Ads v2 advertising
100+ KPIs
Healthcare metrics across multi-tenant organizations
Stripe + Jira
Manual capture payments and ticket automation
AWS Stack
Cognito auth, EC2, CodeDeploy, SES