Back
Business

JavItaAirlines

Sistema Avanzato di Biglietteria Aerea

πŸ“‹ Descrizione Progetto

JavItaAirlines Γ¨ un sistema completo di biglietteria aerea che gestisce prenotazioni voli con classi di servizio differenziate, programma fedeltΓ  membership, calcolo prezzi dinamico e gestione orari. Include validazione avanzata dei dati, gestione date/orari con LocalDate e LocalTime, e generazione biglietti in formato HTML.

✈️ Classi di Servizio

Classe Tariffa/km Descrizione
BASIC €0.10/km Classe economy standard
SILVER €0.20/km Classe business con servizi premium
GOLD €0.50/km Prima classe con servizi esclusivi

🎫 Programma Membership

Livello Sconto Vantaggi
NONE 0% Nessun programma fedeltΓ 
SILVER 20% Membro silver con sconto base
GOLD 30% Membro gold con sconto premium

✨ Funzionalità Principali

🎯 Gestione Biglietti

  • ID biglietto univoco
  • Distanza tratta (1-1000 km)
  • Selezione classe di servizio
  • Selezione tipo membership
  • Validazione completa dati

πŸ“… Date e Orari

  • Data partenza con LocalDate
  • Orario partenza con LocalTime
  • Orario arrivo con LocalTime
  • Formato ISO standard (YYYY-MM-DD)
  • Parsing automatico date/orari

πŸ’° Calcolo Prezzi

  • Pricing dinamico km Γ— tariffa
  • Applicazione sconto membership
  • Calcolo totale automatico
  • Visualizzazione dettagliata costi
  • Sistema enum per tariffe

πŸ“„ Generazione Output

  • Biglietto formato testo (console)
  • Biglietto formato HTML
  • Template personalizzabili
  • Salvataggio automatico
  • Esportazione print/ directory

πŸ—οΈ Architettura del Progetto

Entity Models

View Layer

Demo e Test

πŸ”§ Algoritmi Chiave

Calcolo Prezzo Base

basePrice = km Γ— serviceClass.pricePerKm
Example: 500 km Γ— €0.20 (SILVER) = €100

Applicazione Sconto Membership

finalPrice = basePrice Γ— (1 - membershipType.discount)
Example: €100 Γ— (1 - 0.20) [SILVER 20%] = €80

Validazione Biglietto

πŸ’» Tecnologie e Pattern

πŸ“€ Processo di Emissione Biglietto

  1. Input Dati Base: Richiesta ID, km, classe servizio, membership
  2. Input Date/Orari: Raccolta data partenza, orario partenza e arrivo
  3. Validazione: Controllo validitΓ  tutti i dati inseriti
  4. Retry se Invalido: Loop fino a inserimento dati corretti
  5. Calcolo Prezzo: Applicazione tariffa e sconto membership
  6. Visualizzazione: Rendering biglietto in formato testo
  7. Esportazione HTML: Salvataggio opzionale in print/[ID]_biglietto.html

πŸ“ Package Structure

com.generation.jia.main
└── Main
com.generation.jia.model.entities
β”œβ”€β”€ AirlineTicket
β”œβ”€β”€ ServiceClass (enum)
└── MembershipType (enum)
com.generation.jia.view
└── JavaitaView
com.generation.jia.demo
└── JavaitaAirplaneDemo
com.generation.jia.test
└── JavaitaTest
com.generation.library
β”œβ”€β”€ Console
β”œβ”€β”€ FileWriter
└── Template

πŸŽ“ Concetti Appresi

✈️ Esempio Caso d'Uso

Scenario: Cliente Gold membership prenota volo business da Milano a Roma

πŸ”— Visualizza Codice su GitHub