
Web Analytics Dashboard
Self-hosted web analytics: page views and session times on a private dashboard I control end to end.
Role
Developer
- Timeline
- May 2023
Technologies
- JS
- Node.js
- Express.js
- MySQL
- ZingChart
- ZingGrid
Tools
- DigitalOcean
- GitHub
- MySQL Workbench
- Postman
Background
Started as a project for CSE 135 (Online Database Analytics Applications) at UCSD. I was curious which of my pages people actually visit and how long they stay. Existing analytics tools gave me more than I needed while taking my data elsewhere. So I built my own tracker.
Solution
A Node/Express endpoint collects visit data into MySQL, and a private dashboard renders traffic in ZingChart charts and tables. Login-gated so the analytics are mine alone.
Process
Deciding what was worth tracking came first: page views, session duration, and little else. Then schema design for event data, the collection code, and the dashboard. Verified end-to-end by browsing my sites and watching numbers land correctly.
Final Product
Impact
It replaced guessing with real numbers for my own projects. It was also a solid full-stack exercise, since instrumentation, storage, and visualization all touch the same data.
Reflection
Designing a schema for append-heavy event tracking was new to me, and worth the effort. Handling higher volume and per-event drill-down charts would come next.
