• BETA 1.0.0-beta.43
  • WINDOWS + SERVER

vStats Teams: dati di allenamento, valutazione delle decisioni e lavagna strategie per team competitivi

Un'app Windows con backend che acquisisce i dati delle partite di allenamento, valuta ogni kill e ogni morte e raccoglie le strategie del team in un unico posto.

Ruolo
progettata e realizzata (app desktop e backend)
Tipo
prodotto proprio, app Windows + server
Stato
beta, 1.0.0-beta.43; abbonamenti in arrivo
Piattaforma
Windows

Problema

I team competitivi si allenano in partite personalizzate private che non compaiono nello storico pubblico. I coach copiano le statistiche a mano, scorrono lunghe registrazioni per trovare i round e tengono le strategie tra disegni e fogli di calcolo sparsi. Serviva un unico strumento che acquisisse ogni partita di allenamento in automatico, spiegasse il valore di ogni decisione, allineasse il video con i dati e tenesse la preparazione di ogni mappa in un solo posto, con i permessi giusti per ogni ruolo.

Risultato

In beta pubblica (1.0.0-beta.43) e scaricabile per Windows su vstats.xyz/download/teams, con aggiornamenti firmati che si installano dall'app quando l'utente lo sceglie. Gli abbonamenti a pagamento sono in arrivo.

Approfondimento tecnico (in inglese)

What I built

I designed and built a Tauri 2 desktop app (Rust core, React 19 + TypeScript interface) and its Node/Express + PostgreSQL backend. While the team plays, the app watches the local game client, read-only. When it sees a full five-a-side custom game, it keeps just the match ID. Afterwards it fetches and uploads the match data, retrying from disk until it gets through. It captures match data, not video. The server computes per-round stats and grades every kill, death, plant and defuse. The app adds a strategy board, a VOD review lab and role-based permissions.

Highlights

  1. CAPTURE

    Automatic practice-match capture.

    Only qualifying custom games are kept. Unsent uploads wait on disk and retry with back-off, so a lost connection never loses a match.

  2. SCORING

    Decision grading.

    Rules for trades, opening duels, clutches, saves and throws give every event one of 8 tiers, from brilliant to blunder, in the style of chess-engine move ratings. Each player gets a 0–100 decision score, and stored analyses recompute automatically when the rules change.

  3. VOD SYNC

    Video lined up by reading the timer.

    The Rust side captures the video player's area of the screen and reads the on-screen round timer with a custom digit reader, then lines the YouTube stream up with the match rounds, including streams that cover several maps.

  4. EDITOR

    A strategy drawing board.

    12 tools (arrows, zones, vision cones, barriers and more), up to 7 phases per strategy, and server-side validation of every board.

  5. ACCESS

    Roles and team data.

    6 roles (manager, coach, analyst, IGL, player, sub) with a permission table. Private matches are visible only to staff, and uploads are de-duplicated per team.

  6. BILLING

    Trials and subscriptions.

    Free-trial applications reviewed by hand, and a Stripe subscription path whose webhook sets the team's access with a grace period. Subscriptions are opening soon.

How it works

vStats Teams capture pipelineSeven stages: detect a practice match, keep its ID, fetch the data, queue it on disk, upload it with retries, grade decisions on the server, then show results on the strategy board, VOD and performance screens. The list below describes each step.detect1keep ID2fetch3diskqueue4upload5retrygrade6boardVODperformance7vStats Teams capture pipelineSeven stages: detect a practice match, keep its ID, fetch the data, queue it on disk, upload it with retries, grade decisions on the server, then show results on the strategy board, VOD and performance screens. The list below describes each step.detect1keep ID2fetch3disk queue4upload5retrygrade6boardVODperformance7
  1. Detect a qualifying practice match.
  2. Keep only the match ID during play.
  3. Fetch the match data after the game.
  4. Queue it on disk.
  5. Upload it, retrying until it succeeds.
  6. The server computes stats and grades decisions.
  7. Results appear in the performance, strategy and VOD screens.

Stack

  • Tauri 2
  • Rust
  • tokio
  • rustls
  • keyring
  • Windows screen capture
  • React 19
  • TypeScript
  • Vite
  • Vitest + Testing Library
  • Node.js/Express
  • PostgreSQL
  • Redis
  • Stripe
  • YouTube Data API
  • spreadsheet import

By the numbers

  • ~28,900lines in the desktop app
  • 71interface-to-core commands
  • 53team API routes
  • 6Postgres migrations
  • 35 + 43Rust tests + interface tests
  • 10server test files

Outcome

In public beta (1.0.0-beta.43) and available to download for Windows at vstats.xyz/download/teams, with signed in-app updates that install when the user chooses. Paid subscriptions are opening soon.

Ti serve qualcosa di simile? Chiedi un preventivo gratuito.

Preventivo gratuito

VALORANT e Riot Games sono marchi di Riot Games, Inc. Questo progetto non è affiliato a Riot Games né approvato da Riot Games.

VALORANT and Riot Games are trademarks of Riot Games, Inc. This project is not affiliated with or endorsed by Riot Games.