RoundConfig gets a paused flag toggled via new POST /admin/pause and /admin/resume endpoints (audit-logged, surfaced as a "Manutenzione" card in the admin Parametri view). Pausing only stops the *next* round from opening once the current one closes — rounds/service.py:open_new_round_if_needed still lets an in-progress round finish, draw, and pay out its winner normally. GET /rounds/current exposes lottery_paused so the user page shows a maintenance banner (even while logged out) instead of silently going idle. Also replaces the user dashboard's stacked account-bar card + bento-grid menu with a single sticky navbar (identity row + Deposito/Bet/Prelievo tabs), and moves the page content into a dedicated .app-shell container so the navbar itself can span full width.
97 lines
3.9 KiB
Markdown
97 lines
3.9 KiB
Markdown
# Guida utente
|
|
|
|
Come usare PLM Lottery dall'interfaccia web (`https://<host>/` — vedi
|
|
[running-the-server.md](running-the-server.md) per come avviare il server).
|
|
|
|
## Registrazione e accesso
|
|
|
|
Nella schermata iniziale trovi due tab: **Registrati** e **Login**.
|
|
|
|
- **Registrati**: scegli username e password. Al termine ti viene assegnato
|
|
automaticamente un **indirizzo di deposito personale** (derivato
|
|
server-side) — è per sempre tuo, e riceverai anche eventuali vincite su
|
|
quello stesso indirizzo.
|
|
- **Login**: se hai già un account, accedi con username e password.
|
|
|
|
La sessione resta salvata nel browser (fino al logout): non serve rifare
|
|
login ogni volta che riapri la pagina.
|
|
|
|
## La dashboard
|
|
|
|
Dopo l'accesso vedi, in ordine:
|
|
|
|
1. **Barra account** — il tuo username e il bottone "Esci" (logout)
|
|
2. **Card del round corrente** — sempre visibile, indipendentemente dalla
|
|
sezione che stai guardando:
|
|
- numero del round e stato (*aperto*, *in chiusura*, *estrazione in
|
|
corso*, *pagamento in corso*)
|
|
- **timer** che conta alla rovescia il tempo rimanente prima della
|
|
chiusura del round
|
|
- **giocatori**: quanti hanno già piazzato una bet in questo round
|
|
- **jackpot**: il totale in PLM che verrà distribuito (70% al vincitore,
|
|
30% in fee)
|
|
3. **Menu di navigazione** con tre sezioni:
|
|
|
|
### Estrazione del vincitore
|
|
|
|
Quando il round chiude, **le bet non sono più accettate** e la card del
|
|
round mostra un'animazione ("Estrazione del vincitore in corso…") al posto
|
|
del timer — la stessa cosa compare nella dashboard di ogni giocatore, non
|
|
solo la tua. L'animazione resta visibile per almeno un tempo minimo
|
|
configurabile dall'admin (default 20s), ma può durare più a lungo: il
|
|
vincitore viene scelto usando l'hash del primo blocco confermato dopo la
|
|
chiusura, quindi il tempo reale dipende dalla rete (mediamente ~2 minuti,
|
|
il block time di PLM).
|
|
|
|
Appena il vincitore è determinato, l'animazione lascia spazio a un
|
|
messaggio:
|
|
- **"🎉 Hai vinto! +N PLM"** se sei tu il vincitore — l'importo ti verrà
|
|
accreditato non appena la transazione di payout viene confermata (il
|
|
round successivo non si apre finché questo non accade)
|
|
- **"Non hai vinto questa volta."** altrimenti
|
|
|
|
Il messaggio resta visibile fino all'apertura del round successivo.
|
|
|
|
### Avviso di manutenzione
|
|
|
|
Se l'operatore ha messo in pausa la lotteria per manutenzione, in cima alla
|
|
pagina (visibile anche prima del login) compare un avviso: il round
|
|
eventualmente in corso viene comunque **completato normalmente**, vincitore
|
|
incluso, ma **non ne parte uno nuovo** finché la manutenzione non termina.
|
|
L'avviso sparisce da solo appena l'operatore riprende la lotteria.
|
|
|
|
### Deposito
|
|
|
|
- Il tuo **saldo interno** (accreditato dopo 1 conferma di rete) con bottone
|
|
"Aggiorna" per ricontrollarlo
|
|
- Il tuo **indirizzo di deposito**, con bottone per copiarlo negli appunti
|
|
- Il **QR code** dello stesso indirizzo, comodo per inviare PLM da un altro
|
|
wallet scansionandolo invece di copiare l'indirizzo a mano
|
|
|
|
Per depositare, invia PLM (mainnet reale) a quell'indirizzo da un wallet
|
|
esterno. Il saldo si aggiorna da solo dopo la prima conferma; premi
|
|
"Aggiorna" per vederlo comparire.
|
|
|
|
### Bet
|
|
|
|
Un bottone unico: piazza l'ingresso a costo fisso (mostrato in PLM) nel round
|
|
corrente. Puoi avere **al massimo una bet attiva alla volta**. Il costo viene
|
|
scalato dal tuo saldo interno.
|
|
|
|
### Prelievo
|
|
|
|
Form con due campi:
|
|
- **Indirizzo esterno**: dove vuoi ricevere i PLM
|
|
- **Importo (PLM)**: quanto prelevare
|
|
|
|
Il prelievo viene costruito e trasmesso sulla rete; la fee di rete viene
|
|
scalata dall'importo richiesto (non si aggiunge separatamente).
|
|
|
|
## Notifiche
|
|
|
|
Ogni azione (registrazione, login, bet, prelievo, ecc.) mostra un breve
|
|
messaggio (toast) verde in caso di successo o rosso in caso di errore, in
|
|
basso nella pagina. Se qualcosa non va e il messaggio non basta a capire il
|
|
motivo, il dettaglio tecnico è nei log del server (`logs/app.log` o
|
|
`data/logs/app.log` con Docker) — non nell'interfaccia.
|