Web App

Vtes.Manager

Archiviato PersonaleDocker Hub

Piattaforma per la gestione di tornei e leghe di Vampire: The Eternal Struggle, con l'algoritmo di seating, il tracciamento dei risultati, i profili giocatore e le classifiche pubbliche.

Il seating è la parte difficile. Distribuire i giocatori ai tavoli non è sorteggiare: conta chi si è già incontrato nei round precedenti, e diciannove iscritti non si dividono per cinque, quindi qualcuno salta il round e a saltarlo non dev'essere sempre lo stesso. Il servizio pesa le combinazioni, tiene conto dello storico e valida la configurazione prima di generare i round.

Torneo e lega sono lo stesso evento. Cambia come si contano i punti, non la struttura: sotto, round, tavoli e risultati sono identici, ed è per questo che una lega si comporta come un torneo lungo invece che come un secondo programma.

La cancellazione non cancella. Tutte le entità principali hanno una rimozione reversibile con un filtro automatico nelle query: un profilo tolto per errore torna indietro invece di portarsi via lo storico dei risultati a cui è legato.

Stato. Dismesso il 13 agosto 2026 insieme al bot Telegram che lo accompagnava.

mag 2025prima immagine pubblicata
15controller
40servizi
25migrazioni del database

Piattaforma

Backend
ASP.NET Core 10, Entity Framework Core
Frontend
Angular 21 con Angular Material, traduzioni IT/EN
Database
SQLite
Confezionamento
un container a tre fasi, nginx davanti alla SPA e proxy sull'API, utente non-root

Eventi

Ciclo di vita
bozza, iscrizioni, in corso, chiuso o annullato
Formati torneo
Standard, Draft, Sealed, Constructed
Seating
conforme alle regole VEKN, con storico dei round, sit-out e tavoli finali
Punteggi lega
somma, media, o le migliori N partite, con criteri bonus per evento

Giocatori

Profilo
numero VEKN, città, lingua, statistiche personali
Decklist
inviata dal giocatore, visibile al pubblico o al solo organizzatore
Cancellazione
reversibile, con filtro automatico nelle query

Accesso

Autenticazione
ASP.NET Identity con token JWT firmati HS256
Ruoli
amministratore, organizzatore, giocatore
Sessione
refresh token, reset password, token monouso per il collegamento Telegram

Stato

Dismesso
13 agosto 2026: servizio spento, repository archiviato
Cosa resta
immagine su Docker Hub in sola lettura, documentazione tecnica conservata

Stack

Tecnologie
C#.NETAngularSQLite