Malavya MankarPortfolio

AI & Full-Stack Developer

Runner Up2026Runner Up

GitStat

GitHub contributor health dashboard — visualise team velocity, commit patterns, and AI-generated contributor insights.

APRIL 2026UNIMERGE SOLO HACKATHON
GitStat — project screenshot
Overview

GitStat is a GitHub contributor health dashboard built solo during the 36-hour Unimerge Hackathon to surface team velocity, burnout signals, and AI-generated insights about individual contributors. It secured Runner Up and was later shipped to production at git-stat-olive.vercel.app.

Problem Statement

Engineering teams lack real-time visibility into contributor health and code velocity. Burnout often goes undetected until it's too late. GitStat addresses this by aggregating GitHub activity data into an actionable health score per contributor.

Architecture

React + Vite SPA on the frontend, Express + Node.js REST API on the backend (deployed to Render). GitHub OAuth handles secure authentication. Supabase (PostgreSQL) stores user sessions and cached contributor data. Gemini 1.5 Flash generates AI summaries of contributor activity.

Technical Decisions
  • GitHub OAuth instead of PAT tokens — ensures user-scoped data access without exposing repo secrets
  • Supabase for auth session storage — avoided rolling a custom session layer under time pressure
  • Gemini 1.5 Flash over GPT-4 — cost-free tier with sufficient context window for contributor summaries
  • Vite over CRA — faster cold starts during iterative hackathon development
  • Express CORS middleware configured per-origin — required to allow the Vercel frontend to call the Render backend across different domains
Key Outcomes

Full analytics dashboard built solo with GitHub OAuth, contributor health scoring, and AI-generated summaries. Resolved complex CORS and OAuth deployment issues at speed.

Core Features
  • Contributor health scoring analytics dashboard
  • GitHub OAuth secure integration & analytics
  • Commit velocity & team frequency charts
Challenges
  • 1

    CORS errors between Vercel-deployed frontend and Render-deployed backend — resolved by adding dynamic origin allowlist in Express CORS config

  • 2

    GitHub OAuth redirect URI mismatch in production — production callback URL was not registered, required adding the Vercel domain to GitHub OAuth App settings

  • 3

    GitHub API rate limits — implemented response caching in Supabase to avoid repeated calls within the same session

  • 4

    Burnout prediction heuristic — designed a composite scoring function based on commit frequency variance, PR merge latency, and review-to-commit ratio

Learnings
  • ✦OAuth callback URIs must be registered for every deployment environment — staging and production need separate entries
  • ✦CORS debugging is significantly easier with structured logging on the Express layer
  • ✦Hackathon deployments benefit from keeping frontend and backend on the same domain or using a reverse proxy
  • ✦Gemini's API quota is generous enough for demo-scale AI features at zero cost
Official Certificate
GitStat — Official Certificate