Skip to content

Latest commit

 

History

6,199 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LevelUp - Halo Dashboard

Analyze your Halo 5: Guardians and Halo Infinite stats match by match, track your progress over time, and compare your performance with your squad.

Version Go React DuckDB ECharts License: MIT Feedback issues


What's new

v7.3 — Overtime, first kill / first death & a repaired Achievements page

A release focused on reading a match better: an overtime flag on every match that went past regulation time, a new first kill / first death chart on three pages, and a round of repairs on Halo 5, on the language switch and on the demo.

Overtime

  • A badge when the match went past regulation time — in the match header and as a pill in the Explorer, with the extra time played
  • Your whole history at once — the flag is computed as you read, so every past match is covered without waiting for a re-sync; Halo 5 stays deliberately unflagged until its regulation times are declared

First kill / first death

  • A new chart replacing the old histograms — one lane per player, first kills above, first deaths below, with each median and the advance window between the two
  • On three pages — Squad ("Dynamics" tab), Timeseries ("Progression" tab) and session detail, including the session comparison panel

Halo 5

  • Achievements page repaired — the page returned an error instead of your milestones, and the section title now stays in place whether the grid is loading, empty or in error

Reading in your language

  • Commendations follow the language switch — their labels used to stay in the previous language until you reloaded the page, and "Headshots" showed up under its raw field name

Match view & demo

  • A missing objective statistic no longer breaks the scoreboard — the match no longer reads as incomplete; only the Objectives section stays empty
  • A more complete demo — improvement campaigns and objective statistics are visible at last, and player identifiers are anonymized as well

Features

Track your career

  • Rank history — LUSR and CSR rating per playlist over time, with your rank name at each step
  • Path to Hero — projection chart showing how close you are to the Hero rank
  • Career KPI cards — 8 cards at a glance: matches played, total time, frags, deaths, assists, accuracy, time alive, W/L/T/DNF bar — each color-coded against your all-time average
  • Commendations — monitor your Halo commendations with medal grids and per-medal distributions
  • XP progression — XP curve with multi-player comparison overlay
  • Objectives — create individual or squad challenges (collective or competitive) on any Halo metric with configurable windows, tiers (Normal / Heroic / Legendary / Mythic), and narrative arcs; earn Prestige Points (PP) on completion
  • Prestige — PP leaderboard in Palmares ranking you against your squad and relations; four tiers with color-coded badges

Analyze your matches

  • Explorer — browse all your matches with cascade filters (map, mode, playlist, outcome, date, session), partial match ID search, and encounter badges
  • Last Match — full scoreboard with K/D, medals, weapons, performance score, impact badges, and encounter history panel for recurring opponents
  • Kill cadence — kills by 15-second intervals for you and the enemy team, with moving-average overlay — see exactly when the pace shifted
  • Match intensity heatmap — kill density per game phase (early/mid/late) across all your matches at a glance
  • Comeback badgesRemontada (you were losing and came back), Collapse (you were winning and blew it), Contre-Remontada (you stopped the enemy comeback)
  • Session comparison — side-by-side analysis of two play sessions
  • Activity heatmap — win rate and activity by day of week and time slot

Squad & Teammates

  • Unified squad view — same rich charts for 1, 2, or 3 friends; works for all party sizes
  • Per-player intensity heatmap — see each squad member's kill profile by game phase across shared matches
  • Squad records — career bests for each member (K/D, kills, streaks…) with per-map breakdown
  • Synergy radar — per-minute stats and complementarity across your squad
  • Kill cadence per player — synchronized kill tempo across shared matches
  • Impact timeline — narrative badges (Top Killer, Silent Hero, False Brother…) per match

Clips & Media

  • Media library — browse screenshots and video clips linked to their match; filter by owner, map, mode, outcome, or solo/squad context
  • Auto-indexing — clips re-scanned automatically every few hours and after each sync
  • Manual reassociation — fix a wrongly linked clip in one click: a built-in picker suggests matches around the capture timestamp (±15 / ±60 / ±180 min) with map thumbnails, outcome and full lobby

Notifications & Setup

  • In-app notification center — per-player feed with unread badge, category filters, day-grouped timeline, and bulk actions; 60-second live refresh; preferences per player
  • Discord alerts — configurable notifications after sync and after backfill, independently
  • One-click setup — Xbox Device Code login (xbox.com/activate) with automatic player provisioning; no Azure account required

Screenshots

Overview

Main dashboard

Main dashboard: multi-page navigation and real-time interactive charts.

Sidebar, Time to First Kill & Performance

Advanced filters (type, playlist, mode, map,session/period), Time-to-First-Kill vs First Death distribution, and per-match performance score.


