TdP-prove-finali / Introduzione

Istruzioni e documentazione per la proposta e lo svolgimento delle prove finali relative al corso di Tecniche di Programmazione.
http://bit.ly/tecn-progr
Apache License 2.0
4 stars 13 forks source link

Proposta di tesi s268947 #110

Closed Matta-Riccardo closed 9 months ago

Matta-Riccardo commented 10 months ago

Studente proponente

s268947 Matta Riccardo

Titolo della proposta

Regione Puglia trip planner

Descrizione del problema proposto

Il problema proposto consiste nella programmazione delle vacanze nella regione Puglia: sia nella ricerca della struttura ricettiva che nella proposta di attività e luoghi di interesse da poter visitare, con la possibilità di andare a ricercare la sistemazione che più si addica alle nostre preferenze in termini di tipologia di struttura e di località. Una volta individuata la località verrà fornito l’elenco delle attività/luoghi di interesse presenti nelle vicinanze (sempre con la possibilità di filtrare al meglio la ricerca andando a soddisfare una serie di preferenze esprimibili dall’utente) consegnando in fine all’utente un itinerario da poter seguire nelle sue vacanze.

Descrizione della rilevanza gestionale del problema

Tale applicazione è utile per i viaggiatori che intendono recarsi in Puglia a trascorrere dei giorni di vacanza, assistendoli e guidandoli sia nella ricerca della sistemazione che nelle varie attività da fare, in modo tale da soddisfare al meglio le loro richieste. Per quanto riguarda la parte del pernottamento tale applicazione vede la sua utilità nel disporre di un unico “posto” dove poter prendere visione delle varie strutture presenti su tutto il territorio regionale, dando per ognuna i contatti (numeri telefono ed e-mail) per poter contattare l’albergatore e richiedere informazioni sulla disponibilità della struttura stessa. Non è prevista quindi la possibilità di prenotare direttamente la struttura ricettiva, questo perché il dataset utilizzato non prevede dati riguardanti l’occupazione attuale e le disponibilità futura delle singole strutture. Per la parte dei vari luoghi di interesse l’applicazione da all’utente la possibilità di poter visionare un elenco di attrazioni calcolate su alcune preferenze (chilometri di distanza dal luogo di soggiorno e indicare tutte le tipologie di attrazioni che vogliono essere visitate), in assenza di preferenze espresse l’elenco proposto suggerirà un elenco di tutti i luoghi di interesse presenti nella provincia di soggiorno ordinandoli in base alla distanza.

Descrizione dei data-set per la valutazione

I database utilizzati sono stati recuperati dal sito DatiOpen.it (una banca dati di open data) e più in particolare nella sezione turismo: http://www.datiopen.it/it/opendata/Regione_Puglia_Strutture_ricettive http://www.datiopen.it/it/opendata/Regione_Puglia_Luoghi_di_interesse_turistico_culturale_naturalistico In una fase preliminare ho anche in parte corretto qualche mancanza nei dati per poterli successivamente utilizzare al meglio, ma non sono comunque in grado di privare tali dataset di tutte le piccole problematiche quali imprecisioni o mancanze le quali comunque non precludono il loro utilizzo.

