Τ.Ε.Ι. Καβάλας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Βιομηχανικής Πληροφορικής

Σχετικά έγγραφα
Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Μια καλή επιλογή θα ήταν (χωρίζοντας τις λέξεις με παύλα -) ή

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

6 Εισαγωγή στο Wordpress 3.x

XAMPP Apache MySQL PHP javascript xampp

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Εργαλεία ανάπτυξης εφαρμογών internet Ι

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Epsilon Net PYLON Platform

Διαχειριστικό σύστημα ονομάτων χώρου

Παραδοτέο Π5.3: Έντυπο και ψηφιακό υλικό (Web site) προβολής των δράσεων έργου

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

Προγραμματισμός διαδικτυακών εφαρμογών με PHP

Εργαλεία ανάπτυξης εφαρμογών internet Ι

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 2 24/01/2012

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΕΡΓΑΣΤΗΡΙΟ 1: Εισαγωγή, Χρήσιμες Εφαρμογές

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ:

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Διαχείριση Βάσης Δεδομένων (dbadmin)

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

1 ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΑΣ ΓΕΩΠΟΝΙΑΣ - ΤΜΗΜΑ ΦΥΤΙΚΗΣ ΠΑΡΑΓΩΓΗΣ


ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ.

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Open eclass Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

PRISMA Win POS Sync Merge Replication

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Εγκατάσταση Joomla! Στο ΠΣΔ. 1. Μεταβαίνουμε στο και συνδεόμαστε στο λογαριασμό μας. 2. Μεταβαίνουμε στο «MySch»

Στρατηγική ανάπτυξη δικτυακού κόμβου

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης

Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης

«Διαδικτυακή Εφαρμογή Διαχείρισης Αιθουσιολογίου-Ημερολογίου»

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

Περιεχόμενα. Αντί προλόγου Πώς να χρησιμοποιήσετε το βιβλίο Κεφάλαιο 1: Πώς δημιουργώ το Προφίλ μου στο Facebook;...

Βασικές Έννοιες Web Εφαρμογών

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Σχεδιασμός Βάσεων Δεδομένων

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) Αθήνα, 16 Μαρτίου Εισαγωγή

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου

Οδηγός Χρήσης Εργαστηρίων UNIX (LINUX) B103 και 103 και απομακρυσμένης πρόσβασης με την χρήση X2Go

Δημοσίευση στο Διαδίκτυο

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA

Με την αλλαγή των μεταβλητών σελιδοποίησης αυτόματα ρυθμίζετε το νέο όριο για τα άρθρα και τα αποτελέσματα αναζήτησης.

Ο Οδηγός γρήγορης εκκίνησης

Περιπτώσεις Χρήσης για το Π.Σ. ΜΟ.ΔΙ.Π. Κρήτης

Οδηγίες Χρήσης της MySQL

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής Πρόλογος... 11

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ

SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Το σύστημα θα πρέπει να σχεδιαστεί με τρόπο που θα ικανοποιήσει τις απαιτήσεις του χρήστη εύκολα.

Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

SGA Διαχείριση Πρωτόκολλου

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

Εγχειρίδιο εγκατάστασης Megasoft 2009

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb)

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Οδηγός Χρήσης Εργαστηρίων UNIX (LINUX) B103 και 103 και απομακρυσμένης πρόσβασης με την χρήση Free NX

Manual. Εκλογές 15μελούς Σχολείου v4.0 Module καταχώρησης ψηφοδελτίων από την Εφορευτική Επιτροπή

ΠΛΗΡΟΦΟΡΙΑΚΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΚΑΤΑΣΚΕΥΗΣ ΚΑΙ ΑΝΑΚΑΙΝΙΣΗΣ ΑΚΙΝΗΤΩΝ

Ιδρυματικό Αποθετήριο ΤΕΙ ΠΕΙΡΑΙΑ

Ενημερωτικός οδηγός για τον εξυπηρετητή Ada

Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning

Υπηρεσία διαμοιρασμού αρχείων

Η HTML 5 θα αλλάξει το Web?

Joomla! with K2 - User Guide

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

SITEBUILDER ΠΛΑΤΦΟΡΜΑ ΑΥΤΟΝΟΜΗΣ ΚΑΤΑΣΚΕΥΗΣ & ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΑΚΩΝ ΤΟΠΩΝ (WEBSITE) ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Version 2.0

Άσκηση. Εξοικείωση με την πλατφόρμα Moodle

Transcript:

Τ.Ε.Ι. Καβάλας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Βιομηχανικής Πληροφορικής Υπεύθυνος Καθηγητής: Δρ.Αύγουστος Τσινάκος Φοιτήτριες: Ηλιάνα Μπούσιου Αικατερίνη Παπαϊωάννου ΚΑΒΑΛΑ, Οκτώβριος 2007

Περιεχόμενα Περιεχόμενα... 3 Λίστα Εικόνων... 6 Λίστα Σχημάτων... 7 Πρόλογος... 8 Επισκόπηση Κεφαλαίων... 9 1. Εισαγωγικά... 11 1.1 Έρευνα & Συγκέντρωση Υλικού... 11 1.1.1 Αναπαράσταση Εικονικής Πραγματικότητας... 11 1.1.2 Εύρεση Κώδικα Συντομότερης Διαδρομής... 11 1.1.3 Περιβάλλον υλοποίησης... 12 1.1.4 Απαιτούμενος Εξοπλισμός... 12 1.2 Αρχικός Σχεδιασμός & Συνένωση Τμημάτων... 13 1.3 Σύνοψη... 14 2. Σχεδίαση & Ανάλυση Απαιτήσεων... 16 2.1 Σχεδιασμός & Γραφικά... 16 2.1.1 Sites με Virtual Tour... 16 2.2 Απαιτήσεις... 16 2.3 Προδιαγραφές... 17 2.3 Διαγράμματα Ροής... 21 2.4 Σύνοψη... 23 3.Υλοποίηση Εφαρμογής... 25 3.1 Προϊόντα Λογισμικού... 25 3.1.1 Apache Server... 25 3.1.2 PHP... 25 3.1.3 MySQL... 26 3.1.4 phpmyadmin... 27 3.1.5 Adobe Photoshop... 28 3.1.6 Panorama Factory... 28 3.1.7 ConceptDraw... 29 3.2 Υλοποίηση Εφαρμογής... 29 3.2.1 Εγκατάσταση Apache, PHP, MySQL σε Windows... 29 3.2.2 Επικοινωνία της βάσης δεδομένων MySQL μέσω της PHP... 30 3.2.3 Εμφάνιση ιστοσελίδας... 31 3.2.3.1 CSS... 31 3.2.4 Javascripts... 31 3.2.5 IP addresses... 32 3.2.5.1 Function ip2long()... 32 3.2.6 Ο Αλγόριθμος Συντομότερης Διαδρομής του Dijkstra... 32 3.2.7 Προστασία των σελίδων του διαχειριστή... 34 3

3.3 Η Σπουδαιότητα της Καλής Σχεδίασης της Βάσης Δεδομένων... 34 3.3.1 Σχεδιασμός & Ανάλυση Οντοτήτων... 35 3.3.2 Μοντέλο Οντοτήτων Συσχετίσεων... 38 3.3.3 Ανάλυση των πεδίων κάθε πίνακα... 40 3.4 Δομή Φακέλων και Αρχείων... 42 3.4.1 Σελίδες Επισκέπτη... 42 3.4.2 Σελίδες Διαχειριστή... 43 3.5 Σύνοψη... 43 4. Ανάλυση Δυνατοτήτων & Λειτουργιών Ιστοσελίδας... 45 4.1 Ανάλυση Λειτουργιών Επισκέπτη Ιστοσελίδας... 45 4.1.1 Επιλογές αρχικής σελίδας... 46 4.1.2 Επιλογές Αιθουσών / Χώρων... 48 4.1.3 Απαιτήσεις & Προτεινόμενες ρυθμίσεις ιστοσελίδας... 51 4.2 Ανάλυση Λειτουργιών Διαχειριστή Ιστοσελίδας... 51 4.2.1 Διαχείριση Αιθουσών... 52 4.2.1.1 Προσθήκη Αίθουσας... 53 4.2.1.2 Επεξεργασία Αίθουσας... 53 4.3.1 Διαχείριση Φωτογραφιών... 54 4.3.1.1 Προσθήκη Φωτογραφίας... 54 4.3.1.2 Επεξεργασία Φωτογραφίας... 55 4.4.1 Διαχείριση Κατηγοριών... 56 4.4.1.1 Προσθήκη Κατηγορίας... 56 4.4.1.2 Επεξεργασία Κατηγορίας... 56 4.5.1 Διαχείριση Μαθημάτων... 57 4.5.1.1 Εισαγωγή Μαθήματος... 57 4.5.1.2 Επεξεργασία Μαθήματος... 57 4.6.1 Διαχείριση IP... 58 4.6.1.1 Προσθήκη IP Διεύθυνσης... 58 4.6.1.2 Επεξεργασία IP Διεύθυνσης... 59 4.7.1 Αποσύνδεση Διαχειριστή... 59 4.8 Σύνοψη... 59 5. Γενική ανασκόπηση της εργασίας... 61 5.1 Επεκτάσεις του site... 61 5.2 Test λειτουργικότητας του site στο internet... 61 5.3 Συμπεράσματα... 62 Βιβλιογραφία... 63 4

Περιεχόμενα Παραρτήματος Υλοποιημένος κώδικας σε PHP & MySQL...CD Σελίδες επισκέπτη...4 calpath.php...4 classphotos.php...6 config.php...8 credits.php...9 db.php...9 dijkstra.php...10 functions.js...13 index.htm...15 info.php...15 main.php...16 map.php...21 menu.php...22 movie.php...23 notavailable.php...24 routes.php...24 style.css...29 theme.php...30 virtualtours_map.php...31 Σελίδες Διαχειριστή...34 admin-menu.php...34 classes.php...35 courses.php...38 editclass.php...42 editcourses.php...45 editip.php...48 editphoto.php...50 groups.php...52 ip_addresses.php...54 photos.php...57 protect.php...59 theme.php...60 uploadmov.php...62 uploadphoto.php...63 5

Λίστα Εικόνων Εικόνα 1: Το εσωτερικό ενός server computer... 12 Εικόνα 2: Αρχικό σχέδιο του site στο Photoshop... 13 Εικόνα 3: Κεντρική σελίδα phpmyadmin 2.6.1... 27 Εικόνα 4: Κεντρικό μενού του Panorama Factory V4... 29 Εικόνα 5: Κεντρική σελίδα Virtual Plan... 45 Εικόνα 6 : Επιλογή Εικονικής Περιήγησης στην αρχική σελίδα... 46 Εικόνα 7: Επιλογή Εύρεση Διαδρόμων στην αρχική σελίδα... 47 Εικόνα 8: Σελίδα με εύρεση συντομότερης διαδρομής... 47 Εικόνα 9 : Επιλογή Αναζήτηση Αίθουσας στην αρχική σελίδα... 48 Εικόνα 10: Σελίδα Εργαστηρίου UNIX... 49 Εικόνα 11: Παράθυρο με quicktime video... 50 Εικόνα 12: Σελίδα με φωτογραφίες του Εργαστηρίου UNIX... 50 Εικόνα 13: Κεντρικό μενού Διαχειριστή... 52 Εικόνα 14: Φόρμα προσθήκης νέας αίθουσας... 53 Εικόνα 15: Σελίδα επεξεργασίας αίθουσας... 53 Εικόνα 16: Pop up παράθυρο για ανέβασμα αρχείου... 54 Εικόνα 17: Φόρμα εισαγωγής νέας φωτογραφίας σε αίθουσα... 55 Εικόνα 18: Σελίδα επεξεργασίας Φωτογραφίας... 56 Εικόνα 19: Φόρμα εισαγωγής νέας κατηγορίας... 56 Εικόνα 20: Φόρμα Επεξεργασίας Κατηγορίας... 57 Εικόνα 21: Φόρμα εισαγωγής νέου μαθήματος... 57 Εικόνα 22: Επεξεργασία Μαθήματος... 57 Εικόνα 23: Φόρμα Εισαγωγής IP διεύθυνσης... 58 Εικόνα 24: Παράδειγμα προσθήκης νέας IP... 59 6

Λίστα Σχημάτων Σχήμα 1: Δ.Ρ. Επισκέπτη... 21 Σχήμα 2: Δ.Ρ. Διαχειριστή... 22 Σχήμα 3: Αλγόριθμος Dijkstra... 33 Σχήμα 4: οντότητα classes... 35 Σχήμα 5: οντότητα course_type... 35 Σχήμα 6: οντότητα courses... 36 Σχήμα 7: οντότητα groups... 36 Σχήμα 8: οντότητα ip_address... 36 Σχήμα 9: οντότητα ktiria... 37 Σχήμα 10: οντότητα maps... 37 Σχήμα 11: οντότητα photos... 37 Σχήμα 12: Μ.Ο.Σ.... 39 Σχήμα 13: μορφή IP διεύθυνσης... 58 7

Πρόλογος Ανάπτυξη Virtual Plan του τμήματος Βιομηχανικής Πληροφορικής είναι ο τίτλος της πτυχιακής που ζητήθηκε να υλοποιηθεί και αποτελεί κομμάτι της κεντρικής ιστοσελίδας του τμήματος Βιομηχανικής Πληροφορικής του ΤΕΙ Καβάλας στο internet. Ο στόχος αυτής της εργασίας είναι η καταγραφή των χώρων της σχολής που πραγματοποιούνται τα θεωρητικά και εργαστηριακά μαθήματα σε εικονική αναπαράσταση. Σκοπός είναι να βοηθήσει κυρίως τους πρωτοετείς αλλά και τους υποψήφιους φοιτητές της στη γνωριμία με τη σχολή που έχουν επιλέξει να φοιτήσουν. Συγκεκριμένα το site περιλαμβάνει ένα γενικό σχεδιάγραμμα των χώρων της σχολής για εύκολη περιήγηση σε οποιοδήποτε χώρο αλλά και ειδικές σελίδες για κάθε αίθουσα που χρησιμοποιείται από τους σπουδαστές του τμήματος. Η κάθε αίθουσα έχει πληροφορίες για τα μαθήματα που διεξάγονται, σε ποιο σημείο του συγκροτήματος του ΤΕΙ βρίσκεται, τον εξοπλισμό που διαθέτει (Η/Υ, εκτυπωτές κτλ), φωτογραφίες και μια εικονική περιήγηση βασισμένη στο QuickTime VR που αποτελείται από μια πανοραμική φωτογραφία του χώρου με περιστροφή 360 ο προς όποια κατεύθυνση επιθυμεί ο επισκέπτης. Η περιήγηση περιλαμβάνει ζουμ αλλά και «εικονική μεταφορά» στους γύρω χώρους (σε όσους είναι προσβάσιμη). Επιπλέον ο επισκέπτης θα μπορεί να βρει την πιο σύντομη διαδρομή από ένα σημείο του ΤΕΙ σε κάποιο άλλο, που θα επιλέξει ο ίδιος. Υπάρχει επίσης η δυνατότητα αναζήτησης κάποιου μαθήματος της σχολής ώστε ο επισκέπτης να μπορεί να βρει σε ποια αίθουσα πραγματοποιείται. Όλες οι παραπάνω λειτουργίες διαχειρίζονται από το Control Panel του διαχειριστή (administrator) του site και έτσι γίνεται δυνατή η άμεση και εύκολη τροποποίηση οποιουδήποτε μέρους του site και χωρίς ιδιαίτερες γνώσεις σε προγραμματισμό. Συνολικά, η εικονική αυτή ξενάγηση (Virtual Tour) θα είναι εύχρηστη για κάθε χρήστη του internet, οποιοδήποτε γνωστικού επιπέδου αφού βασίζεται σε αρκετά απλές λειτουργίες. Επιπλέον η εξάπλωση του «γρήγορου internet» (ADSL), τόσο στα εκπαιδευτικά ιδρύματα όσο και στα σπίτια, κάνει ευκολότερη και γρηγορότερη την πρόσβαση σε σχέση με τις πιο αργές συνδέσεις του παρελθόντος. Στην πτυχιακή αυτή εργασία εξετάζονται και τεκμηριώνονται οι τρόποι με τους οποίους σχεδιάστηκαν, αναπτύχθηκαν και υλοποιήθηκαν όλα τα παραπάνω. 8

Επισκόπηση Κεφαλαίων Το πρώτο κεφάλαιο έχει ως στόχο να φέρει σε «επαφή» τον αναγνώστη με την έρευνα και το υλικό που συλλέχτηκε καθώς και τα απαραίτητα προγράμματα και εξοπλισμό που επιλέχτηκαν για την εκπόνηση της. Στο δεύτερο κεφάλαιο περιγράφεται ο σχεδιασμός του site και εξηγείται η επιλογή του συγκεκριμένου σχεδιαστικού πλάνου. Ακόμη εμπεριέχει την ανάλυση απαιτήσεων και προδιαγραφών που θα ακολουθεί το site και γίνεται αμεσότερη η επεξήγηση τους με χρήση διαγραμμάτων. Στην συνέχεια στο τρίτο κεφάλαιο περιγράφεται εκτενέστερα και διαδοχικά η διαδικασία υλοποίησης του site, η ανάλυση των προϊόντων λογισμικού των οποίων κάναμε χρήση καθώς και η σχεδίαση και σταδιακή ανάπτυξη τής δομής της βάσης δεδομένων. Το τέταρτο κεφάλαιο επικεντρώνεται στην ανάλυση των λειτουργιών της σελίδας καθώς και των διαφορετικών δυνατοτήτων, επιλογών και λειτουργιών που μπορεί να έχει ο χρήστης ανάλογα με την ιδιότητα του, ως απλός χρήστης ή ως διαχειριστής τους συστήματος. Τέλος, στο 5ο κεφάλαιο, δίνεται βάση στην αξιολόγηση και εξετάζονται τεχνικές βελτίωσης ή περαιτέρω ανάπτυξης του site. 9

10

1. Εισαγωγικά Ξεκινώντας την τεκμηρίωση της εργασίας, θα αναφερθούν οι τρόποι με τους οποίους επιτεύχθηκε η σχεδίαση και η υλοποίησή της για το επιθυμητό αποτέλεσμα. Ως σημείο αναφοράς δεν υπάρχει κάποιο αντίστοιχο site οπότε χρειάστηκε αρκετή έρευνα γύρω από το θέμα. 1.1 Έρευνα & Συγκέντρωση Υλικού Για την υλοποίηση αυτής της εργασίας χρειάστηκαν διάφορα μέσα, που μετά από αναζήτηση στο internet ή προηγούμενη χρήση, χρησιμοποιήθηκαν αυτά που θεωρήθηκαν τα καταλληλότερα. 1.1.1 Αναπαράσταση Εικονικής Πραγματικότητας Από τα πρώτα στάδια σχεδίασης της εφαρμογής υπήρχε το θέμα ότι για να γίνει μια πειστική αναπαράσταση των χώρων που πρέπει να παρουσιαστεί, μια απλή φωτογραφία για τον κάθε χώρο δεν θα ήταν αρκετή. Μια λύση θα μπορούσε να είναι η δημιουργία αναπαράστασης των χώρων σε τρισδιάστατη μορφή, χρησιμοποιώντας τη γλώσσα VRML (Virtual Reality Modeling Language) που μπορεί να αποδώσει και interactive γραφικά. Το μειονέκτημα σε αυτή την περίπτωση όμως έγκειται στο γεγονός ότι η αναπαράσταση των χώρων θα γινόταν με γραφικό τρόπο (σαν 3D σχέδιο) και δεν θα μπορούσε να αποδώσει την πραγματική έννοια του χώρου με όλα τα αντικείμενα που το περιβάλλουν. Μετά από εκτενέστερη αναζήτηση στον παγκόσμιο ιστό μέσω του internet, η κατάληξη ήταν στη λύση της δημιουργίας βίντεο εικονικών πανοραμάτων με περιστροφή 360 ο ανάλογα με την κατεύθυνση που ορίζει ο χρήστης. Για τη δημιουργία αυτών των βίντεο χρησιμοποιήθηκε το πρόγραμμα Panorama Factory (version 4) το οποίο δημιουργεί πανοραμικές φωτογραφίες και τις μετατρέπει σε.mov. Το αρχείο τύπου.mov είναι το format για βίντεο με το QuickTime και το υποστηρίζουν όλοι οι υπολογιστές και τα λειτουργικά συστήματα και επιπλέον διατίθεται δωρεάν από την ιστοσελίδα της Apple. (Apple, 2006) Ο επισκέπτης της ιστοσελίδας θα έχει την δυνατότητα να αλληλεπιδρά με το περιβάλλον που παρουσιάζεται με φυσικό τρόπο και σε πραγματικό χρόνο. Γι αυτό θα του δίνεται η επιλογή να περιηγηθεί προς όλες τις κατευθύνσεις,να «περπατήσει» μέσα στο χώρο ή και να επικεντρωθεί σε κάποιο σημείο της επιλογής του. 1.1.2 Εύρεση Κώδικα Συντομότερης Διαδρομής Ένα μέρος της πτυχιακής περιλαμβάνει την εύρεση της συντομότερης διαδρομής για τη μετάβαση από κάποιο σημείο του τμήματος σε κάποιο άλλο. Για το σκοπό αυτό 11

αναζητήθηκαν προηγούμενες προσεγγίσεις που έχουν γίνει και επιλύουν το συγκεκριμένο πρόβλημα. Οι δύο πιο γνωστές είναι ο αλγόριθμος του Traveling Salesman (Travelling Salesman problem, 2007) και ο αλγόριθμος του Dijkstra. (Dijkstra s Algorithm, 2007). Ο πρώτος αλγόριθμος εμφανίζει την συντομότερη διαδρομή κάνοντας χρήση όλων των σημείων που έχουν δοθεί ενώ ο δεύτερος βρίσκει τη συντομότερη διαδρομή μεταξύ μόνο δυο σημείων που έχουν ορισθεί εξ αρχής από το χρήστη. Ο δεύτερος αλγόριθμος ήταν αυτός που κάλυπτε τις ανάγκες της πτυχιακής, οπότε υλοποιήθηκε και χρησιμοποιήθηκε αυτός ο αλγόριθμος. Σε επόμενο κεφάλαιο θα παρουσιαστεί αναλυτικότερα ο αλγόριθμος αυτός και ο τρόπος που χρησιμοποιήθηκε. 1.1.3 Περιβάλλον υλοποίησης Σύμφωνα με τις προδιαγραφές, η εν λόγω εργασία θα υλοποιηθεί σε περιβάλλον phpmysql. Για την πλήρη λειτουργία της Web εφαρμογής μας, τα υποσυστήματα που είναι απαραίτητο να είναι εγκατεστημένα στο σύστημα είναι η εγκατάσταση ενός Apache Server, ο οποίος να υποστηρίζει PHP και MySQL. Servers που υποστηρίζουν αυτά είναι FreeBSD, Solaris, και Linux. Εικόνα 1: Το εσωτερικό ενός server computer 1.1.4 Απαιτούμενος Εξοπλισμός Για τις φωτογραφίες των χώρων χρησιμοποιήθηκαν δυο ψηφιακές φωτογραφικές μηχανές (SONY CyberShot P52 και Olympus μ700) καθώς και δυο τρίποδες για την κάθε μια. 12

1.2 Αρχικός Σχεδιασμός & Συνένωση Τμημάτων Επόμενο βήμα είναι ο σχεδιασμός της εμφάνισης του site. Όπως σε πολλά projects έτσι και εδώ η τελική μορφή του site διαφέρει σε σχέση με την αρχική, αλλά το concept παραμένει το ίδιο. Δοκιμάζοντας διάφορες τεχνικές, η κατάληξη ήταν στο «χώρισμα» της σελίδας σε 2 frames διότι η λίστα με τις αίθουσες είχε αρκετές επιλογές και για λόγους λειτουργικότητας τοποθετήθηκαν όλες στο αριστερό frame που αποτελεί και το standard μενού του site. Εικόνα 2: Αρχικό σχέδιο του site στο Photoshop Στη συνέχεια σχεδιάστηκε ένα προσχέδιο της εμφάνισης στο Photoshop, ώστε να πραγματοποιηθεί το «σπάσιμο» σε τμήματα και να αρχίσει την υλοποίησή του. Το επόμενο και πιο πολύπλοκο βήμα ήταν η συγγραφή του κώδικα του site. Ταυτόχρονα σχεδιάστηκε η βάση δεδομένων για να εκτελούνται δυναμικά όλες οι σελίδες του site αλλά και διάφορες άλλες εντολές. Μέρος του κώδικα αποτελεί και ο αλγόριθμος του Dijkstra για την εύρεση της συντομότερης διαδρομής, ο οποίο αρχικά δοκιμάστηκε σε Javascript. Επειδή έπρεπε να γίνουν αρκετές αλλαγές για την προσαρμογή του στο site και θα έπαιρνε αρκετό χρόνο, η αρχική πρόθεση να βρεθεί υλοποιημένος σε PHP συνεχίστηκε. Μετά από αρκετή αναζήτηση στο internet, βρέθηκε ο αλγόριθμος σε PHP, (Dijkstra s Algorithm in PHP, 2007) που όμως και εδώ έπρεπε να τον προσαρμοστεί στα δεδομένα που έχουν οριστεί, όμως είναι πιο εύκολο από ότι θα ήταν σε Javascript. 13

Στα τελικά στάδια ολοκλήρωσης του κώδικα, σχεδιάστηκαν και τα γραφικά που θα έμπαιναν στο site ώστε να γίνει πιο φιλικό προς τον χρήστη. Επίσης προστέθηκαν οι φωτογραφίες για τις αίθουσες και τους χώρους και οι υπόλοιπες πληροφορίες. Τέλος σχεδιάστηκαν οι εικονικές περιηγήσεις με βάση τις φωτογραφίες που είχαν βγει σε προηγούμενη φάση και «συνδέθηκαν» οι κόμβοι των χώρων και των αιθουσών. Ένα μικρό μειονέκτημα του προγράμματος που χρησιμοποιήθηκε για τα VR videos, είναι ότι δεν επέτρεπε τη χρήση του ελληνικού χαρακτήρα «π», οπότε σε links που η περιγραφή τους περιλαμβάνει αυτό το γράμμα, έχει γραφτεί με λατινικούς χαρακτήρες στα greeklish. Ακόμα ένα περιορισμό που έχει το πρόγραμμα αυτό, είναι ότι δεν έχει πολλές επιλογές όσον αφορά τη δημιουργία των links, επειδή δέχεται μόνο στατικές διευθύνσεις. Δηλαδή δεν είναι δυνατόν να γραφούν περισσότερες πληροφορίες, όπως το όνομα του χώρου στο οποίο βρίσκεται ο χρήστης ή σε ποιο σημείο ακριβώς βρίσκεται ο χώρος αυτός. Τέτοιες επιλογές έχουν μόνο προγράμματα για τον υπολογιστή που δημιουργούν stand-alone εφαρμογές. 1.3 Σύνοψη Λόγω του σχεδόν ανύπαρκτου αντίστοιχου υλικού στο internet, η εκτενής έρευνα για τη σχεδίαση του project ήταν το βασικό βήμα που οδήγησε στην περαιτέρω εξέλιξη και ανάπτυξη του site. Στο επόμενο κεφάλαιο θα περιγραφούν οι επιλογές σχεδίασης του site καθώς και οι απαιτήσεις και προδιαγραφές για τη σχεδίαση του. 14

15

2. Σχεδίαση & Ανάλυση Απαιτήσεων 2.1 Σχεδιασμός & Γραφικά Τα πρώτα βήματα που πραγματοποιήθηκαν για την ανάπτυξη του site ήταν από σχεδιαστικής άποψης να είναι απλό στην περιήγησή του, χωρίς δηλαδή να απαιτείται ο επισκέπτης να είναι έμπειρος χρήστης του internet. Έτσι χωρίστηκε η σελίδα σε 2 frames και στο αριστερό θα αναγράφονται όλες οι διαθέσιμες αίθουσες και διαθέσιμοι χώροι που χρησιμοποιούνται από τους φοιτητές του τμήματος κάνοντας έτσι εύκολη και γρήγορη την χρησιμοποίησή τους. 2.1.1 Sites με Virtual Tour Στο internet δεν υπάρχουν πολλά sites αντίστοιχου περιεχομένου. Ενδεικτικά είναι το Virtual Tour του Πανεπιστημίου της Κεντρικής Φλόριδα (Virtual Tour of University of Central Florida, 2006) το οποίο προσφέρει εικονική περιήγηση, φωτογραφίες των χώρων, πληροφορίες και χάρτη της περιοχής. Επίσης το Πανεπιστήμιο του Harvard (Virtual Tour of University of Harvard, 2006) προσφέρει εικονική περιήγηση των χώρων, με πληροφορίες για αυτούς. 2.2 Απαιτήσεις Για κάθε project που ζητείται να υλοποιηθεί περιλαμβάνονται δραστηριότητες που ενέχουν την εξαγωγή των απαιτήσεων. Απαίτηση είναι ένα χαρακτηριστικό του συστήματος ή μια περιγραφή ενός πράγματος που το σύστημα είναι ικανό να κάνει έτσι ώστε να εκπληρώνει το σκοπό του. Οι απαιτήσεις μπορούν να εξυπηρετούν τρεις σκοπούς. Πρώτον, επιτρέπουν στους τεχνολόγους ανάπτυξης να εξηγήσουν τις απόψεις τους σε σχέση με τον τρόπο λειτουργίας του συστήματος που επιθυμεί ο πελάτης. Δεύτερον, οι απαιτήσεις προσδιορίζουν στους σχεδιαστές τη λειτουργικότητα και τα χαρακτηριστικά που πρέπει να διαθέτει το τελικό σύστημα. Και τρίτον, οι απαιτήσεις καθορίζουν στην ομάδα ελέγχου το τι πρέπει να επιδείξει έτσι ώστε να πειστεί ο πελάτης ότι το παραδοτέο project είναι όντως αυτό που ζήτησε. (Pfleeger, 2005) Έτσι και σε αυτό το project, οι λειτουργίες που πρέπει να προσφέρει το σύστημα στον επισκέπτη της ιστοσελίδας είναι οι εξής: Λειτουργικά Χαρακτηριστικά Επισκέπτη: Επιλογή αίθουσας από το μενού με ταξινόμηση σε κατηγορίες 16