Performance & Combat

KDA Cumulative performance & trend
KDA Cumulative performance & trend

Average lifespan & Combat Skills

K/D ratio with trend, cumulative performance score, average lifespan and combat skills.


Distributions & Correlations

Distributions Correlations
Distributions Correlations

Histograms for accuracy/kills/scores with means and medians — scatter plots (time alive vs kills, etc.).


Activity by day & time

Heatmap Top Week

Win rate and activity heatmap by day of week and time slot.


Last match details

Last match Scoreboard
Summary Scoreboard Commendations
Impact & Dominance Antagonists
Impact & Dominance Antagonists

Full scoreboard for your latest game (searchable by match ID) — and your most formidable rivals, MVP/LVP, scoreboard, commendations (Halo 5 inspired) grid and medal distributions.


Squad sessions & Teammates

Squad overview Session stats
Session history Squad complementarity
Teammates performance Squad ranking
Squad performance Squad ranking

Filter your sessions by squad: compare your stats when playing with friends and see how you and your teammates perform across shared matches.


Career progression, Ranks & Path to Hero

Career Ranks (LUSR/CSR)
Career Ranks
Path to Hero Memorable Matches

Rank history, progression to Hero, LUSR/CSR per playlist group


Explorer & Encounter History

Explorer Encounter History
Explorer Encounter History

Browse and filter all your matches in detail with the Explorer, including search by player — track recurring opponents and cross-match encounter patterns with the Encounter History view.


Media library & Commendations

Media library Commendations
Media library commendations

Browse and search your clips and screenshots linked to their matches (still in beta) — track your commendations with medal grids and distributions.


Quick start

Prerequisites: Go 1.26+, Node.js + npm, GNU Make, and Air for Go hot reload.

git clone https://github.com/JGtm/LevelUp.git
cd LevelUp
cd apps/web && npm install && cd ../..
go install github.com/air-verse/air@latest
make dev

Open http://localhost:5173 in your browser, then follow the in-app wizard.

Useful variants:

make go-api-dev
make web

Detailed docs: docs/INSTALL.md

French README: docs/FR/README.md


Configuration

v6 — Zero configuration. LevelUp bundles its own Azure client ID. Just launch the app, enter your gamertag, and authenticate via Device Code Flow (https://xbox.com/activate). No .env.local file or Azure account required.

Refresh token (advanced / headless)

If you cannot use the interactive wizard (e.g. server/headless setup), open the login page at http://localhost:5173/auth/xbox/login from any browser on the same network and follow the Device Code Flow. Alternatively, configure a redirect URI via LEVELUP_OAUTH_REDIRECT_URI for a fully browser-based flow.

Note for forks / developers

The bundled LEVELUP_CLIENT_ID is an Azure App Registration tied to this project. If you fork LevelUp, please create your own free Azure App Registration (see docs/CONFIGURATION.md) and set:

# .env.local
SPNKR_AZURE_CLIENT_ID=your_own_client_id

This env var takes precedence over the bundled ID.

Full configuration reference: docs/CONFIGURATION.md


Documentation

Document Content
INSTALL.md Detailed installation guide
CONFIGURATION.md Tokens and profiles configuration
COMMANDS.md Common commands cheat sheet
ARCHITECTURE_V6.md v6 architecture (shared matches + i18n assets)
SYNC_GUIDE.md Sync guide
BACKUP_RESTORE.md Backup and restore
testing.md Go testing strategy (CGO, coverage ratchet)
FAQ.md Frequently asked questions
COMMENDATIONS.md Commendations system (architecture & usage)
COMMENDATIONS_REFERENCE.md Full commendations reference

French docs: docs/FR/

Archived docs (not translated): docs/archive/


Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.


Tech stack

Technology Usage
Go 1.26+ API backend
React 19 + Vite Frontend UI
TanStack Query / Router / Table Data fetching, routing, tables
ECharts 5 Interactive charts
DuckDB 1.4+ OLAP query engine
SPNKr Halo Infinite API

Known limitations

  • Halo API: Depends on SPNKr — some endpoints can be unstable or rate-limited. Weapon kills are extracted from match film binary data (SPNKr), not from the stats API; POV coverage ~87.5 %.

License

This project is licensed under MIT. See LICENSE for details.


Acknowledgements

See also ACKNOWLEDGMENTS.md.


Made with passion for the Halo community

About

Halo 5 & Halo Infinite stats dashboard: match history, rends, medals & commendations, medias, sessions & teammates. Powered by Go, DuckDB, React, and ECharts. Supports friends groups, multi-language (FR/EN so far) and includes internal TrueSkill2 rating.

Topics

Resources

Contributing

Stars

11 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages