Skip to content

Fully automated reading tracker—zero infra, 100% GitHub. Go + Python pipeline with interactive analytics from Shopify, Stripe, and GitHub blogs.

License

Notifications You must be signed in to change notification settings

victoriacheng15/personal-reading-analytics-dashboard

Repository files navigation

📚 Personal Reading Analytics Dashboard

A self-built fully automated reading analytics dashboard with zero infrastructure, refreshed automatically to turn personal data into actionable insights.


🌿 Design Philosophy

This project is built to reflect how I believe small, personal tools should work:

  • Zero infrastructure → No servers, databases, or cloud costs. Runs entirely on GitHub (Actions + Pages).
  • Fully automated → Scheduled GitHub Actions keep data fresh—no manual runs or home servers.
  • Transparent by default → All code, data logic, and outputs are public. No black boxes.
  • Sustainable & low-stress → Simple pipeline, easy to maintain, no roadmap pressure. It evolves only when real needs arise.
  • Cost-effective → Uses only free tiers (GitHub, Google Sheets API)—proving powerful automation doesn’t require budget.

📊 What It Shows

  • Total articles: 3000+ articles with read rate percentage
  • Read vs. unread breakdown: By year, by month, and by source (Substack, freeCodeCamp, GitHub, Shopify, Stripe)
  • Yearly trends: Year-by-year distribution with 5-year default view (adjustable)
  • Monthly trends: Monthly distribution across all sources or by individual source
  • Interactive charts: Year chart (bar/line toggle), monthly breakdown, and per-source statistics
  • Source insights: Per-source read rates, Substack author averages, and unread article tracking

Supported Sources

Currently extracting articles from:

  • freeCodeCamp
  • Substack
  • GitHub (Added 2024-03-18)
  • Shopify (Added 2025-03-05)
  • Stripe (Added 2025-11-19)

🔗 Live Dashboard

👉 Live Demo


🛠 Tech Stacks

Go Python Google Sheets API Chart.js GitHub Actions Docker


🛠️ Technical Overview

Data Pipeline: Articles → Metrics → Dashboard

graph TD
    A["Article Extraction - Python"] -->|Extract & Deduplicate| B["Google Sheets"]
    B -->|Read Articles| C["Metrics Calculation - Go"]
    C -->|Generate JSON| D["metrics/YYYY-MM-DD.json"]
    D -->|Read Metrics| E["Dashboard Generation - Go"]
    E -->|Generate HTML| F["index.html with Chart.js"]
    F -->|Deploy| G["GitHub Pages for Live Dashboard"]
Loading

Article Extraction: Python web scrapers extract articles from engineering sources, deduplicate, and store in Google Sheets

Metrics Calculation: Go program reads articles from Google Sheets, calculates metrics, outputs JSON

Dashboard Generation: Go program reads metrics JSON, generates interactive HTML with Chart.js visualizations, deploys to GitHub Pages

Documentation

For deep technical details, see the architecture docs:


📖 How This Project Evolved

Learn about the journey of this project: from local-only execution, to Docker containerization, to fully automated GitHub Actions workflows.

Read Part 1: Article Extraction Pipeline

Part 2: Dashboard & Metrics Pipeline (Coming soon) - The evolution to metrics calculation and interactive visualization on GitHub Pages

About

Fully automated reading tracker—zero infra, 100% GitHub. Go + Python pipeline with interactive analytics from Shopify, Stripe, and GitHub blogs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •