Repo Tanıtımı
Spotify Wrapped formatından ilham alan GitHub yıl-sonu analiz panosu. Kullanıcı GitHub OAuth ile giriş yapar, sistem yıllık verisini çeker ve görselleştirir.
Özellikler
- GitHub OAuth Device Flow ile login
- Yıllık dil dağılımı (top 5)
- Contribution heatmap (saat × gün)
- En aktif depolar (commit sayısı bazında)
- "Kodlama kişiliği" sınıflandırması (gece/sabah/hafta sonu pattern'i)
- Sosyal medyada paylaşılabilir PNG kart (html2canvas)
- Redis cache — saatlik GitHub rate limit korunur (6 saat TTL)
- Docker Compose ile tek komutla self-host
Mimari
- Backend: Flask + Gunicorn
- Veri: GitHub GraphQL v4 — 5 paralel query (commits, contributions, repos, languages, stars), asyncio + httpx
- Auth: GitHub OAuth Device Flow (token sadece request lifetime'ı boyunca memory'de)
- Cache: Redis (sonuç cache, 6 saat TTL)
- Frontend: Server-rendered Jinja2 + Chart.js
- Deployment: Docker Compose (web + redis + nginx)
Kullanılan Teknolojiler
Python, Flask, Gunicorn, Redis, Docker, GitHub GraphQL v4, asyncio, httpx, Chart.js, html2canvas, Jinja2, NGINX.