Inoltre per una gestione più precisa delle varie località ho creato un piccolo database con le varie coordinate geografiche di tutte le località pugliesi, tali dati sono stati importati dal sito www.dossier.net (ad esempio per le coordinate delle località presenti nella provincia di Bari https://www.dossier.net/utilities/coordinate-geografiche/provincia-bari.htm)

Descrizione preliminare degli algoritmi coinvolti

La ricerca della struttura ricettiva è prevista secondo due modalità, una modalità semplice e una più avanzata. La prima avendo come input la tipologia di struttura e la località nella quale soggiornare, la seconda invece offre la possibilità di ricercare la sistemazione a scelta tra due delle mete più caratteristiche della puglia: soggiorno in una località di mare o soggiorno in una masseria. Per la ricerca nella località di mare si avrà come input la tipologia di struttura e la provincia nella quale cercare mentre per il soggiorno in una delle masserie si avrà come input solo la provincia nella quale cercare dato che la tipologia di struttura è implicita nella ricerca.

Individuata la località nella quale si vuole pernottare sarà possibile procedere alla ricerca dei luoghi di interesse e attrazioni da poter visitare. Dando come input la località di pernottamento e un limite massimo di kilometri di distanza da esso verrà restituito l’elenco di tutte le varie soluzioni trovate, con la possibilità di filtrare tali risultati indicando solo le varie tipologie di attrazioni da prendere in considerazione. Il calcolo sulla distanza è eseguito utilizzando le coordinate di latitudine e longitudine dei comuni nei quali tali attività e attrazioni hanno luogo. Raggruppando tali risultati per località e distanza tale elenco potrà essere adoperato come itinerario da seguire.

Descrizione preliminare delle funzionalità previste per l’applicazione software

L'applicazione si presenterà con due sezioni distinte una per la ricerca della struttura ricettiva e la seconda per la ricerca e definizione delle attività da compiere durante il soggiorno.

La ricerca della struttura è resa possibile tramite la compilazione di alcuni campi, scelte e menù a tendina sia per la ricerca semplice che per quella più specifica, dopo di che verrà popolata una tabellina con i vari risultati trovati e le rispettive informazioni.

Individuata poi la struttura basterà indicare la località nella quale avverrà il soggiorno, un limite massimo di chilometri nel quale cercare e selezionare tutte quelle tipologie di attività che possano interessarci per fornire un elenco personalizzato per ogni utente.

fulcorno commented 9 months ago

Il tipo di applicazione è adeguato, ma ho dei dubbi sulla componente algoritmica. Non mi è chiara la funzionalità di ricerca proposta, dalla lettura mi pare che si voglia generare un elenco di luoghi (che rispettano alcuni criteri) entro una data distanza da un punto centrale. Questo task mi sembra un semplice filtro sulle coordinate, e non implica alcun algoritmo complesso sui dati. Ti chiederei di elaborare maggiormente questa parte: cosa deve specificare l'utente, e quale tipo di risultato può ottenere, in modo da evidenziare la tipologia di ricerca (probabilmente ricorsiva) che sarà implementata.

Un'altra piccola nota: ci sono già stati due lavori sul turismo pugliese: Davide Agostini e Vito Palmisano. Ti chiederei di dare un'occhiata ai loro progetti e verificare che ci siano delle significative differenze (sui data set, sugli algoritmi, sugli obiettivi di calcolo, ecc ecc).

Matta-Riccardo commented 9 months ago

Per quanto riguarda la ricerca che vede come oggetto i vari luoghi di interesse non avevo pensato a una ricerca di tipo ricorsivo: in input l'utente inserirà la località intorno la quale cercare, ovviamente un numero massimo di chilometri e le tipologie di luoghi/attrazioni da individuare; quindi il risultato che verrà generato sarà dovuta a un filtro sia sulla distanza che sulla tipologia, restituendo un elenco il più possibile ordinato. L'aggiunta che poi mi piacerebbe proporgli sarebbe quella di avere una nuova pagina, una nuova scena, che sia collegata alla principale e che possa fungere da riepilogo: una volta generato l'elenco dei luoghi l'utente può selezionare quelli che preferisce e questi verranno salvati all'interno di una apposita tabella del db, in modo tale che l'utente possa ricordarsi dei luoghi da visitare da lui scelti, con la possibilità di cancellare tale selezione di luoghi di interesse qualora l'utente decidesse di effettuare una nuova ricerca, effettuando di conseguenza anche una delete sul db. La scelta di avere una ricerca basata solo su dei semplici filtri l'ho pensata perché da la possibilità all'utente di decidere lui stesso cosa vedere, altrimenti per far generare al programma stesso dovrei imporre un numero massimo di attività e generare un itinerario che permetta di visitare ad esempio 10 luoghi (entro i chilometri fissati come max e tra le varie tipologie selezionate) e che minimizzi i chilometri percorsi, questo però non lo trovavo logico per il semplice fatto che si darebbe per scontato che l'utente si trovi appunto sempre in viaggio e non ritorni in albergo per la notte, quindi ho optato per una ricerca che dia un risultato generale per poi permettere all'utente di personalizzarla e di salvarla direttamente nel db per poterla consultare anche in seguito.