How arpita368/devpulse-github-developer-analytics works
DevPulse is a GitHub developer-analytics application: users authenticate, connect a GitHub account, import repositories, and sync repository activity for presentation in the dashboard and repository views. The backend separates API routing, GitHub account/OAuth handling, repository synchronization, and persisted analytics records. The sync service explicitly fetches commits, pull requests, issues, contributors, and reviews, recording job status as it progresses. The README contains no feature detail, and frontend pages and several route implementations were not sampled, so uncertain page-to-API wiring is omitted.
Main entry points: sync_service.py Sync orchestration · App.jsx Route application · main.py FastAPI application · github_service.py Account connection
Components 23
Web application
- Route application
frontend/src/App.jsx - Login and register
frontend/src/pages - GitHub callback
frontend/src/pages/GithubCallback.jsx - Dashboard
frontend/src/pages/Dashboard.jsx - Repositories view
frontend/src/pages/Repositories.jsx - Supabase client
frontend/src/lib/supabase.js
API and identity
- FastAPI application
backend/app/main.py - Auth routes
backend/app/api/routes/auth.py - Profile routes
backend/app/api/routes - GitHub routes
backend/app/api/routes/github.py - Repository routes
backend/app/api/routes/repositories.py - Sync job routes
backend/app/api/routes/sync_jobs.py - Token verification
backend/app/core/auth.py
GitHub integration
- Account connection
backend/app/services/github_service.py - GitHub data client
backend/app/clients/github_client.py
Repository sync
- Sync orchestration
backend/app/services/sync_service.py - GitHub mappers
backend/app/services/github_mappers.py
Persistent data
- Analytics records
backend/app/models - Sync jobs
backend/app/models/sync_job.py - Database session
backend/app/db/database.py
Other components
- Developer
- Supabase Auth
- GitHub
Connections 27
- Developer → Route application: uses
- Route application → Login and register: routes
- Route application → GitHub callback: routes
- Route application → Dashboard: routes
- Route application → Repositories view: routes
- Login and register → Supabase client: uses
- GitHub callback → Supabase client: uses
- Route application → FastAPI application: API requests
- FastAPI application → Auth routes: dispatches
- FastAPI application → Profile routes: dispatches
- FastAPI application → GitHub routes: dispatches
- FastAPI application → Repository routes: dispatches
- FastAPI application → Sync job routes: dispatches
- Auth routes → Token verification: verifies token
- Token verification → Supabase Auth: fetches signing keys
- GitHub routes → Account connection: account operations
- Account connection → GitHub: OAuth and user lookup
- Repository routes → Sync orchestration: imports and syncs
- Sync job routes → Sync orchestration: lists jobs
- Sync orchestration → Account connection: gets account token
- Sync orchestration → GitHub data client: requests repository data
- GitHub data client → GitHub: fetches API data
- Sync orchestration → GitHub mappers: maps responses
- Sync orchestration → Analytics records: upserts activity
- Sync orchestration → Sync jobs: creates and updates
- Account connection → Database session: persists account
- Sync orchestration → Database session: reads and writes