Πληροφόρηση για κάθε αίθουσα σχετικά με το τι μαθήματα γίνονται ή τη χρησιμότητα του χώρου Πληροφόρηση για τον τεχνικό εξοπλισμό κάθε εργαστηρίου Εντοπισμός του κάθε χώρου μέσω δυο χαρτών. Ο ένας μας δίνει την κάτοψη του ορόφου που βρίσκεται ο χώρος και ο δεύτερος μας δίνει την κάτοψη του συγκροτήματος του ΤΕΙ και σε ποιο σημείο βρίσκεται ακριβώς. Πανοραμική περιήγηση 180 ο ή 360 ο με το QuickTime VR. Φωτογραφίες του χώρου Εύρεση της πιο σύντομης διαδρομής από ένα σημείο στο άλλο με αλληλεπίδραση με τον χρήστη. Δυνατότητα αναζήτησης & εύρεσης της αίθουσας που πραγματοποιείται το μάθημα που ψάχνει ο επισκέπτης Εντοπισμός IP address επισκέπτη και εμφάνιση ειδικού μηνύματος όταν συνδέεται από τα εργαστήρια του τμήματος Βιομηχανικής Πληροφορικής. Οδηγίες περιήγησης σχετικά με την ιστοσελίδα για ευκολότερη χρήση Το site διαθέτει και ειδικές σελίδες για τον διαχειριστή της, έτσι ώστε να γίνεται δυναμικά και συνεπώς εύκολα και γρήγορα οποιαδήποτε αλλαγή. Λειτουργικά Χαρακτηριστικά Διαχειριστή: Είσοδος με όνομα χρήστη και κωδικό πρόσβασης στο μενού Διαχείριση Αιθουσών (προσθήκη/ επεξεργασία/ διαγραφή) Διαχείριση Φωτογραφιών (προσθήκη/ επεξεργασία/ διαγραφή) Διαχείριση Κατηγοριών (προσθήκη/ επεξεργασία/ διαγραφή) Διαχείριση Μαθημάτων (προσθήκη/ επεξεργασία/ διαγραφή) Διαχείριση IP διευθύνσεων (προσθήκη/ επεξεργασία/ διαγραφή) Αποσύνδεση από το σύστημα διαχείρισης Για την εγκατάσταση της ιστοσελίδας στο διαδίκτυο, είναι απαραίτητος ένας web server (υπολογιστή που «εκδίδει» σελίδες στον παγκόσμιο ιστό) που υποστηρίζει PHP και MySQL. 2.3 Προδιαγραφές Μαζί με τις απαιτήσεις, οι προδιαγραφές είναι ένα άλλο κομμάτι της σχεδίασης που πρέπει να συνταχθεί για την καλύτερη ανάπτυξη του project. Όπως και στις απαιτήσεις έτσι και εδώ, έχουν χωριστεί οι προδιαγραφές σε αυτές του απλού επισκέπτη του site και σε αυτές του διαχειριστή. (Μαρινάγη, 2005) Στους παρακάτω πίνακες περιγράφονται οι διεργασίες του κάθε χρήστη. Προδιαγραφές Διεργασιών Επισκέπτη Όνομα Διεργασίας Περιγραφή ΕΥΡΕΣΗ ΣΥΝΤΟΜΟΤΕΡΗΣ ΔΙΑΔΡΟΜΗΣ Ο επισκέπτης μπορεί να ορίσει 2 σημεία πάνω στο χάρτη του 17

Είσοδος Έξοδος Πηγή Προορισμός ΤΕΙ. Το πρώτο σημείο ορίζει το σημείο προέλευσης και το δεύτερο το σημείο προορισμού. Ο αλγόριθμος που χρησιμοποιείται μας δίνει την πιο σύντομη διαδρομή (περνώντας από άλλα σημεία του χάρτη) -Σημείο προέλευσης -Σημείο προορισμού -Συντομότερη διαδρομή -Επισκέπτης -Σελίδα με αποτέλεσμα Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος Πηγή Προορισμός ΕΥΡΕΣΗ ΑΙΘΟΥΣΑΣ ΒΑΣΗ ΜΑΘΗΜΑΤΟΣ Ο επισκέπτης μπορεί να εισάγει στην ειδική φόρμα ένα μάθημα της σχολής Βιομηχανικής Πληροφορικής και να βρει σε ποια αίθουσα πραγματοποιείται. Όνομα μαθήματος -Ποιες λέξεις-κλειδιά χρησιμοποιήθηκαν -Όνομα μαθήματος -Όνομα αίθουσας που αντιστοιχεί το μάθημα -Επισκέπτης -Σελίδα με αποτέλεσμα Προδιαγραφές Διεργασιών Διαχειριστή Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος Πηγή Προορισμός Όνομα Διεργασίας Περιγραφή Είσοδος ΠΡΟΣΘΗΚΗ ΑΙΘΟΥΣΑΣ Ο διαχειριστής μπορεί να προσθέσει καινούριες αίθουσες στην ιστοσελίδα -Όνομα αίθουσας -Επιλογή κατηγορίας αίθουσας -Εξοπλισμός Στοιχεία αίθουσας Διαχειριστής Σελίδα διαχείρισης αιθουσών ΕΠΕΞΕΡΓΑΣΙΑ / ΔΙΑΓΡΑΦΗ ΑΙΘΟΥΣΑΣ Ο διαχειριστής μπορεί να επιλέξει την επεξεργασία της αίθουσας ώστε να προσθέσει νέα στοιχεία, όπως κεντρική φωτογραφία και πανοραμικό βίντεο ή να τροποποιήσει τα στοιχεία του. Στην περίπτωση της διαγραφής, σβήνονται όλα τα στοιχεία της αίθουσας και η ίδια η αίθουσα. -Όνομα αίθουσας -Επιλογή κατηγορίας αίθουσας -Εξοπλισμός 18

Έξοδος Πηγή Προορισμός -Panoramic movie -Κεντρική φωτογραφία -Ενημερωμένα στοιχεία -Διαγραφή -Διαχειριστής -Σελίδα επεξεργασίας αιθουσών Σελίδα διαχείρισης αιθουσών Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος Πηγή Προορισμός ΠΡΟΣΘΗΚΗ ΦΩΤΟΓΡΑΦΙΑΣ Ο διαχειριστής μπορεί να προσθέσει επιπλέον φωτογραφίες για κάθε αίθουσα. -Όνομα αίθουσας -Σχόλιο φωτογραφίας Στοιχεία φωτογραφίας Διαχειριστής Σελίδα διαχείρισης φωτογραφιών Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος Πηγή Προορισμός ΕΠΕΞΕΡΓΑΣΙΑ / ΔΙΑΓΡΑΦΗ ΦΩΤΟΓΡΑΦΙΑΣ Ο διαχειριστής μπορεί να κάνει upload τη φωτογραφία που θέλει και να αλλάξει τα σχόλια ή την αίθουσα που αντιστοιχεί η φωτογραφία. Στην περίπτωση της διαγραφής, διαγράφεται η φωτογραφία και όλα τα στοιχεία της. -Όνομα αίθουσας που αντιστοιχεί η φωτογραφία -Σχόλια φωτογραφίας -upload φωτογραφίας από Η/Υ -Ενημερωμένα στοιχεία -Διαχειριστής -Σελίδα επεξεργασίας φωτογραφιών Σελίδα διαχείρισης φωτογραφιών Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος Πηγή Προορισμός Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος ΠΡΟΣΘΗΚΗ ΚΑΤΗΓΟΡΙΑΣ Ο διαχειριστής μπορεί να προσθέσει κάποια καινούρια κατηγορία, για καλύτερη ταξινόμηση των αιθουσών του τμήματος. -Όνομα κατηγορίας αίθουσας -Ονομασία κατηγορίας -Διαχειριστής -Σελίδα διαχείρισης κατηγοριών -Σελίδα διαχείρισης κατηγοριών ΕΠΕΞΕΡΓΑΣΙΑ / ΔΙΑΓΡΑΦΗ ΚΑΤΗΓΟΡΙΑΣ Ο διαχειριστής μπορεί να αλλάξει την ονομασία της επιλεγμένης κατηγορίας. -Όνομα κατηγορίας αίθουσας -Ενημερωμένα στοιχεία 19

Πηγή Προορισμός -Διαχειριστής -Σελίδα επεξεργασίας κατηγοριών -Σελίδα διαχείρισης κατηγοριών Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος Πηγή Προορισμός ΠΡΟΣΘΗΚΗ ΜΑΘΗΜΑΤΟΣ Ο διαχειριστής μπορεί να προσθέσει νέα μαθήματα και να τα αντιστοιχίσει στην αίθουσα μαθημάτων που πραγματοποιούνται. -Όνομα μαθήματος -Επιλογή αίθουσας που αντιστοιχεί το μάθημα -Όνομα μαθήματος -Όνομα αίθουσας που γίνεται το μάθημα -Διαχειριστής -Σελίδα διαχείρισης μαθημάτων Σελίδα διαχείρισης μαθημάτων Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος Πηγή Προορισμός ΕΠΕΞΕΡΓΑΣΙΑ / ΔΙΑΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ Ο διαχειριστής μπορεί να αλλάξει το όνομα του επιλεγμένου μαθήματος ή και να αλλάξει την αίθουσα στην οποία γίνεται το μάθημα. -Όνομα μαθήματος -Επιλογή αίθουσας που αντιστοιχεί το μάθημα -Ενημερωμένα στοιχεία -Διαχειριστής -Σελίδα επεξεργασίας μαθήματος Σελίδα διαχείρισης μαθημάτων Όνομα Διεργασίας Περιγραφή Είσοδος Έξοδος Πηγή Προορισμός ΠΡΟΣΘΗΚΗ IP ΔΙΕΥΘΥΝΣΗΣ Ο διαχειριστής εισάγει μια IP διεύθυνση και την αντιστοιχεί σε κάποια αίθουσα. -Διεύθυνση IP -Αντιστοίχιση αίθουσας -Διεύθυνση IP σε μορφή 10-ψήφιου ακέραιου αριθμού -Διεύθυνση IP σε μορφή IPv4 (xxx.xxx.xxx.xxx) -Ενημερωμένα στοιχεία -Διαχειριστής -Σελίδα διαχείρισης IP ανά αίθουσα Σελίδα διαχείρισης IP ανά αίθουσα Όνομα Διεργασίας Περιγραφή ΕΠΕΞΕΡΓΑΣΙΑ / ΔΙΑΓΡΑΦΗ IP ΔΙΕΥΘΥΝΣΗΣ Ο διαχειριστής μπορεί να αλλάξει μια IP διεύθυνση, να την αντιστοιχίσει σε κάποια άλλη αίθουσα ή ακόμα και να τη διαγράψει από τη βάση δεδομένων. 20

