Manuale pubblico — EmptyLeg
Guida per visitatori e clienti (ruolo CUSTOMER). Versione dell'applicazione: vedi il piè di pagina del sito.
Cos'è un Empty Leg
Un empty leg è un volo executive di rientro o di riposizionamento senza passeggeri, offerto a prezzo ridotto.
Menu e navigazione (mobile e desktop)
Su smartphone e tablet l'header mostra il pulsante hamburger (☰): il menu è chiuso per impostazione predefinita e si espande al tocco, con le stesse voci della versione desktop (Aiuto, Come Funziona, Contatti, Accedi, Registrati; se hai effettuato l'accesso le voci riservate sono raccolte in menu a tendina — Voli & Operazioni, Flotta & Azienda, Commerciale & Promo e, per gli amministratori, Admin Tools). Il selettore di lingua IT | EN e il badge di stato (Official, oppure Staging sull'ambiente di collaudo) sono presenti in entrambe le versioni e l'header resta fisso in alto durante lo scorrimento.
L'header (desktop e mobile) ha una voce fissa in prima posizione: Voli Disponibili (Available Flights), che porta direttamente alla sezione dei voli della vetrina (/ → ancora #flights). È visibile sia ai visitatori sia agli utenti autenticati.
Cercare i voli
- Apri la pagina principale oppure usa la voce Voli Disponibili del menu (collegamento diretto alla sezione
/→#flights): la vetrina mostra i voli pubblicati dagli operatori. - Ogni scheda riporta aeroporto di partenza e arrivo (codice ICAO con città sotto), aeromobile, posti disponibili, prezzo per passeggero e totale per l'intero velivolo (prezzo × posti). La ricerca usa un catalogo aeroporti aggiornato in modo idempotente.
- Premi Dettagli per aprire la pagina del volo (/flight/
): aeroporti con nome e città, orari di partenza e arrivo (se l'operatore non lo indica, l'arrivo è stimato dall'app calcolando la distanza ortodromica tra i due aeroporti a ~750 km/h + 20 minuti di decollo/rullaggio), aeromobile, posti, operatore e prezzo. - Il prezzo mostrato è sempre quello del singolo passeggero, affiancato dal totale per l'intero velivolo (prezzo × posti disponibili).
- Alcune tratte possono essere contrassegnate come promosse dagli operatori: sono evidenziate in vetrina ma il prezzo e le condizioni di prenotazione restano invariati per il cliente.
Registrarsi
- Vai su Registrati e scegli Cliente.
- Inserisci nome, email e una password di almeno 8 caratteri, oppure usa Accedi con Google.
- Spunta la casella obbligatoria Ho letto e accetto l'Informativa Privacy e i Termini e Condizioni: i due documenti si aprono in una nuova scheda e senza la spunta la registrazione non va a buon fine (il form viene ricaricato con l'avviso Per completare la registrazione devi accettare l'Informativa Privacy e i Termini e Condizioni). La casella Desidero ricevere la newsletter e comunicazioni commerciali è invece facoltativa. La data e l'ora del consenso (in UTC) e la tua scelta sulla newsletter restano registrate sull'account.
- Gli operatori aviation scelgono Operatore e usano il manuale operatori dopo l'accesso.
Conferma dell'email
Dopo la registrazione (o se l'email non è ancora confermata) in cima alla pagina compare un banner giallo "Il tuo indirizzo email non è ancora confermato" con il pulsante Reinvia email di conferma. Riceverai un'email da [email protected] con il link di conferma (valido 48 ore): aprilo e l'indirizzo viene confermato. Se il link è scaduto o non valido puoi richiederne uno nuovo dal banner. Chi accede con Google non deve fare nulla: l'indirizzo è già confermato da Google.
Prenotare
Il pulsante Dettagli / Prenota su ogni volo è il punto di ingresso alla prenotazione. Dal dettaglio volo puoi inviare una richiesta di prenotazione (nome, email, posti): il pagamento non è mai automatico. La richiesta va in stato PENDING_OPERATOR_APPROVAL; l'operatore o l'admin la accetta (APPROVED_PENDING_PAYMENT, solo allora il cliente può saldare) o la rifiuta. I voli contrassegnati DEMO sono dimostrativi: sono visibili e arrivano fino alla richiesta, ma la prenotazione reale non è abilitata e l'invio mostra l'avviso "Piattaforma in arrivo. Questo è un volo dimostrativo per mostrare la UX del servizio." Il prezzo mostrato è sempre per singolo passeggero; il totale è prezzo × posti. In caso di cancellazione di un volo confermato da parte dell'operatore, la cancellazione è registrata e si applica la penale prevista (default 15%).
Il modale di prenotazione (Conferma prenotazione)
Sulla pagina del volo il pulsante Prenota ora apre il modale Conferma prenotazione (checkout pre-pagamento: si chiude con ESC, cliccando sullo sfondo o su Annulla):
- Nome e cognome, Email e Posti richiesti (da 1 al massimo disponibile per quel volo, indicato accanto al campo).
- Riepilogo del Prezzo per passeggero, dei Posti selezionati e del Totale stimato, aggiornato mentre cambi il numero di posti; la nota ricorda che l'importo è indicativo e che il pagamento avviene solo dopo l'approvazione dell'operatore.
- Blocco informativo Servizi inclusi: posto a bordo e bagaglio secondo la franchigia dell'operatore, equipaggio, carburante, tasse aeroportuali, handling standard e servizi di bordo indicati nella scheda del volo.
- Blocco Esclusioni: de-icing (deglassamento), catering speciale, trasferimenti terrestri, bagaglio oltre franchigia, pernottamenti e ogni altro servizio non elencato, salvo espressa indicazione dell'operatore.
- Blocco Cancellazione (art. 59 Codice del Consumo): il diritto di recesso non si applica ai servizi di trasporto di passeggeri; in caso di cancellazione richiesta dal cliente si applicano gli scaglioni 10% (oltre 30 giorni), 30% (da 30 a 15 giorni), 50% (da 14 a 7 giorni), 75% (da 6 giorni a 48 ore) e 100% (meno di 48 ore o mancata presentazione), calcolati sul prezzo per passeggero. Il link Leggi la politica di cancellazione completa apre
/terms#cancellazione. - Tre caselle obbligatorie: Accetto i Termini e Condizioni, Accetto la Politica di cancellazione, Ho letto l'Informativa Privacy. I documenti si aprono in una nuova scheda e la politica di cancellazione punta alla sezione dedicata dei Termini (
/terms#cancellazione). - Pulsante Invia richiesta: la richiesta viaggia con il token CSRF della pagina e con il timestamp UTC del consenso; gli errori (dati mancanti, consensi non spuntati, posti non disponibili) compaiono nel modale senza perdere quanto inserito.
- Nessun pagamento automatico: alla conferma compare l'esito e la richiesta resta
PENDING_OPERATOR_APPROVALin attesa dell'operatore, che la accetta o la rifiuta dalla propria area.
Privacy, Termini e consensi (GDPR)
- Nel piè di pagina trovi sempre Informativa Privacy e Termini e Condizioni: sono pagine pubbliche (leggibili anche senza account) e mostrano la data dell'ultimo aggiornamento.
- Da ciascuna delle due pagine puoi scaricare il PDF ufficiale (
static/docs/privacy-policy.pdfestatic/docs/termini-condizioni.pdf). Il download dei documenti ufficiali è riservato agli utenti registrati: se non hai ancora effettuato l'accesso, il pulsante Scarica … (PDF) ti riporta alla pagina di login con l'avviso Il download dei documenti PDF ufficiali è riservato agli utenti registrati. (una nota ambra appare sotto il pulsante). I testi integrali restano comunque leggibili da chiunque nella pagina web. - I Termini includono la sezione 4. Servizi inclusi ed esclusi e la sezione 5. Politica di cancellazione e penali con l'ancora diretta
#cancellazione, richiamata dal modale di prenotazione. La sezione 5 richiama l'art. 59, comma 1, lettera b, del D.Lgs. 206/2005 (recesso non applicabile al trasporto passeggeri) e fissa gli scaglioni di penale 10% / 30% / 50% / 75% / 100% sul prezzo per passeggero. - Alla registrazione Privacy e Termini sono obbligatori (newsletter facoltativa); a ogni richiesta di prenotazione i tre consensi (Termini, Politica di cancellazione, Privacy) vengono registrati con data e ora in UTC.
Installare l'app (PWA)
Il sito è installabile come app standalone su iOS, Android e desktop dal menu del browser ("Aggiungi a schermata Home" / "Installa app"). L'icona e il logo EmptyLeg vengono usati automaticamente: il layout base collega static/manifest.json (<link rel="manifest">, nome, start_url, display: standalone, colori e icone 192/512) e registra static/sw.js (cache degli asset in /static/; i PDF ufficiali in /static/docs/ sono esclusi dalla cache e vengono sempre richiesti alla rete).
Lingua del sito (IT / EN)
Nell'header trovi il selettore di lingua IT | EN (GET /set-language/<lang>): la scelta è salvata nella sessione e vale per tutte le pagine, pubbliche e riservate. La lingua predefinita è l'italiano; in assenza di scelta viene rispettata la preferenza del browser (Accept-Language). Il selettore è disponibile anche nella pagina Coming Soon.
Assistenza e richieste operatori (B2B)
Per problemi di accesso o prenotazione usa il modulo di contatto: il messaggio arriva al nostro team ([email protected]) e riceverai una conferma via email (mittente [email protected]).
Sempre in /contact, e nella sezione B2B in fondo alla vetrina, trovi il form Richiedi info e prezzi riservato agli operatori: Ragione Sociale, Referente, Email/PEC, Telefono e N° Aerei (più un messaggio facoltativo). All'invio riceviamo la notifica e ti arriva una email di conferma.
L'header pubblico (desktop e mobile) ha una voce fissa Per Operatori che apre lo stesso form in una finestra (modal) senza cambiare pagina: utile per richiedere info mentre si consulta la vetrina. Il riquadro "Sei un operatore o un broker?" e la voce Per Operatori sono visibili solo se non hai effettuato l'accesso, e al tuo primo accesso alla vetrina il modal si apre automaticamente una volta sola per browser (poi resta disponibile dal pulsante).
Il riquadro B2B in vetrina si comporta come una card promo: se non interagisci con la pagina, dopo circa 8 secondi si riduce automaticamente a una card compatta (badge B2B + sintesi del Piano Free) con il pulsante Scopri i vantaggi; un clic sulla card riapre il riquadro completo ed è sufficiente qualsiasi interazione (clic o compilazione del form) perché la riduzione automatica venga annullata.
In vetrina la fascia in alto evidenzia le due garanzie commerciali: Zero commissioni per il cliente finale (lato B2C: paghi solo il prezzo del volo pubblicato) e €0/anno di canone con il Piano Free (lato B2B, per gli operatori/COA).
Come funziona, Credits, Changelog e Contatti
Nel piè di pagina trovi i link a Come Funziona, Credits, Contatti, Informativa Privacy e Termini e Condizioni: il numero di versione mostrato nel piè di pagina (es. v0.9.6) è un link alla pagina Cronologia degli aggiornamenti, che elenca tutte le novità della piattaforma leggendo CHANGELOG.md.
La pagina Credits (/credits) riporta il logo EmptyLeg, l'intestazione aziendale "EmptyLeg.dev by Tecnodream di Simone Grandi - P.IVA: 04350021202", le tecnologie usate, la versione corrente (collegata al changelog) e i link rapidi a Cronologia, Come Funziona e Contatti.
Cosa dice "Come funziona"
- Lato cliente: zero costi aggiuntivi di servizio: il cliente paga solo ed esclusivamente il prezzo puro del volo pubblicato, senza sovrapprezzi o ricarichi.
- Lato operatore: azzeramento dei costi fissi con il piano free, totale controllo operativo e monetizzazione delle tratte a vuoto.
- Nessuna cifra o percentuale riservata compare nelle pagine pubbliche: il listino completo (commissioni, canoni, pacchetti) è mostrato solo agli operatori autenticati nella pagina Prezzi.
Sito in preparazione (Coming Soon)
Quando la modalità Coming Soon è attiva sul sito ufficiale (toggle Impostazioni → COMING_SOON, oppure variabile d'ambiente COMING_SOON), i visitatori non autenticati vedono la pagina "Stiamo per decollare" (/coming-soon) finché la vetrina non viene aperta al pubblico; gli amministratori autenticati vedono sempre il sito.
Mentre la modalità è attiva i link di menu e piè di pagina restano funzionanti: Come Funziona (/how-it-works), Credits, Aiuto (/help, manuale pubblico), Cronologia degli aggiornamenti (/changelog), Informativa Privacy e Termini e Condizioni sono pagine pubbliche raggiungibili, così come Contatti (/contact). Vetrina, schede volo e aree riservate portano invece alla pagina Coming Soon, che è centrata sull'hero di lancio con i voli dimostrativi a piena larghezza.
Voli dimostrativi (DEMO)
Con la modalità attiva la vista pubblica mostra 4 voli dimostrativi fittizi, sempre contrassegnati dal badge ambra DEMO:
| Tratta | Aeromobile | Posti | Prezzo / passeggero | Totale velivolo |
|---|---|---|---|---|
| LIML → LFPB (Milano – Parigi) | Embraer Phenom 300 | 6 | €810 | €4.860 |
| LIRA → LFMN (Roma – Nizza) | Cessna Citation Mustang | 4 | €850 | €3.400 |
| LIPE → EGSS (Bologna – Londra) | Beechcraft King Air B200 | 8 | €740 | €5.920 |
| LIPZ → LSGG (Venezia – Ginevra) | Cessna Citation CJ2 | 6 | €700 | €4.200 |
- Il prezzo mostrato è la quota per posto di un empty leg (circa il 45% in meno di un charter completo); il totale per l'intero velivolo è il prezzo per passeggero × i posti disponibili, come nei voli reali pubblicati dagli operatori.
- Le tratte compaiono sia nella vetrina (
/, sezione Voli dimostrativi (DEMO)) sia nella pagina/coming-soon, con orari di partenza sempre futuri calcolati automaticamente. - I dati sono fittizi e non salvati nel database: servono a mostrare in anteprima come appariranno i voli (aeromobile, posti, prezzo per passeggero) e la UX del servizio.
- Premendo Prenota (DEMO) si apre un modale informativo con il messaggio "Piattaforma in arrivo. Questo è un volo dimostrativo per mostrare la UX del servizio.": nessuna richiesta viene registrata. Se JavaScript è disattivato la stessa frase compare come avviso di sistema in cima alla pagina.