TdP-prove-finali/Introduzione

Applicazione per la Simulazione di Servizi di una Agenzia di Viaggi

Closed this issue · 1 comments

Studente proponente

s296109 Gaudino Andrea

Titolo della proposta

Applicazione per la Simulazione di Servizi di una Agenzia di Viaggi

Descrizione del problema proposto

L’applicazione permetterà all’utente di cercare le soluzioni migliori per il viaggio che intenderà organizzare. Verrà richiesto di inserire una serie di parametri quali la destinazione, il costo, la durata e altri ancora. Il programma sarà in grado di fornire all’utente una serie di offerte di viaggio con eventuali sconti. Verrà quindi chiesto di scegliere l’opzione che rispecchi meglio le richieste e successivamente si procederà con l’acquisto del pacchetto selezionato dopo aver inserito i propri dati anagrafici. L'utente avrà anche la possibilità di dare una valutazione ai viaggi effettuati in precedenza.

Descrizione della rilevanza gestionale del problema

Il programma ha un duplice scopo:
-rendere facile e veloce la scelta degli utenti, aiutandoli nella ricerca di ciò che è meglio per loro
-aiutare la agenzia di viaggi a elaborare le richieste dei clienti, velocizzando il processo di analisi dei dati. Inoltre, con questa applicazione si potrà aggiornare in tempo reale il database e sviluppare facilmente eventuali statistiche

Descrizione dei data-set per la valutazione

Il database utilizzato è stato trovato su Github al seguente link: https://github.com/pavlosdais/Travel-Agency-Database/blob/main/hw2/database/database.sql . Questo dataset contiene dati fittizi utilizzabili per una agenzia di viaggi. Verrà opportunamente modificato poiché la struttura è ottima per gli scopi di questo lavoro, tuttavia i dati contengono sporadici errori
e alcune tabelle sono inutili quindi verranno cancellate. In particolare la tabella "travel_agency_branch" non verrà utilizzata e la sua chiave primaria presente in altre tabelle verrà eliminata. Sarà inserita una nuova tabella chiamata "rating" che conterrà le valutazioni dei viaggi passati. Queste valutazioni saranno generate in maniera randomica con valori generalmente positivi, in questo modo si potrà mostrare all'utente l'apprezzamento di clienti che hanno già svolto una particolare vacanza. Nella tabella "traveler_group" la colonna "family" verrà sostituita da una colonna "group_leader" e conterrà la mail del capo gruppo. La colonna "email" della tabella "traveler" verrà modificata in modo da rendere chiave primaria la mail dei clienti per poterli identificare. Infine verranno generati nuovi pacchetti di viaggio con le date per la stagione 2024/25 in modo che l'applicazione sia il più realistica possibile.

Descrizione preliminare degli algoritmi coinvolti

A seguito dell'inserimento dei parametri scelti dall'utente l'applicazione cercherà tutti i dati utili attraverso una serie di query, successivamente verrà utilizzato un algoritmo di normalizzazione per poter valutare le opzioni migliori. A tal fine verrà chiesto all'utente di mettere i parametri in ordine di importanza per poter generare il peso da dare a ciascuno di questi criteri. La normalizzazione si baserà sul principio di max/min. Il programma calcolerà quindi le soluzioni con punteggio più alto.

Descrizione preliminare delle funzionalità previste per l’applicazione software

Nella prima pagina ci saranno due bottoni, uno per prenotare un viaggio e l'altro per valutarne uno. Per la valutazione verrà chiesto di inserire la propria mail e si dovrà scegliere tra l'elenco dei viaggi effettuati da quell'utente quello a cui si vuole dare un rating, che sarà un voto da 1 a 5.
Per la prenotazione l'applicazione chiederà all'utente di inserire data di partenza, data di ritorno, destinazione (stato) e categoria di costo. Inoltre c'è la possibilità di specificare se le date possano essere flessibili e se il viaggio possa attraversare più paesi oltre a quello selezionato. Opzionalmente si possono inserire città e attrazioni che si vogliono visitare e la lingua parlata dalla guida turistica. Per poter effettuare una ricerca più accurata l'utente potrà specificare l'ordine dei parametri inseriti per rilevanza. Prima di accedere all'elenco delle offerte si chiede se l'utente abbia già acquistato pacchetti vacanze in precedenza presso l'agenzia, in caso affermativo si chiede di inserire la mail per poter identificare il cliente e generare offerte personalizzate; in caso negativo verrà chiesta l'età per la ricerca di offerte scontate. Alla pressione del bottone "ricerca offerte" si aprirà una pagina dove verranno visualizzate le 5 migliori offerte disponibili. A questo punto l'utente potrà sceglierne una oppure chiedere di trovarne altre scegliendo tramite un menù a tendina quale motivazione lo abbia portato a non scegliere le opzioni presentate. Scelta l'offerta si aprirà un nuova pagina nella quale si dovranno immettere i dati anagrafici dell'utente, in caso di utente già presente nel database i campi verranno auto-compilati, ma alcuni di questi saranno sempre modificabili. L'ultima opzione per l'utente è quella di poter essere inserito in un gruppo (per esempio gruppo di amici). Verrà chiesto se si conosce già un gruppo a cui aggregarsi e in tal caso viene domandato il nome del capo-gruppo, altrimenti si può creare un gruppo del quale il cliente sarà leader. Alla pressione del bottone "prenota" verrà visualizzato un messaggio di successo se i dati sono tutti corretti e altrimenti si chiederà di correggere gli errori.