Είσοδος Έξοδος Πηγή Προορισμός -Καινούρια διεύθυνση IP -Διεύθυνση IP σε μορφή 10-ψήφιου ακέραιου αριθμού -Διεύθυνση IP σε μορφή IPv4 (xxx.xxx.xxx.xxx) -Ενημερωμένα στοιχεία -Διαχειριστής -Σελίδα επεξεργασίας IP διεύθυνσης Σελίδα διαχείρισης IP 2.3 Διαγράμματα Ροής Παρακάτω παρουσιάζονται το διαγράμματα ροής σχετικά με τις επιλογές του επισκέπτη και τις λειτουργίες του διαχειριστή στην ιστοσελίδα. Διάγραμμα Ροής Επισκέπτη Κεντρική σελίδα Αριστερό μενού Επιλογές αρχικής σελίδας Οδηγίες περιήγησης Επιλογή αίθουσας Χάρτης ΤΕΙ με VR Εύρεση συντομότερης διαδρομής Αναζήτηση αίθουσας, βάση μαθήματος Φωτογραφίες αίθουσας Πανοραμική περιήγηση Μεταφορά σε άλλο χώρο Σχήμα 1: Δ.Ρ. Επισκέπτη 21

Διάγραμμα Ροής Διαχειριστή ` Είσοδος όχι σωστοί κωδικοί; ναι Διαχείριση Αιθουσών Διαχείριση Φωτογραφιών Διαχείριση Κατηγοριών Διαχείριση Μαθημάτων Διαχείριση IP διευθ. Αποσύνδεση Προσθήκη Επεξεργασία Διαγραφή Ενημερωμένη σελίδα Ενημερωμένη σελίδα είστε σίγουροι; όχι ναι Ενημερωμένη σελίδα Σχήμα 2: Δ.Ρ. Διαχειριστή 22

2.4 Σύνοψη Συνοψίζοντας ο σχεδιασμός του site είναι ένα από τα σημαντικότερα μέρη που έχουν άμεσο αντίκτυπο στην εμφάνιση αλλά και στη λειτουργικότητα του site. Η σωστή ανάλυση των απαιτήσεων και των προδιαγραφών είναι απαραίτητη και βοηθάνε στην εξήγηση της επιλογής των συγκεκριμένων σχεδιαστικών πλάνων καθώς και των λύσεων τους. Για οποιαδήποτε αλλαγή χρειαστεί να γίνει πρέπει πρώτα να γίνει αλλαγή στις προδιαγραφές και στις απαιτήσεις και στη συνέχεια στον κώδικα, αλλιώς θα υπάρξει μεγάλο πρόβλημα στην επαναχρησιμοποίησή του. Στο επόμενο κεφάλαιο παρουσιάζονται οι τρόποι με τους οποίους σχεδιάστηκε το site, ξεκινώντας από τα προϊόντα λογισμικού που χρησιμοποιήθηκαν, την εμφάνιση του site και τις λειτουργίες του, το σχεδιασμό της βάσης δεδομένων και τους τρόπους που έγινε η υλοποίησή της 23

24

3.Υλοποίηση Εφαρμογής 3.1 Προϊόντα Λογισμικού Για την υλοποίηση του site, χρειάστηκαν διάφορα προϊόντα λογισμικού. Η επιλογή τους βασίστηκε στην εμπειρία από προηγούμενη χρήση τους αλλά και μετά από έρευνα στο internet. 3.1.1 Apache Server Ο Apache Http Server είναι ένας ισχυρός και ευέλικτος web server συμβατός με το HTTP/1.1 πρωτόκολλο. Χρησιμοποιεί τα τελευταία πρωτόκολλα, είναι ιδιαίτερα προσαρμόσιμος και επεκτάσιμος και ο βασικός λόγος είναι ότι διανέμεται με τον πλήρη source κώδικα με άδεια χρήσης χωρίς περιορισμούς. O Apache φτιάχτηκε από μια ομάδα open source προγραμματιστών και χρησιμοποιείται συχνά λόγω της αξιόλογης επίδοσής του, τα δυνατά χαρακτηριστικά ασφαλείας του και κυρίως επειδή διανέμεται δωρεάν. Σε σύγκριση με τους άλλους web servers είναι σαφέστατα γρηγορότερος και πιο σταθερός, προσφέροντας παράλληλα και περισσότερα χαρακτηριστικά.. Μερικά από αυτά είναι οι βάσεις δεδομένων DBM για πιστοποίηση, προσαρμοσμένες απαντήσεις σε λάθη και προβλήματα, πολλαπλές οδηγίες, DirectoryIndex, απεριόριστα και ευέλικτα URL rewriting και aliasing, άρνηση περιεχομένου, virtual hosts και προσαρμοσμένα και αξιόπιστα piped logs. 3.1.2 PHP Η PHP (PHP, 2007) είναι μια γλώσσα προγραμματισμού που σχεδιάστηκε για τη δημιουργία δυναμικών σελίδων στο δυαδίκτυο και είναι επισήμως γνωστή ως: HyperText preprocessor. Αρχικά η ονομασία της ήταν PHP/FI από το Forms Interpreter η οποία δημιουργήθηκε το 1995 από τον Rasmus Lerdorf ως μια συλλογή από Perl scripts που τα χρησιμοποιούσε στην προσωπική του σελίδα. Δεν άργησε να τα εμπλουτίσει με λειτουργίες επεξεργασίας δεδομένων με SQL, (SQL 2006) αλλά τα σημαντικά βήματα που έφεραν και την μεγάλη αποδοχή της PHP ήταν αρχικά η μετατροπή τους σε C και μετέπειτα η δωρεάν παροχή του πηγαίου κώδικα μέσω της σελίδας του ώστε να επωφεληθούν όλοι από αυτό που είχε φτιάξει, αλλά και να τον βοηθήσουν στην περαιτέρω ανάπτυξή της. Είναι μια server-side (εκτελείται στον διακομιστή) scripting γλώσσα που γράφεται συνήθως πλαισιωμένη από HTML, για μορφοποίηση των αποτελεσμάτων. Αντίθετα από μια συνηθισμένη HTML σελίδα η σελίδα PHP δεν στέλνεται άμεσα σε έναν 25

πελάτη (client), άντ αυτού πρώτα αναλύεται και μετά αποστέλλεται το παραγόμενο αποτέλεσμα. Τα στοιχεία HTML στον πηγαίο κώδικα μένουν ως έχουν, αλλά ο PHP κώδικας ερμηνεύεται και εκτελείται. Ο κώδικας PHP μπορεί να θέσει ερωτήματα σε βάσεις δεδομένων, να δημιουργήσει εικόνες, να διαβάσει και να γράψει αρχεία, να συνδεθεί με απομακρυσμένους υπολογιστές, κ.ο.κ. Σε γενικές γραμμές οι δυνατότητες που μας δίνει είναι απεριόριστες. Τα πλεονεκτήματα στη χρήση της PHP είναι : Υψηλή απόδοση Διασυνδέσεις με πολλά διαφορετικά συστήματα βάσεων δεδομένων Ενσωματωμένες βιβλιοθήκες για πολλές συνηθισμένες Web διαδικασίες Χαμηλό κόστος Ευκολία μάθησης και χρήσης Μεταφερσιμότητα Διαθεσιμότητα του κώδικα προέλευσης 3.1.3 MySQL Η MySQL (MySQL, 2006) είναι μια βάση δεδομένων τύπου RDBMS (relational database management system) που στηρίζεται στη γλώσσα SQL για την επεξεργασία των στοιχείων στη βάση δεδομένων. Παρέχει APIs για τις γλώσσες C, C++, Eiffel, Java, Perl, PHP και Python. Είναι ένα πολύ γρήγορο και δυνατό, σύστημα διαχείρισης βάσεων δεδομένων. Μια βάση δεδομένων που σας επιτρέπει να αποθηκεύετε, να αναζητάτε, να ταξινομείτε και να ανακαλείτε τα δεδομένα αποτελεσματικά Είναι η πιο δημοφιλής open source SQL βάση δεδομένων και διατίθεται από την εταιρεία MYSQL AB. Είναι πολύ γρήγορη, αξιόπιστη και εύκολη στη χρήση. Διαθέτει ένα πολύ πρακτικό σύνολο χαρακτηριστικών, τα οποία αναπτύχθηκαν σε συνεργασία με τους τελικούς χρήστες. Σχεδιάστηκε αρχικά για να χειρίζεται πολύ μεγάλες βάσεις δεδομένων πολύ γρηγορότερα από τις τότε υπάρχουσες λύσεις και έχει χρησιμοποιηθεί επιτυχώς σε περιβάλλοντα παραγωγής για πολλά χρόνια. Η διασυνδετικότητα, η ταχύτητα και η ασφάλεια της, την κάνουν κατάλληλη για πρόσβαση μέσω του Internet. Η MySQL είναι ένα σύστημα client/server που αποτελείται από έναν multi-threaded SQL server που υποστηρίζει διάφορα backends, πολλά διάφορα client προγράμματα και βιβλιοθήκες, εργαλεία διαχείρισης και διάφορα προγραμματιστικά interfaces. Όσον αφορά την υποστήριξη της SQL, οι σχεδιαστές της MySQL σε μια προσπάθεια να δημιουργήσουν μια γρήγορη και γερή βάση δεδομένων, εστίασαν στη βασική λειτουργικότητα που απαιτείται από την πλειονότητα των χρηστών και πρόσθεσαν κάποια δικά τους χαρακτηριστικά για να επιταχύνουν τις πιο κοινές διαδικασίες. Οι περισσότερες κοινές προτάσεις SQL λειτουργούν κανονικά στη MySQL. Οι μόνες περιπτώσεις είναι όταν υπάρχουν βαθιά φωλιασμένες προτάσεις και εσωτερικές functions. Λόγω της υψηλής απόδοσης της MySQL υπάρχουν δυο σημαντικά χαρακτηριστικά τα οποία λείπουν από το σύστημα, τα transanctions και οι stored 26

procedures (καθώς και τα triggers) επειδή αυτά επιβαρύνουν σημαντικά μια βάση δεδομένων. H MySQL χρησιμοποιείται για εφαρμογές στον παγκόσμιο ιστό (www) και για τις ενσωματωμένες εφαρμογές και έχει γίνει μια δημοφιλής εναλλακτική λύση στα ιδιόκτητα συστήματα βάσεων δεδομένων λόγω της ταχύτητας και της αξιοπιστίας της. H MySQL μπορεί να τρέξει σε Unix, Windows και MAC OS. 3.1.4 phpmyadmin Το phpmyadmin (Phpmyadmin, 2007) είναι μια εφαρμογή με την οποία μπορεί ο χρήστης να διαχειριστεί τη βάση ή τις βάσεις δεδομένων. Για να «τρέξει» είναι απαραίτητο να έχει εγκατασταθεί στον υπολογιστή που χρησιμοποιείται, Apache server που να υποστηρίζει PHP & MySQL. Εικόνα 3: Κεντρική σελίδα phpmyadmin 2.6.1 Το phpmyadmin είναι ιδιαίτερα εύχρηστο αλλά και πολύτιμο, διότι έχει όλες τις απαραίτητες πληροφορίες της βάσης μας. Επιπλέον με τη χρήση username και password της βάσης μας, προστατεύεται η επεξεργασία της από τρίτους. 27

3.1.5 Adobe Photoshop Το Adobe Photoshop (Adobe Photoshop, 2006) είναι από τα πιο διάσημα προγράμματα επεξεργασίας φωτογραφιών και δημιουργίας γραφικών. Η χρήση του είναι σημαντική για την επίτευξη ενός όμορφου αισθητικά περιβάλλοντος στο site. Από μικρά γραφικά μέχρι και μεγαλύτερες φωτογραφίες, διαμορφωμένες ανάλογα με τις ανάγκες του χρήστη, το Photoshop κάνει τη διαφορά! 3.1.6 Panorama Factory Για την δημιουργία των εικονικών πανοραμάτων (αρχεία.mov) επιλέχθηκε το πρόγραμμα Panorama Factory (Panorama Factory, 2006). Προαπαιτούμενο στοιχείο για τη δημιουργία βίντεο ήταν η λήψη φωτογραφιών από τους χώρους που ενδιαφέρουν τον χρήστη. Για το σκοπό αυτό τοποθετήθηκε η φωτογραφική μηχανή σε ένα σταθερό σημείο σε κάθε χώρο και η λήψη των φωτογραφιών έγινε σταδιακά με περιστροφή της μηχανής κατά 360 ο. Η κάθε φωτογραφία είχε το 20% της λήψης της προηγούμενής της. Το Panorama Factory προσφέρει τη δυνατότητα να ενώνει τις φωτογραφίες και να δημιουργεί μια πανοραμική φωτογραφία 360 ο. Σε μερικές περιπτώσεις που δεν ήταν απαραίτητη η πλήρης περιστροφή, φτιάχτηκαν πανοράματα των 180 ο. Για να είναι αισθητή η εικονική πραγματικότητα, το πρόγραμμα επιτρέπει να αποθηκευτεί η φωτογραφία σε αρχείο βίντεο.mov (το format χρησιμοποιείται από το QuickTime). Έτσι μπορεί ο χρήστης να περιστρέψει την εικόνα προς όποια μεριά επιθυμεί, δημιουργώντας την ψευδαίσθηση ότι όντως βρίσκεται εκεί! Επιπλέον με τη δημιουργία hotspots σε κάθε πανοραμική εικόνα, μπορεί ο χρήστης να οριοθετούμε μια περιοχή στην οποία όταν θα κάνει «κλικ» θα τον οδηγεί σε ένα άλλο πανόραμα που έχει ήδη δημιουργηθεί. 28

Εικόνα 4: Κεντρικό μενού του Panorama Factory V4 3.1.7 ConceptDraw Για τις κατόψεις των αιθουσών χρησιμοποιήθηκε το σχεδιαστικό πρόγραμμα Concept Draw (Concept Draw, 2006). Το πρόγραμμα αυτό έχει πολλές σχεδιαστικές επιλογές και είναι ιδιαίτερα χρήσιμο για αρχιτέκτονες ή άλλους σχεδιαστές χώρων. 3.2 Υλοποίηση Εφαρμογής Αφού έγινε η περιγραφή των προγραμμάτων που χρησιμοποιήθηκαν, παρακάτω περιγράφονται οι μέθοδοι υλοποίησης που χρησιμοποιήθηκαν και ο τρόπος με τον οποίο συνδυάστηκαν. 3.2.1 Εγκατάσταση Apache, PHP, MySQL σε Windows Όπως αναφέρθηκε και παραπάνω, για να «τρέξει» ένα site με PHP & MySQL χρειάζεται κάποιος server για να «εκδίδει» το site στο διαδίκτυο. Προτού όμως γίνει αυτό, ο χρήστης μπορεί να εγκαταστήσει ένα Apache Server στο τοπικό δίκτυο του υπολογιστή του, απλά εγκαθιστώντας τα πακέτα Apache, PHP και MySQL. Καλό είναι να τα εγκατασταθούν με την σειρά που αναφέρθηκαν. 29

Το Apache 2.0 (Apache, 2006) διατίθεται από την διεύθυνση http://httpd.apache.org/download.cgi επιλέγοντας το Win32 Binary της έκδοσης που θέλουμε. Πριν γίνει η εγκατάσταση του Apache θα πρέπει ο χρήστης να διασφαλίσει ότι δεν «τρέχει» κάποιο Web Server στο σύστημά του (ή κάποια προηγούμενη έκδοση του Apache). Αν υπάρχουν servers θα πρέπει να τους απενεργοποιήσει ή να καταργήσει την εγκατάστασή τους. Για την εγκατάσταση της PHP αρκεί να «κατεβάσει» τα αρχεία από τη διεύθυνση http://www.php.net/downloads.php και να τα τοποθετήσουμε στο σύστημά του. (PHP Manual 2007) Τέλος η εγκατάσταση της MySQL είναι επίσης πολύ απλή. Από τη διεύθυνση http://dev.mysql.com/downloads/ επιλέγει την έκδοση που θέλει και βρίσει στα Windows downloads την Windows Essentials (x86) ή την Windows (x86). Το πρόγραμμα setup.exe θα εγκαταστήσει τον MySQL server και τα client προγράμματα στον υπολογιστή.. 3.2.2 Επικοινωνία της βάσης δεδομένων MySQL μέσω της PHP Αφού έχει σχεδιαστεί η βάση δεδομένων, δεν μένει παρά ο διαχειριστής να την φέρει σε «επικοινωνία» με την PHP. Η βάση δεδομένων ονομάζεται teiguide. Θα πρέπει να δωθεί μια εντολή που να επιλέγει με ποιά βάση δεδομένων θα επικοινωνήσει. Η εντολή αυτή είναι: function dbconnect ($dbhost, $dbdb, $dbuser, $dbpass) { $dbid = mysql_connect ($dbhost, $dbuser, $dbpass); mysql_select_db ($dbdb); return $dbid; } $dbhost είναι η ονομασία του server που «τρέχει» η βάση. Όταν είναι εγκατεστημένη στον προσωπικό υπολογιστή του χρήστη τότε γράφει localhost, ενώ αν είναι εγκατεστημένη σε κάποιο άλλο server γράφουμε συνήθως το domain address του, πχ microsoft.com. Τα $dbuser και $dbpass χρησιμοποιούνται για την ασφάλεια της βάσης δεδομένων και είναι το όνομα χρήστη και το password της. Χωρίς αυτά δεν επιτρέπεται η προσπέλασή της. Σε περίπτωση που «τρέχει» η βάση από τον προσωπικό υπολογιστή και δεν ενδιαφέρει τον χρήστη η προστασία της, ο dbuser είναι root και το dbpass είναι κενό. Για την καλύτερη λειτουργικότητα του site, χρησιμοποιήθηακαν δυο (2) σελίδες php για τη σύνδεση της βάσης. Η μια σελίδα ονομάζεται config.php και περιέχει όλα τα στοιχεία για τη σύνδεση στη βάση. (όνομα host, όνομα βάσης δεδομένων, όνομα χρήστη & password.) Η δεύτερη σελίδα ονομάζεται db.php, η οποία περιλαμβάνει την config.php και χρησιμοποιεί διάφορα functions για να πραγματοποιήσει τη σύνδεση στη βάση δεδομένων αλλά και για να μπορεί να εκτελεί τα SQL queries που θα χρησιμοποιηθούν στις σελίδες PHP. 30

3.2.3 Εμφάνιση ιστοσελίδας Ακολουθώντας την ίδια λογική με παραπάνω δημιουργήθηκε ένα αρχείο με όνομα theme.php το οποίο συμπεριλαμβάνεται σε κάθε php σελίδα και περιέχει τα στοιχεία σύνδεσης στη βάση δεδομένων καθώς και άλλα στοιχεία που συνήθως περιλαμβάνονται στην κεφαλίδα της κάθε σελίδας με διάφορες πληροφορίες. Ο λόγος που οργανώθηκε έτσι, είναι ότι σε περίπτωση που χρειάζεται να γίνει μια αλλαγή, δεν θα χρειαστεί να γίνει σε όλες τις σελίδες του, μια προς μια, παρά μόνο στην theme.php (η οποία περιλαμβάνεται σε όλες τις άλλες). Πραγματοποιείται δηλαδή εξοικονόμηση χώρου αλλά και κυρίως χρόνου. 3.2.3.1 CSS Το Cascading Style Sheets (CSS, 2007) είναι μία γλώσσα που χρησιμοποιείται από την HTML και την XHTML. Εφαρμόζεται σε κάθε στοιχείο της σελίδας ξεχωριστά (χρώματα, γραμματοσειρές, τοποθέτηση εικόνων και άλλων στοιχείων κλπ). Το CSS σχεδιάστηκε με σκοπό να προωθήσει το διαχωρισμό της πληροφορίας και της εμφάνισης για να μπορούν όλο και περισσότεροι χρήστες να έχουν πρόσβαση στη πληροφορία των ιστοσελίδων. Μειώνει κατά πολύ τον κώδικα των ιστοσελίδων, αφού εξαλείφει τον επαναλαμβανόμενο κώδικα, με αποτέλεσμα να βοηθάει στη δημιουργία πιο γρήγορων ιστοσελίδων, οι οποίες μάλιστα είναι και προσβάσιμες σε μεγαλύτερο βαθμό από τις μηχανές αναζήτησης. Πρωτοεμφανίστηκε το 1996, αλλά η ολοκληρωμένη υποστήριξη από τους πιο δημοφιλείς browsers δεν έγινε μέχρι το 2000. 3.2.4 Javascripts Η Javascript (Javascripts, 2006) είναι μία γλώσσα scripting βασισμένη στη έννοια του πρότυπου προγραμματισμού και πήρε το όνομα από την εφαρμογή ECMAScript του Netscape. Η γλώσσα αυτή χρησιμοποιείται στις ιστοσελίδες για διάφορους λόγους, όπως για δυναμική σχεδίαση, έλεγχο φόρμας και πολλά άλλα. Λειτουργεί σε όλους τους βασικούς browsers όπως ο Internet Explorer, o Mozilla Firefox, o Netscape και η Opera. Για το site δημιουργήθηκε η σελίδα functions.js η οποία περιλαμβάνει τις συναρτήσεις (functions) που χρησιμοποιούνται, έτσι ώστε κάθε φορά που καλείται ένα function να μην χρειάζεται να γράφεται στην εκάστοτε σελίδα όλος ο κώδικας, παρά μόνο το όνομα του με τις μεταβλητές και αμέσως η σελίδα php «καλεί» την function.js (η οποία περιλαμβάνεται και αυτή στο theme.php). 31

3.2.5 IP addresses Μια διεύθυνση IP (Internet Protocol address) (IP address, 2007) είναι ένας μοναδικός αριθμός που χρησιμοποιούν κάποιες ηλεκτρονικές συσκευές για να επικοινωνήσουν μεταξύ τους μέσα στο Διαδίκτυο με τη χρήση του Ιντερνετικού Πρωτοκόλλου (Internet Protocol). Οποιαδήποτε συσκευή (υπολογιστές, εκτυπωτές, κλπ) παίρνει μέρος σ αυτή τη διαδικασία πρέπει να έχει ξεχωριστή διεύθυνση. Οι διευθύνσεις IP χρησιμοποιούνται μέσα σε τοπικά και μεγαλύτερα δίκτυα και χρησιμοποιούν αριθμούς από το 1.0.0.0 μέχρι το 255.255.255.255. Κάθε ιστοσελίδα στο Διαδίκτυο βρίσκεται σε μια συγκεκριμένη IP. Επειδή όμως δεν είναι εύκολο να θυμόμαστε αριθμούς, έχει δημιουργηθεί το Domain Name System, δηλαδή ένα σύστημα που αντιστοιχίζει τους αριθμούς με ονόματα (ή αλλιώς URL). Για παράδειγμα, αντί να χρησιμοποιούμε το http://216.239.37.104, χρησιμοποιούμε τη διεύθυνση http://www.google.com. Για το site, υλοποιήθηκε κώδικας, ο οποίος εφαρμόζεται όταν κάποιος χρήστης συνδέεται από κάποιο υπολογιστή που βρίσκεται σε μια εργαστηριακή αίθουσα του τμήματος. Για την επίτευξη του καταχωρήθηκαν στη βάση δεδομένων οι IP διευθύνσεις των υπολογιστών ανά αίθουσα εργαστηρίου. Έτσι κάθε φορά που κάποιος χρήστης που επισκέπτεται την το site και βρίσκεται σε κάποιο εργαστήριο του τμήματος Βιομηχανικής Πληροφορικής, στην αρχική σελίδα θα του εμφανίζει ένα ειδικό μήνυμα που θα τον ενημερώνει από ποιο εργαστήριο έχει συνδεθεί. 3.2.5.1 Function ip2long() Για να γίνει η σύγκριση της μεταβλητής $IP, στην οποία αποθηκεύεται προσωρινά η IP διεύθυνση του επισκέπτη, με τις IP διευθύνσεις που έχουν καταχωρηθεί στη βάση δεδομένων ως τύπου VARCHAR, είναι απαραίτητη η χρήση της function ip2long(). (ip2long() function, 2007). Η τελευταία μετατρέπει μια διεύθυνση IP από τη μορφή IPv4 σε ένα μεγάλο ακέραιο αριθμό. 3.2.6 Ο Αλγόριθμος Συντομότερης Διαδρομής του Dijkstra Για την υλοποίηση της συντομότερης διαδρομής, όπως αναφέρθηκε στο πρώτο κεφάλαιο, χρησιμοποιήθηκε ο αλγόριθμος του Dijkstra. Ο αλγόριθμος αυτός μπορεί να εξηγηθεί ως εξής: Το πρόβλημα: Έστω ένα σύνολο κόμβων, κάποιοι από τους οποίους είναι μεταξύ τους συνδεδεμένοι με θετικά μήκη συνδέσεων. Ο χρήστης θέλει να βρει τη συντομότερη απόσταση από τον κόμβο 1 προς οποιονδήποτε άλλον κόμβο (όπου η συντομότερη απόσταση είναι εκείνη που ελαχιστοποιεί το άθροισμα των μηκών κατά μήκος κάποιου δρόμου, που ονομάζεται συντομότερος δρόμος ). 32

Βασική ιδέα: Αρχικά βρίσκει τον κόμβο Κ που συνδέεται με τον 1 με το μικρότερο μήκος σύνδεσης. Στη συνέχεια, ο συντομότερος δρόμος θα περιλαμβάνει είτε έναν άλλο κόμβο Κ που συνδέεται με τον 1 είτε έναν άλλον κόμβο Κ που συνδέεται με το Κ, αναλόγως του ποιο από τα δυο είναι μικρότερο: d(k,k ) ή d(k,k ) + d(k,k ). Κοκ. Συμβολίζεται με dij το μήκος της σύνδεσης των i και j (όπου υποθέτουμε ότι dij =, αν οι i και j δεν συνδέονται). Αρχικά: P = {1}, D1 = 0, Dj = dj1, j 1. Βήμα 1: Βρείτε i P τέτοιο ώστε Di = minj PDj. Θέσατε P := P {i}. Αν Ρ = S, τερματίστε. Βήμα 2: Για κάθε j P, θέσατε Dj = min[dj, dji + Di]. Πάτε στο βήμα 1. Παράδειγμα εφαρμογής A 2 B 3 1 2 1 6 C 1 2 8 F 6 D E 2 Σχήμα 3: Αλγόριθμος Dijkstra Βήμα A B C D E F Προστιθέμενος Προστιθέμενο Τόξο Κόμβος 1 0 2 6 Β AB 2 8 5 D BD 3 7 13 C DC 4 8 15 E CE 5 10 F EF 33

3.2.7 Προστασία των σελίδων του διαχειριστή Για την προστασία του κέντρου διαχείρισης από τρίτους, χρησιμοποιήθηκε ένα απλό script php, το οποίο συμπεριλαμβάνεται σε όλες τις σελίδες που βρίσκονται υπό το φάκελο admin. Επιλέχθηκε αυτή τη μέθοδο ώστε να είναι εύκολη η αλλαγή username & password και να μην χρειάζονται περαιτέρω αλλαγές από το server που φιλοξενεί το site.. Αν στο μέλλον ο διαχειριστής επιθυμεί ακόμα πιο σίγουρο τρόπο προστασίας, μπορεί να χρησιμοποιήσει το αρχείο.htaccess το οποίο με την κατάλληλη παραμετροποίηση προστατεύει όλα τα αρχεία του φακέλου στο οποίο έχει τοποθετηθεί το αρχείο αυτό. 3.3 Η Σπουδαιότητα της Καλής Σχεδίασης της Βάσης Δεδομένων Εφόσον το site θα είναι βασισμένο σε php & MySQL, βγήκε η απόφαση για την εκμετάλλευση των δυνατοτήτων που δίνει η δημιουργία μιας βάσης δεδομένων από την οποία θα επιτυγχάνεται δυναμικά η διαχείριση πολλών μερών του site. Η καλή σχεδίαση μιας βάσης δεδομένων είναι ζωτικής σημασίας για την ανάπτυξη μιας εφαρμογής με υψηλή απόδοση. Αν μια βάση δεδομένων δεν έχει βελτιστοποιημένες σχέσεις μεταξύ των πινάκων (normalization) δεν θα μπορεί να λειτουργεί με τη μέγιστη δυνατή αποτελεσματικότητα. Επίσης η βάση δεδομένων που θα χρησιμοποιήσουμε πρέπει να είναι εύκολη στη συντήρηση. Δηλαδή θα πρέπει να αποθηκεύει όσο το δυνατόν λιγότερα επαναλαμβανόμενα δεδομένα. Τα πλεονεκτήματα που προσφέρει μια καλοσχεδιασμένη βάση δεδομένων είναι πολλά. Όσο περισσότερη δουλειά γίνει εκ των προτέρων για τον σωστό σχεδιασμό της βάσης, τόσο λιγότερη θα χρειαστεί να γίνει εκ των υστέρων. Αν δεν έχει σχεδιαστεί σωστά η βάση είναι πολύ πιθανό να χρειαστεί να την επανασχεδιαστεί εκ των υστέρων και το κόστος θα είναι αρκετά υψηλό. (Meloni, 2004) Πιο συγκεκριμένα τα πλεονεκτήματα που προκύπτουν είναι: Ο πλεονασμός μπορεί να μειωθεί στο ελάχιστο. Η ασυνέπεια μπορεί να αποφευχθεί (ως ένα βαθμό) Τα δεδομένα μπορούν να είναι κοινόχρηστα Μπορούν να επιβάλλονται πρότυπα Μπορούν να εφαρμόζονται περιορισμοί ασφάλειας Μπορεί να διατηρείται η ακεραιότητα Οι αντικρουόμενες απαιτήσεις μπορούν να εξισορροπούνται (Date, 2003) Τα βήματα που ακολουθήθηκαν για τη σχεδίαση της βάσης δεδομένων είναι τα εξής: Ορισμός του στόχου. Σχεδίαση των δομών δεδομένων (πίνακες, πεδία) 34

Εύρεση των σχέσεων. Ορισμός και υλοποίηση των κανόνων. Δημιουργία της εφαρμογής. 3.3.1 Σχεδιασμός & Ανάλυση Οντοτήτων Οι οντότητες της βάσης δεδομένων είναι οι παρακάτω: CLASSES (Αίθουσες): Ο πίνακας classes περιέχει τις πληροφορίες για τις αίθουσες. classid classname moviename classes equipment ktirio_id mainphoto groupid Σχήμα 4: οντότητα classes COURSE_TYPE (Τύπος Μαθημάτων): Ο πίνακας course_type έχει τους τύπους μαθημάτων. course_type typeid nametype Σχήμα 5: οντότητα course_type COURSES (Μαθήματα): Ο πίνακας courses περιέχει τις πληροφορίες για τα μαθήματα που γίνονται στις αίθουσες. 35

courseid typeid courses classname classid Σχήμα 6: οντότητα courses GROUPS (Ομάδες): Ο πίνακας groups περιέχει τις ομάδες που έχουν κατηγοριοποιηθεί τις αίθουσες. groups groupid groupname Σχήμα 7: οντότητα groups IP_ADDRESS (Διευθύνσεις IP): Ο πίνακας ip_address περιέχει όλες τις IP διευθύνσεις των υπολογιστών που βρίσκονται στα εργαστήρια. ip_id pc_ip ip_address long_ip classid Σχήμα 8: οντότητα ip_address 36

KTIRIA (Κτίρια): Ο πίνακας ktiria έχει σε ομάδες τις αίθουσες που βρίσκονται στο ίδιο κτίριο ή όροφο. ktiria ktirio_id ktirioname Σχήμα 9: οντότητα ktiria MAPS (Χάρτες): Ο πίνακας maps περιέχει τους χάρτες του ΤΕΙ και τις κατόψεις των ορόφων. maps mapid mapname classid Σχήμα 10: οντότητα maps PHOTOS (Φωτογραφίες): Ο πίνακας photos περιέχει τις φωτογραφίες κάθε αίθουσας. photoid classid photos photoname comments Σχήμα 11: οντότητα photos 37

3.3.2 Μοντέλο Οντοτήτων Συσχετίσεων Στο παρακάτω σχήμα βλέπουμε πως συσχετίζονται οι οντότητες. 38

ktirio_id groupid classid classname classes moviename equipment mainphoto ομαδοποιεί Περιέχει typeid nametype courseid course_type coursename courses ταξινομεί typeid classid groupid groupname mapid groups maps mapname ktirioname classid ktiria αντιστοιχεί ktirio_id photoid photoname ip_id ip_address photos classid classid comments pc_ip ip_long Σχήμα 12: Μ.Ο.Σ. 39

3.3.3 Ανάλυση των πεδίων κάθε πίνακα Ο κάθε πίνακας της βάσης αποτελείται από διάφορα πεδία. Για κάθε ένα από αυτά περιγράφεται ο τύπος του πεδίου και δίνεται μια μικρή περιγραφή για τη χρησιμότητά του. classes Πεδίο Τύπος Περιγραφή classid int (11) (NOT NULL) Κωδικός αίθουσας (με αυτόματη αύξηση), πρωτεύον κλειδί πίνακα classname varchar (50) Όνομα αίθουσας moviename varchar (50) Όνομα βίντεο (.mov) equipment text Εξοπλισμός αίθουσας mainphoto varchar (50) Όνομα κεντρικής φωτογραφίας groupid int (11) (NOT NULL) Κωδικός ομάδας που ανήκει η αίθουσα ktirio_id int (11) Κτίριο στο οποίο ανήκει η αίθουσα course_type Πεδίο Τύπος Περιγραφή typeid int (11) (NOT NULL) Κωδικός τύπου (με αυτόματη αύξηση), πρωτεύον κλειδί πίνακα nametype varchar (50) Όνομα τύπου courses Πεδίο Τύπος Περιγραφή courseid int (11) (NOT NULL) Κωδικός μαθήματος (με αυτόματη αύξηση), πρωτεύον κλειδί πίνακα coursename varchar (50) Όνομα μαθήματος typeid int (11) Τύπος μαθήματος classid int (11) Κωδικός αίθουσας που γίνεται το μάθημα groups 40

Πεδίο Τύπος Περιγραφή groupid int (11) (NOT NULL) Κωδικός ομάδας (με αυτόματη αύξηση), πρωτεύον κλειδί πίνακα groupname varchar (50) Όνομα ομάδας ip_address Πεδίο Τύπος Περιγραφή ip_id int (11) (NOT NULL) Κωδικός IP (με αυτόματη αύξηση), πρωτεύον κλειδί πίνακα pc_ip varchar (15) IP κάθε υπολογιστή (Μοναδικό κλειδί) long_ip int(10) IP διεύθυνση σε 10-ψήφιο ακέραιο classid int (11) Κωδικός αίθουσας που βρίσκεται ο Η/Υ ktiria Πεδίο Τύπος Περιγραφή ktirio_id int (11) (NOT NULL) Κωδικός κτιρίου, πρωτεύον κλειδί πίνακα ktirioname varchar (50) Όνομα κτιρίου maps Πεδίο Τύπος Περιγραφή map_id int (11) (NOT NULL) Κωδικός χάρτη (με αυτόματη αύξηση), πρωτεύον κλειδί πίνακα mapname varchar (50) Όνομα χάρτη classid int (11) Κωδικός αίθουσας που ανήκει ο χάρτης photos Πεδίο Τύπος Περιγραφή photo_id int (11) (NOT NULL) Κωδικός φωτογραφίας (με αυτόματη αύξηση), 41

πρωτεύον κλειδί πίνακα classid int (11) Κωδικός αίθουσας που ανήκει η φωτογραφία photoname varchar (50) Όνομα φωτογραφίας comments text Σχόλια φωτογραφίας 3.4 Δομή Φακέλων και Αρχείων Για τη λειτουργικότητα του site αλλά και για διευκόλυνση ταξινομήθηκαν σε διαφορετικούς φακέλους τα αρχεία της ανάλογα με τη χρησιμότητά τους. Στο root directory έχουν τοποθετηθείτα αρχεία.php που χρησιμοποιούνται για όλους τους επισκέπτες της ιστοσελίδας. Από εκεί και πέρα υπάρχουν οι εξής φάκελοι: admin: Περιέχει όλες τις σελίδες που χρησιμοποιούνται από τον διαχειριστή. fotos: Περιέχει όλες τις φωτογραφίες των αιθουσών. Αυτός ο φάκελος πρέπει να έχει δικαιώματα εγγραφής (CHMOD: 777) επειδή εδώ αποθηκεύονται οι φωτογραφίες που κάνει ο διαχειριστής upload. images: Περιέχει όλα τα γραφικά εικονίδια (.jpg και.gif) του site maps: Περιέχει όλες τις κατόψεις και τους χάρτες σε format εικόνας. movies: Περιέχει όλα τα quicktime videos. Πρέπει και αυτός ο φάκελος να έχει δικαιώματα εγγραφής γιατί εκεί αποθηκεύονται τα βίντεο που κάνει upload ο διαχειριστής. 3.4.1 Σελίδες Επισκέπτη Αναφορικά οι σελίδες του επισκέπτη είναι οι παρακάτω (ταξινομούνται αλφαβητικά): calpath.php : Είναι η σελίδα που «καλείται» για να εμφανίσει τη συντομότερη διαδρομή. classphotos.php : Εμφανίζονται οι φωτογραφίες της κάθε αίθουσας που έχει επιλεγεί. config.php : Περιέχει τα στοιχεία για τη σύνδεση στη βάση δεδομένων. credits.php : Εμφανίζει τους δημιουργούς του site. db.php : Κάνει τη σύνδεση με τη βάση δεδομένων. dijkstra.php : Περιέχει τον αλγόριθμο του Dijkstra υλοποιημένο σε PHP. index.html : Η αρχική σελίδα που αποτελείται από 2 frames. info.php : Εμφανίζει πληροφορίες και οδηγίες περιήγησης του site. main.php : Η κεντρική σελίδα του site. menu.php : Είναι το αριστερό frame του site με τη λίστα των αιθουσών. movie.php : Εμφανίζει το βίντεο της πανοραμικής περιήγησης για κάθε αίθουσα. notavailable.php : Η σελίδα εμφανίζεται όταν δεν υπάρχουν περαιτέρω επιλογές. routes.php : Η σελίδα με την εύρεση της πιο σύντομης διαδρομής. 42

search.php : Η σελίδα που χρησιμοποιείται για αναζήτηση μαθημάτων. style.css : Το stylesheet του site που ορίζει πως θα εμφανίζονται οι γραμματοσειρές, τα χρώματα κτλ. theme.php : Περιέχει πληροφορίες για το site και το βασικό «στήσιμο» του site. virtualtours_map.php : Εμφανίζει το χάρτη με όλα τα virtual tour βίντεο. 3.4.2 Σελίδες Διαχειριστή Αναφορικά οι σελίδες του διαχειριστή είναι οι παρακάτω (ταξινομούνται αλφαβητικά): admin-menu.php : Η κεντρική σελίδα του διαχειριστή μετά την είσοδο του. classes.php : Η σελίδα διαχείρισης των αιθουσών courses.php : Η σελίδα διαχείρισης των μαθημάτων editclass.php : Η σελίδα επεξεργασίας επιλεγμένης αίθουσας editcourses.php : Η σελίδα επεξεργασίας επιλεγμένου μαθήματος editgroup.php : Η σελίδα επεξεργασίας κατηγορίας editip.php : Η σελίδα επεξεργασίας IP groups.php : Η σελίδα διαχείρισης κατηγοριών ip_addresses.php : Η σελίδα διαχείρισης διευθύνσεων IP photos.php : H σελίδα διαχείρισης φωτογραφιών protect.php : Η σελίδα που «προστατεύει» τις υπόλοιπες σελίδες του διαχειριστή με ειδικό όνομα χρήστη και κωδικό theme.php : Πληροφορίες για την εμφάνιση των σελίδων του διαχειριστή uploadmov.php : Φόρμα upload βίντεο στο server και καταχώρηση στη βάση δεδομένων uploadphoto.php : Φόρμα upload φωτογραφίας στο server και καταχώρηση στη βάση δεδομένων 3.5 Σύνοψη Με τη χρήση των κατάλληλων προγραμμάτων και προγραμματιστικών γλωσσών σχεδιάστηκαν τα επιμέρους τμήματα του site. Το κάθε λογισμικό εξυπηρετεί κάποια λειτουργία η οποία στη συνέχεια «συνεργάζεται» με εντολές για να παρουσιαστεί στην τελική του μορφή στο site. Όλες οι απαραίτητες πληροφορίες αποθηκεύονται στη βάση δεδομένων, που έχει σχεδιαστεί για τις ανάγκες του site. Στη συνέχεια γίνεται αναφορά στην ανάλυση των λειτουργιών της σελίδας καθώς και των διαφορετικών δυνατοτήτων που μπορεί να έχει ο επισκέπτης αναλόγως την ιδιότητα του, ως απλός χρήστης ή ως διαχειριστής τους συστήματος. 43