Deep dive · Social Champ · 2024–2026

Comparative analytics suite

Turning raw platform stats into something a marketer can act on: interactive charts, audience demographics across six platforms, competitor trends and exportable PDF reports, for 30,000+ users.

Role
Full stack, Angular + Node.js
Stack
Angular · D3.js · MongoDB
Data
FB · IG · LinkedIn · TikTok · YouTube · Threads
Scale
30K+ users · 9 platforms
Audience world map across Instagram, TikTok, YouTube, Facebook, LinkedIn and Threads
Cross-platform demographics: one audience map built from six platforms.

What it is

Social Champ's analytics module reports per-profile and cross-platform performance. I built and extended the parts people actually compare: competitor analysis, cross-platform demographics and the data pipeline that feeds them.

The front end is Angular with D3 for the charts (trend lines, comparison cards, world map, donuts and bars) and shared chip legends, loading and empty states. The back end is Node.js over MongoDB aggregations, with heavy collection work done by a separate analytics worker.

What I built

◆
Competitor analysis

Trend chart and comparison cards

A competitor trends chart with hover-on-peak, comparison cards and new table columns (followers, average per post). Palette aligned to the design system, warning icon on Data Unavailable rows.

◆
Demographics

Combined demographics across platforms

Country, city, age, gender, job function and industry merged across Instagram, TikTok, YouTube, Facebook, LinkedIn and Threads, with per-card "Based on" coverage so the reader knows which platforms fed each number.

◆
Pipeline

Video views in the analytics worker

Added Instagram and LinkedIn video-view collection to the analytics worker so video metrics show up next to impressions and engagement.

◆
Product

Saved views and design QA

Saved views on every analytics page, a switch prompt that names the view being left and offers Save changes, Overview loading and empty states, dark-mode fixes.

◆
Security

Requests verify their workspace

Competitor-analysis requests now check workspace ownership on the server, so a profile id from another account returns nothing.

◆
Reports

PDF export and scheduled reports

Exportable PDF reports, plus scheduled report emails for Analytics and Social Listening whose per-plan limits pause and resume when the customer changes plan.

Audience by age, gender and location with per-platform tooltips
Audience by age, gender and location; tooltips break each slice down per platform.

What changed

One audience, not six tabs

Marketers see who follows them across every connected platform in one view.

Competitors on the same chart

Trends and comparison cards put a competitor next to your own profile.

Tenant-safe analytics

Workspace ownership is enforced on competitor requests.

Reports that arrive on their own

Scheduled emails with plan-aware limits, no manual export.

AngularD3.jsRxJSNode.jsMongoDB aggregationsAnalytics workerPDF exportAWS Lambda