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
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.
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.
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.
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.
Requests verify their workspace
Competitor-analysis requests now check workspace ownership on the server, so a profile id from another account returns nothing.
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.

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.
Want the rest of the work?
Switch, analytics, sentiment, Brand Dashboard, MCP and n8n.
