How abc2204/azuredevopspulse works
AzureDevOpsPulse is a Flask dashboard that collects local TFS/Azure DevOps Server activity into SQLite and presents developer, repository, and comparison statistics. The main workflow is configure a TFS connection, synchronize projects, repositories, commits, pull requests/reviews, and work items, then query and filter stored metrics in the browser. The graph separates scheduled/manual synchronization from dashboard queries and settings. Some route and template wiring is inferred from the README and tree because the excerpts are partial.
Main entry points: app.js Browser UI · app.py Flask routes · database.py Database access · scheduler.py Sync scheduler
Components 22
Web experience
- Browser UI
static/js/app.js - Activity heatmap
static/js/pulse.js - Dashboard pages
templates
Application API
- Flask routes
app.py - Statistics API
app.py - Settings and teams
app.py - Developer metrics
database.py - Repository metrics
database.py - Work item metrics
database.py - Developer comparison
templates/compare.html - Developer detail
templates/developer.html - Repository view
templates/repos.html - Settings view
templates/settings.html
Synchronization
- Sync scheduler
scheduler.py - Sync orchestration
collector.py - TFS API client
collector.py - Activity ingestion
collector.py
Persistence and config
- Database access
database.py - SQLite store
- Runtime config
config.py
Other components
- Dashboard user
- TFS server
Connections 23
- Dashboard user → Browser UI: uses
- Browser UI → Flask routes: requests
- Flask routes → Dashboard pages: renders
- Flask routes → Database access: queries and updates
- Flask routes → Sync scheduler: starts sync
- Flask routes → Runtime config: reads settings
- Browser UI → Activity heatmap: renders activity
- Flask routes → Statistics API: serves metrics
- Statistics API → Developer metrics: queries
- Statistics API → Repository metrics: queries
- Statistics API → Work item metrics: queries
- Statistics API → Database access: reads data
- Sync scheduler → Database access: loads sync state
- Sync scheduler → Sync orchestration: runs sync
- Sync orchestration → TFS API client: fetches data
- TFS API client → TFS server: calls REST API
- Sync orchestration → Activity ingestion: normalizes activity
- Activity ingestion → Database access: persists activity
- Database access → SQLite store: reads and writes
- Developer comparison → Browser UI: uses shared UI
- Developer detail → Browser UI: uses shared UI
- Repository view → Browser UI: uses shared UI
- Settings view → Browser UI: uses shared UI