Lark
Γενικά για τη διαδικτυακή εφαρμογή Lark
Η εφαρμογή Lark βασίζεται σε μία βάση δεδομένων όπου είναι καταχωρημένες οι πληροφορίες για τα σημεία ενδιαφέροντος, στη διεπαφή του χρήστη (το περιβάλλον της σελίδας με το οποίο αλληλοεπιδρά ο χρήστης), και σε αλγοριθμικές λειτουργίες που αναλαμβάνουν τη βέλτιστη αναζήτηση, παρουσίαση των αποτελεσμάτων, διαχείριση των πληροφοριών, και παρουσίαση προτεινόμενων διαδρομών.
Προτεινόμενες διαδρομές και επίλυση προβλήματος TSP (Travelling Salesman Problem)
Για την παρουσίαση των προτεινόμενων διαδρομών, είναι απαραίτητη η επίλυση του λεγόμενου «Traveling Salesman Problem»: πρόκειται για την εύρεση της βέλτιστης διαδρομής που περνάει από καθορισμένο αριθμό σημείων.
Η επίλυση του προβλήματος TSP έγινε με «Brute Force» λογική. Αναζητάμε την βέλτιστη διαδρομή στον γράφο διαδρομών με αναδρομικό τρόπο έχοντας ως μεταβλητή κόστους το μήκος της διαδρομής. Ως είσοδο στον παραπάνω αλγόριθμο δίνεται μία λίστα από σημεία φιλτραρισμένα από τις προτιμήσεις που εισήγαγε ο χρήστης (Tour style, People). Σε περίπτωση που ο χρήστης επιτρέψει στην εφαρμογή να ανακτήσει τις πληροφορίες της τοποθεσίας του, η παραπάνω λίστα ταξινομείται ως προς την απόσταση από την τοποθεσία του χρήστη. Τέλος, η διαδρομή που προκύπτει ως έξοδος από τον αλγόριθμο προσαρμόζεται ώστε να μην υπερβαίνει το χρόνο που έχει ορίσει ο χρήστης.
Έξτρα περιεχόμενο
Για τον εμπλουτισμό της υπάρχουσας βάσης, δίνεται η δυνατότητα στον χρήστη τύπου Guide να προσθέσει έξτρα περιεχόμενο σε κάποιο σημείο ενδιαφέροντος. Με αυτό το τρόπο, γίνονται γνωστά όλα τα «μυστικά» του και είναι διαθέσιμα στο κοινό. Το περιεχόμενο αυτό μπορεί να βαθμολογηθεί από τους χρήστες που το έχουν ξεκλειδώσει, έτσι ώστε να ξεχωρίσουν αυτά που έχουν και το μεγαλύτερο ενδιαφέρον.
Σημειώνεται πως η δυνατότητα ξεκλειδώματος extra content, δίνει τη δυνατότητα για επεκτάσεις με εισαγωγή του στοιχείου του gamification (το περιεχόμενο ξεκλειδώνει πχ με κάποιες αποστολές), ή της αγοράς του περιεχομένου από χρήστες Tourists και πληρωμή προς χρήστες Guides.
Ενδεικτικά το extra content μπορεί να κεντρίζει το ενδιαφέρον του χρήστη με φράσεις όπως: «Ήξερες ότι ο ιστός του Λευκού Πύργου κρύβει από πίσω του μια ιστορία;» και «Τι κρύβεται κάτω από το campus του Α.Π.Θ.;».
Άντληση δεδομένων και γεωγραφικοί προσδιορισμοί
Η άντληση των δεδομένων έγινε κυρίως από το API της Wikipedia. Με προσανατολισμό στα ιστορικά σημεία της πόλης, εμπλουτίσαμε την εφαρμογή με εικόνες και ιστορικές πληροφορίες. Ο γεωγραφικός προσδιορισμός υλοποιήθηκε με αιτήματα στο Google Maps μεσω Python script. Σημαντικό ποσοστό της πληροφορίας επίσης προέρχεται από άλλες πηγές ανοιχτών δεδομένων όπως το www.geodata.gov.gr, opendata.thessaloniki.gr, κ.α
API
Όλη η πληροφορία που θα παράγεται μέσω της εφαρμογής παρέχεται μέσω του Lark API. Αυτή τη στιγμή είναι διαθέσιμα 2 ειδών queries:
⦁ Category query το οποίο καλείται μέσω μεθόδου GET στην http://lark.gr/api/categories και επιστρέφει σε μορφή json όλες τις κατηγορίες των σημείων που υπάρχουν στην εφαρμογή.
⦁ Place by category query το οποίο καλείται ως http://lark.gr/api/placesByCategory?catId=ID και επιστρέφει όλα τα μέρη που ανήκουν στην κατηγορία με αριθμό ID.
Εργαλεία και λογισμικό για την υλοποιήση
⦁ GVM
⦁ Groovy
⦁ Grails
⦁ Tomcat
⦁ MySQL
⦁ Subversion
⦁ Materialize framework
⦁ Bootstrap framework
⦁ jQuery
⦁ Open street maps
⦁ Leaflet
⦁ Wikipedia API