KR
All workProject 26 / 36

OW2 Career Tracker

Personal Overwatch 2 dashboard that snapshots my public career profile every three hours and charts every hero's stats over time.

Year
2026
Stack
Python, FastAPI, SQLite, httpx, JavaScript, Chart.js, uv
Area
softwaredata
Links
Screenshot or figure from OW2 Career Tracker

Overview

A personal dashboard for my Overwatch 2 account. The public career profile exposes lifetime totals per hero and per mode, not match history, so "over time" only exists if something saves snapshots.

By the numbers

  • snapshot every 3 h
  • stores only changes
  • per-hero history

Highlights

  1. 01

    Blizzard's career profile only shows current lifetime totals, so the tracker builds history itself: a scheduled sync pulls the profile through the OverFast API and stores a new point in SQLite only when a stat actually changed.

  2. 02

    A FastAPI server and a plain HTML, CSS and Chart.js front end show the player banner and rank, headline stats, win rate and KDA over time, the role split and every hero's detail tables, for Quick Play and Competitive.

  3. 03

    One command runs it with uv; a Windows installer registers a silent scheduled task every three hours and a Start menu entry, with cron for macOS and Linux.

The story

owdash sync fetches the profile, compares it with the last snapshot and writes a point only when something changed, which keeps the database small. owdash serve syncs once and opens the dashboard: player banner with endorsement and competitive rank, headline stats with changes since tracking started, win rate and KDA over time, the tank, damage and support split, and a sortable hero roster with each hero's full stat tables.

A personal dashboard for my Overwatch 2 account. The public career profile exposes lifetime totals per hero and per mode, not match history, so “over time” only exists if something saves snapshots. owdash sync fetches the profile, compares it with the last snapshot and writes a point only when something changed, which keeps the database small. owdash serve syncs once and opens the dashboard: player banner with endorsement and competitive rank, headline stats with changes since tracking started, win rate and KDA over time, the tank, damage and support split, and a sortable hero roster with each hero’s full stat tables.