Ανάλυση, Σχεδιασμός και Ανάπτυξη Διαδραστικής Διαδικτυακής Εφαρμογής για την Διαχείριση Συνταγών Μαγειρικής



Σχετικά έγγραφα
Ανάλυση, Σχεδιασμός και Ανάπτυξη Διαδραστικής Διαδικτυακής Εφαρμογής για την Διαχείριση Συνταγών Μαγειρικής

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

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

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

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

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

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

Τεχνικός Εφαρμογών Πληροφορικής

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

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

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

Κεφάλαιο 11: Εισαγωγή στην HTML. Εφαρμογές Πληροφορικής Κεφ. 11 Καραμαούνας Πολύκαρπος

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

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

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

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

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

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

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

XAMPP Apache MySQL PHP javascript xampp

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

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

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

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

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

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Διαφορές single-processor αρχιτεκτονικών και SoCs

Αικατερίνη Καμπάση, PhD. Τμήμα Προστασίας και Συντήρησης Πολιτισμικής Κληρονομιάς Α.Τ.Ε.Ι. Ιονίων Νήσων

6.2 Υπηρεσίες Διαδικτύου

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Εφαρμογή Βάσης Δεδομένων για την Εθελοντική Αιμοδοσία στο ΑΤΕΙ-Θ

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

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

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Vodafone Business Connect

Εγχειρίδιο Συντονιστή Τηλεδιασκέψεων Υπηρεσίας e:presence

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

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

Όταν αποθηκεύετε μία παρουσίαση, την ονομάζετε και καθορίζετε πού θα την αποθηκεύσετε

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

Περιεχόμενα. Πρόλογος... xiii

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

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

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα:

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

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

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML

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

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

Η Βίβλος σχετικά με το JDBC. Περιέχει τρία βασικά tutorials στα οποία θα βασιστεί το μάθημα και περιγράφει όλες τις τάξεις και τις μεθόδους που

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Social Network : Programming on FACEBOOK

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας Office Management (Ημερολόγιο Λογιστή). Παρακάτω προτείνεται

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

Τίτλος Βιβλίου: Εισαγωγή στο Wordpress 3.x. Copyright 2012, Γιώργος Μπίκας/Εκδόσεις Κλειδάριθμος

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

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

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

ΟΓΗΓΙΕΣ ΧΡΗΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΜΗΤΡΩΟΥ ΑΠΟΒΛΗΤΩΝ. Draft version

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

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

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

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

Ημερομηνία Παράδοσης: 4/4/2013

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

Κεφάλαιο 4: Λογισμικό Συστήματος

TCExam Ερευνητικό και Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών, 2

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

Διαχείριση Αξιόγραφων

Αλεξιάδης Γεώργιος (ΠΕ86) -

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

Τίτλος Πακέτου Certified Computer Expert-ACTA

Διαχείριση Πολιτισμικών Δεδομένων

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

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

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΕΛΑΤΩΝ ELTA Courier. Ιούνιος ELTA Courier Διεύθυνση Πληροφορικής

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

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

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Vodafone Business Connect

Ποιες είναι οι κύριες ετικέτες που χρησιμοποιεί η HTML για την περιγραφή της συνολικής δομής μιας ιστοσελίδας;

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

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

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Διαδικτυακό σύστημα διαχείρισης αιτήσεων για μεταπτυχιακό

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

Λίγα λόγια από το συγγραφέα...7

A J A X AJAX Γιάννης Αρβανιτάκης

Transcript:

Τ.Ε.Ι. ΑΜΘ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Ανάλυση, Σχεδιασμός και Ανάπτυξη Διαδραστικής Διαδικτυακής Εφαρμογής για την Διαχείριση Συνταγών Μαγειρικής ΠΑΠΑΣΠΥΡΟΥ ΑΛΕΞΙΟΣ ΑΕΜ: 2009 ΚΙΟΥΡΤΖΗΣ ΣΤΑΥΡΟΣ ΑΕΜ: 1890 ΜΑΙΟΣ 2014 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ ΜΗΤΣΑ ΑΙΚΑΤΕΡΙΝΗ

ΣΕΛΙΔΑ ΤΙΤΛΟΥ Ανάλυση, Σχεδιασμός και Ανάπτυξη Διαδραστικής Διαδικτυακής Εφαρμογής για την Διαχείριση Συνταγών Μαγειρικής ΠΑΠΑΣΠΥΡΟΥ ΑΛΕΞΙΟΣ ΑΕΜ: 2009 ΚΙΟΥΡΤΖΗΣ ΣΤΑΥΡΟΣ ΑΕΜ: 1890 ΜΑΙΟΣ 2014 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ ΜΗΤΣΑ ΑΙΚΑΤΕΡΙΝΗ

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου ΠΕΡΙΛΗΨΗ ΤΗΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ Η διαδικτυακή διαδραστική εφαρμογή είχε σαν σκοπό τη δημιουργία μιας μηχανής αναζήτησης πάνω σε κάποια ιστοσελίδα (κυρίως) έτσι ώστε ο χρήστης αναζητώντας τα υλικά τα οποία έχει να είναι σε θέση να επιλέξει απο μια πληθώρα συνταγών. Αυτή ήταν η αρχική σκέψη. Δημιουργόντας αργότερα την εφαρμογή έγινε κατανοητό ότι το ένα επίπεδο χρήστη με το οποίο είχε σχεδιαστεί η ιδεολογική βάση ήταν αδύνατον να λειτουργήσει.ο προγραμματισμός της εφαρμογής δεν σταματούσε μόνο στην δημιουργία κώδικα που εκτελούσε όλες τις κατάλληλες που έπρεπε να κάνει αυτή η εφαρμογή, γιατί δεν γίνεται σε μια τέτοια εφαρμογή ο διαχειριστής αλλά και ο χρήστης να έχουν ακριβώς τις ίδιες δυνατότητες. Γι αυτό τον λόγο έπρεπε να δημιουργηθούν διάφορα επίπεδα χρηστών.το κάθε επίπεδο χρήστη θα έπρεπε να έχει διαφορετικές δυνατότητες και δικαιώματα. Αυτό άλλαζε την σχεδίαση της εφαρμογής κατά πολύ μεγάλο τρόπο και έφερε την ανάγκη αναζήτησης και άλλου λογισμικού που θα έκανε δυνατή τη δημιουργία αυτών των επιπέδων χρήσης. Η διαφορά των επιπέδων χρήσης είχε να κάνει κυρίως με το γεγονός ότι δεν γινόταν όλοι οι χρήστες να μπορούν να δημιουργούν συνταγές, αλλά και ούτε όλες οι τροποποιήσεις και οι εισαγωγές να γίνονται μόνο από τον διαχειριστή ο οποίος σε μια ρεαλιστική χρήση της εφαρμογής δεν θα χρειαζόταν να έχει μόνο αυτός τέτοια δικαιώματα. Το κύριο συμπέρασμα είναι ότι στην αγορά εργασίας και στον πραγματικό κόσμο δεν αρκεί μόνο μια τέτοια ενέργεια να εκτελεί όλες τις δυνατότητες προγραμματιστικά, αλλά έπρεπε να γίνει και μια αξιολόγηση χρήσης για να υπάρχει πρακτικότητα, έτσι ώστε να μπορεί πραγματικά να χρησιμοποιηθεί με επιτυχία. Σελίδα 3 από 75

Πρόλογος Το διαδίκτυο αναμφισβήτητα αποτελεί τα τελευταία χρόνια μέρος της καθημερινότητάς μας και κατ' επέκταση της ίδιας μας της ζωής. Είναι μέσο επικοινωνίας, πηγής γνώσης, και πολλών άλλων,εξαρτώντας πάντα από την χρήση που κάνουμε. Ως μέσο έχει δύο διαστάσεις, την υλική και την άυλη. Με τον όρο υλική περιγράφουμε τα μέρη εκείνα που είναι απαραίτητα για την εδραίωση μίας σύνδεσης,δηλαδή υλικό και λογισμικό ενώ με τον όρο άυλη περιγράφουμε όλα εκείνα που προσφέρει στην κοινωνία το διαδίκτυο ως μέσο. Λόγω της ραγδαίας ανάπτυξης του διαδικτύου προσφέρονται και αρκετά χρήσιμα εργαλεία ανάπτυξης λογισμικού τα οποία βοηθούν τους προγραμματιστές ή τους χρήστες στην ανάπτυξη, διόρθωση ή βελτίωση των εφαρμογών διαδικτύου. Οι βάσεις δεδομένων τέθηκαν σε λειτουργία όταν δημιουργήθηκε η ανάγκη για την ταχύτατη συγκέντρωση των πληροφοριών λόγω του μεγάλου όγκου τους. Ένα από τα πιο ενδιαφέροντα θέματα στον προγραμματισμό βάσεων δεδομένων αποτελεί η αναζήτηση και εξαγωγή του χρήσιμου περιεχομένου του διαδικτύου και η αποθήκευση του στο ανάλογο είδος βάσης δεδομένων. Οι προπτυχιακές μας σπουδές στο τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ του ΤΕΙ Ανατολικής Μακεδονίας & Θράκης μας παρείχαν την πλειονότητα των απαραίτητων γνώσεων για την ανάπτυξη της παρούσας πτυχιακής εργασίας. Τέλος θα θέλαμε να εκφράσουμε τις προσωπικές μας ευχαριστίες στην επιβλέποντα καθηγήτρια Κα. Αικατερίνη Μήτσα τόσο για την βοήθεια της κατά την εκπόνηση της πτυχιακής εργασίας όσο και για τις γνώσεις που μας βοήθησε να αποκτήσουμε κατά την διάρκεια των ετών της φοίτησης μας στην σχολή.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Περιεχόμενα 1. Εργαλεία ανάπτυξης λογισμικού...8 1.1. Xampp Control Panel...11 1.1.1. Apache HTTP Server...13 1.1.2. PhpMyAdmin...15 1.2. Γλώσσες Σήμανσης...17 1.2.1. HTML και HTML5...17 1.2.2. CSS και CSS3...18 1.3. PHP και JavaScript...21 1.3.1. Πλεονεκτήματα της PHP...21 1.3.2. Λειτουργικά Χαρακτηριστικά της PHP...22 1.3.3. JavaScript...22 1.4. MySQL...25 1.4.1. Πλεονεκτήματα της MySQL...25 1.4.2. Σχεδιασμός Αποδοτικών Βάσεων Δεδομένων...26 2. Ανάλυση του Συστήματος της Εφαρμογής.........29 2.1. Τεχνολογία ανάπτυξης λογισμικού...30 2.2. Καταγραφή απαιτήσεων...32 2.3. Ανάλυση απαιτήσεων......34 3. Σχεδίαση της Εφαρμογής...37 3.1. Βάση δεδομένων εφαρμογής...38 3.2. Παρουσίαση και Ανάλυση του PHP Κώδικα...43 4. Εγχειρίδιο χρήσης...63 4.1. Αρχική Οθόνη......64 4.2. Οθόνη Απλού Χρήστη...68 4.3. Οθόνη Σεφ......68 4.4. Οθόνη Διαχειριστή......71 Συμπεράσματα...72 Βιβλιογραφικό Περιεχόμενο...74 Σελίδα 5 από 75

Κατάλογος Εικόνων Εικόνα 1: Πίνακας ελέγχουν του XAMPP για start/stop modules. 7 Εικόνα 2: Client-Server αρχιτεκτονική 8 Εικόνα 3: Το περιβάλλον της PhpMyAdmin 11 Εικόνα 4: Διάγραμμα Οντοτήτων - Συσχετίσεων Εικόνα 5: Διάγραμμα Περιπτώσεων Χρήσης Εικόνα 6: Πίνακας categories Εικόνα 7: Πίνακας chefs Εικόνα 8: Πίνακας materials Εικόνα 9: Πίνακας measurements Εικόνα 10: Πίνακας recipes Εικόνα 11: Πίνακας details Εικόνα 12: Πίνακας users Εικόνα 13: Πίνακας users_titles Εικόνα 14: Σχέσεις Πινάκων Εικόνα 15: index.php Εικόνα 16: user_register.php (1) Εικόνα 17: user_register.php (2) Εικόνα 18: user_modify.php (1) Εικόνα 19: user_modify.php (2) Εικόνα 20: user_login.php (1) Εικόνα 21: user_login.php (2) Εικόνα 22: user_edit.php (1)

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 23: user_edit.php (2) Εικόνα 24: user_add.php (1) Εικόνα 25: user_add.php (2) Εικόνα 26: recipes_list.php (1) Εικόνα 27: recipes_list.php (2) Εικόνα 28: recipe_show.php (1) Εικόνα 29: recipe_show.php (2) Εικόνα 30: recipe_modify.php (1) Εικόνα 31: recipe_modify.php (2) Εικόνα 32: recipe_edit.php (1) Εικόνα 33: recipe_add.php (1) Εικόνα 34: recipe_add.php (2) Εικόνα 35: recipe_add.php (3) Εικόνα 36: recipe_add.php (4) Εικόνα 37: Αρχική Οθόνη Εικόνα 38: Εγγραφή χρήστη Εικόνα 39: Εγγραφή χρήστη Μήνυμα λάθους Εικόνα 40: Εγγραφή χρήστη Στοιχεία Εικόνα 41: Εισαγωγή χρήστη Εικόνα 42: Εισαγωγή χρήστη Μήνυμα λάθους Εικόνα 43: Οθόνη απλού χρήστη Εικόνα 44: Οθόνη σεφ Εικόνα 45: Νέα συνταγή Εικόνα 46: Οθόνη Διαχειριστή Εικόνα 47: Διαχείριση Χρηστών Σελίδα 7 από 75

Εισαγωγή Η παρούσα πτυχιακή εργασία είχε σαν στόχο την ανάπτυξη μιας Διαδικτυακής Εφαρμογής για την Διαχείριση Συνταγών Μαγειρικής. Πρόκειται για μια δυναμική διαδραστική ιστοσελίδα που αποτελείται από τέσσερα επίπεδα χρηστών, όπου κάθε ένας από αυτούς μπορεί να επιτελέσει τις λειτουργίες που αντιστοιχούν στα δικαιώματά του, οι οποίες θα αναλυθούν παρακάτω. Η διαδικτυακή εφαρμογή αναπτύχθηκε σε PHP και MySQL και δίνει την δυνατότητα πρόσβασης, πλοήγησης και επεξεργασίας επιλεγμένων στοιχείων της σελίδας μέσω του διαδικτύου σε πολλούς χρήστες ταυτόχρονα (των τριών επιπέδων). Με βάση τα παραπάνω αναπτύχθηκε ένα πρόγραμμα φιλικό προς τον χρήστη, που πληρεί όλες τις προϋποθέσεις ευχρηστίας και ασφάλειας προσωπικών δεδομένων, αλλά ταυτόχρονα διασφαλίζει και τον έλεγχο των στοιχείων που εισάγει ο χρήστης ανάλογα με το επίπεδο στο οποίο ανήκει. Αποτελείται από τέσσερα κεφάλαια εκτός της εισαγωγής και των συμπερασμάτων κάθε ένα από τα οποία αποτελεί συνέχεια του άλλου. Πιο συγκεκριμένα, στο πρώτο κεφάλαιο γίνεται περιγραφή των εργαλείων ανάπτυξης λογισμικού, ουσιαστικά μιλάμε για εφαρμογές ή προγράμματα λογισμικού,μέσω των οποίων δίνεται η δυνατότητα ανάπτυξης κώδικα και γενικά λογισμικού. Στο κεφάλαιο αυτό γίνεται συγκεκριμένη περιγραφή των εργαλείων λογισμικού που χρησιμοποιήθηκαν αποκλειστικά για την δημιουργία της παρούσας εφαρμογής. Όλα τα εργαλεία που χρησιμοποιήθηκαν είναι ανοιχτού κώδικα (open source). Στο δεύτερο κεφάλαιο έγινε ανάλυση του συστήματος της εφαρμογής και συγκεκριμένα μια αναφορά σχετικά με την τεχνολογία ανάπτυξης λογισμικού, ακολούθησε η καταγραφή και έπειτα η ανάλυση των απαιτήσεων.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Το τρίτο κεφάλαιο περιλαμβάνει τη σχεδίαση της εφαρμογής και παρουσιάζονται οι πίνακες της βάσης δεδομένων καθώς και οι σχέσεις που τους συνδέουν. Τέλος στο τέταρτο κεφάλαιο, δημιουργείται το εγχειρίδιο χρήσης της εφαρμογής, όπου πιο συγκεκριμένα γίνεται παρουσίαση του τρόπου χειρισμού του προγράμματος από τους χρήστες των διαφόρων επιπέδων με απλό και κατανοητό τρόπο. Κάθε κίνηση περιγράφεται γραπτώς, συνοδευόμενη από τα απαραίτητα screenshots, τα οποία δίνουν μια ολοκληρωμένη εικόνα στον χρήστη-εφαρμογή. Η παρούσα πτυχιακή εργασία κλείνει με τα συμπεράσματα τα οποία περιλαμβάνουν τα όσα αποκομίσθηκαν από όλη την διαδικασία ανάλυσης, σχεδίασης, υλοποίησης και τεκμηρίωσης μιας εφαρμογής. Σελίδα 9 από 75

Λεξικό δεδομένων και ανάλυση της κάθε έννοιας 1. Εργαλεία Ανάπτυξης Λογισμικού Εισαγωγή Στο παρόν κεφάλαιο έτσι όπως αυτό θα αναπτυχθεί στις επόμενες υποενότητες, θα γίνει εκτενέστατη αναφορά στα εργαλεία ανάπτυξης λογισμικού που χρειάστηκαν για την ανάπτυξη της παρούσας εφαρμογής. Τα εργαλεία ανάπτυξης λογισμικού είναι προγράμματα ή εφαρμογές τα οποία βοηθούν τους προγραμματιστές ή τους χρήστες να αναπτύσσουν, να διορθώνουν ή να βελτιώνουν τις εφαρμογές τους. Τα βασικά στοιχεία που διαθέτει ένα εργαλείο ανάπτυξης λογισμικού και που χαρακτηρίζουν κάθε εφαρμογή που δημιουργείται για το σκοπό αυτό είναι τα εξής: Ένας επεξεργαστής κειμένου. Κάποιος μεταγλωττιστής. Κάποιος φορτωτής σύνδεσης Κάποιο εργαλείο διόρθωσης σφαλμάτων. Ωστόσο αυτά δεν είναι απαραίτητο να υπάρχουν για την ανάπτυξη οποιασδήποτε εφαρμογής, αλλά προσαρμόζονται ανάλογα με τις απαιτήσεις των προγραμματιστών ή των χρηστών. Επιπλέον ένας ολοκληρωμένος συνδυασμός αυτών μπορεί να οδηγήσει στην πλήρη διαμόρφωση όλων των φάσεων ανάπτυξης στον κύκλο ζωής του λογισμικού, από τον σχεδιασμό των προδιαγραφών μέχρι την τεκμηρίωση της εφαρμογής. Τέλος κάποια άλλα χαρακτηριστικά των εργαλείων αυτών είναι πως καταλαμβάνουν μικρό αποθηκευτικό χώρο στη μνήμη και μπορούν να ενσωματώνονται ή να συνδυάζονται με άλλα. Επίσης, πλέον υπάρχουν εργαλεία λογισμικού που καλύπτουν οποιαδήποτε ανάγκη ανάπτυξης λογισμικού. Στην παρούσα εφαρμογή γίνεται χρήση της γλώσσας προγραμματισμού PHP, της MySQL για την διαχείριση της βάσης δεδομένων, των CSS και HTML, Javascript καθώς και της πλατφόρμας ΧAMPP Control Panel.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου 1.1 Xampp Control Panel Το ΧAMPP Control Panel είναι μια πλατφόρμα ελεύθερου λογισμικού που δημιουργήθηκε για την περαιτέρω προώθηση και ανάπτυξη του Apache Web Server. Η παρούσα πλατφόρμα περιέχει ένα τοπικό εξυπηρετητή διαδικτύου (web server) ο οποίος εγκαθίσταται τοπικά στον υπολογιστή του χρήστη και μπορεί να εξυπηρετήσει δυναμικές ιστοσελίδες. Επειδή πολλοί χρήστες δυσκολεύονται να εγκαταστήσουν μεμονωμένα στον ηλεκτρονικό τους υπολογιστή τον εξυπηρετητή διαδικτύου (web server) Apache όταν μάλιστα σε αυτόν πρόκειται να προστεθούν και επιπλέον λειτουργίες όπως η PHP και η MySQL, καταφεύγουν στο ΧAMPP Control Panel. (http://sawmac.com/xampp/) Εκτός από την PHP, την MySQL περιέχει και την Perl και είναι πολύ εύκολο στη χρήση και στην εγκατάσταση κάτι που είναι ιδιαίτερα εύκολο καθώς η όλη διαδικασία εγκατάστασης γίνεται αυτόματα μέσα από ένα γραφικό περιβάλλον. Εικόνα 1: Πίνακας ελέγχουν του XAMPP για start/stop modules. Σελίδα 11 από 75

Όπως βλέπουμε στην εικόνα 2.1. το XAMPP είναι ένα ολοκληρωμένο σύστημα που περιέχει Apache, MySQL, FileZila ftp, phpmyadmin, Perl, mercury mail server και υποστήριξη SSL όπου όλα αυτά διατίθενται με αυτοματοποιημένη εγκατάσταση και ρυθμίσεις. Στα πλαίσια της παρούσας εφαρμογής θα χρειαστούν η PHP, ο Apache και η MySQL. Να σημειωθεί, πως όλα αυτά υπάρχουν ξεχωριστά στο διαδίκτυο και μπορεί ο καθένας να τα κατεβάσει δωρεάν, όμως η αυτόνομη εγκατάσταση είναι πιο χρονοβόρα και λίγο πιο πολύπλοκη και γι αυτό το λόγο επιλέχθηκε το XAMPP στην προκειμένη περίπτωση. (http://www.apachefriends.org) Τα αρχικά του ονόματος προέρχονται από τα εξής, X: cross platform, δηλαδή ανεξάρτητη πλατφόρμα λογισμικού, Α από τον Apache HTTP server, Μ: MySQL, P: PHP, P: Perl, όπου για τα τρία πρώτα θα αναφερθούμε εκτενέστερα παρακάτω. Για την παρούσα πτυχιακή εργασία χρησιμοποιήθηκε η έκδοση XAMPP for Windows- win32-1.8.3. Η έκδοση αυτή επιπλέον περιλαμβάνει τα εξής: Apache 2.4.4 MySQL 5.6.11 PHP 5.5.3 phpmyadmin 4.0.4 FileZilla FTP Server 0.9.41 Tomcat 7.0.42 (with mod_proxy_ajp as connector) Strawberry Perl 5.16.3.1 Portable XAMPP Control Panel 3.2.1 (from hackattack142) 1.1.1 Apache HTTP Server Η δουλειά ενός εξυπηρετητή διαδικτύου (web server) είναι βασικά να δέχεται αιτήσεις από τους πελάτες και να στέλνει απαντήσεις στις αιτήσεις αυτές. Ένας εξυπηρετητής διαδικτύου (web server) παίρνει ένα URL, αυτό μεταφράζεται σε ένα όνομα αρχείου (για στατικές αιτήσεις) και στέλνει το αρχείο πίσω μέσω του διαδικτύου από τον τοπικό δίσκο, ή μεταφράζεται σε ένα όνομα προγράμματος (για δυναμικές αιτήσεις), το εκτελεί και στη συνέχεια στέλνει το αποτέλεσμα αυτού του προγράμματος πίσω μέσω του διαδικτύου. Αν για οποιονδήποτε λόγω, ο εξυπηρετητής διαδικτύου (web server) δεν ήταν σε θέση να επεξεργαστεί και να συμπληρώσει την αίτηση, επιστρέφει ένα μήνυμα σφάλματος. (http://wiki.jetbrains.net/intellij/)

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 2: Client-Server αρχιτεκτονική Ο Apache είναι ο δημοφιλέστερος εξυπηρετητής διαδικτύου (web server) που διατίθεται. Οι λόγοι που συμβαίνει αυτό, είναι οι εξής: Είναι δωρεάν για κατέβασμα και εγκατάσταση. Είναι open source: ο πηγαίος κώδικας είναι ορατός στον καθένα και οπουδήποτε, το οποίο ουσιαστικά επιτρέπει στον καθένα να πειράξει τον κώδικα, να τον βελτιώσει και να διορθώσει τα λάθη και τα κενά ασφαλείας. Μπορούν ακόμη να προστεθούν νέα χαρακτηριστικά και να γραφούν νέα modules. Ταιριάζει σε όλες τις ανάγκες: Ο Apache μπορεί να χρησιμοποιηθεί για μικρές ιστοσελίδες που αποτελούνται από μια ή δύο σελίδες, ή για τεράστιες ιστοσελίδες με εκατοντάδες σελίδες, εξυπηρετώντας εκατομμύρια τακτικούς επισκέπτες κάθε μήνα. Φυσικά μπορεί να εξυπηρετήσει τόσο στατικό όσο και δυναμικό περιεχόμενο. Κύρια χαρακτηριστικά αυτού του εξυπηρετητή διαδικτύου (web server) τον καθιστούν στενό ανταγωνιστή με άλλους παρόμοιους εξυπηρετητές (server). Υπάρχει ενσωματωμετωμένη υποστήριξη για ένα ευρύ φάσμα γλωσσών προγραμματισμού όπως οι Perl, Python και PHP. Ο Apache περιλαμβάνει επίσης υποστήριξη SSL και TLS. Υπάρχει μεγάλη ποικιλία των λειτουργικών συστημάτων που υποστηρίζουν τον Apache και συγκεκριμένα τα UNIX, Windows NT, Mac OS. Άλλες συσκευές επεξεργασίας όπως η Intel 80 x 86 σε συνδυασμό με τα Windows και τα Linux ή Unix λειτουργικά συστήματα με οποιοδήποτε επεξεργαστή, μπορεί να υποστηρίξει εύκολα τον Apache. Ο πηγαίος κώδικας του Apache είναι ανοιχτός και αυτό έχει το πλεονέκτημα ότι τα σφάλματα ανακοινώνονται και διορθώνονται εύκολα. Αυτές οι διορθώσεις και λύσεις παρέχουν μεγάλη ασφάλεια και σταθερότητα. (http://www.apacheweek.com/) Σελίδα 13 από 75

Ιστορική αναδρομή του Apache 2 Ο όμιλος Apache άρχισε να κάνει σχέδια για τον Apache 2.0 ήδη από το καλοκαίρι του 1996, λίγο μετά την κυκλοφορία του Apache 1.1.1. Τον Ιούλιο του 1996 το θέμα 24 του Apache Week, κάλυψε τις πρώτες συζητήσεις για το multithreading. Ένα μήνα αργότερα, τον Αύγουστο του 1996, το θέμα 128 του Apache Week ασχολήθηκε με το πόσο χρήσιμο θα ήταν το φιλτράρισμα και τους τρόπους υλοποίησης του. Τελικά, το φιλτράρισμα προστίθεται τέσσερα χρόνια αργότερα στον Apache 2.0, τον Αύγουστο του 2000. (http://www.apacheweek.com/) Τον Φεβρουάριο του 1997, η ομάδα Apache εξέτασε τα σχέδια για τον διακομιστή (server) μετά την κυκλοφορία της έκδοσης 1.2. Τα σχέδια περιελάμβαναν την επανεγγραφή ενός σημαντικού κομματιού κώδικα για την υποστήριξη του multithreading, των φίλτρων και τις αφαιρέσεις OS ώστε να επιτραπούν για εκδόσεις του Apache σε Windows NT και άλλα συστήματα. Η εβδομάδα 54 του Apache Week κάλυψε τα θέματα αυτά και προέβλεψε ότι ο Apache 2.0 είναι πιθανό να πάρει κάποιο χρόνο. Τον Μάιο του 1997 η ομάδα αποφάσισε ότι οι εκδόσεις των Windows θα είναι έξω από την κύρια προσπάθεια ανάπτυξης του Apache. Ο στόχος για το 2.0 ήταν να διασφαλιστεί ότι ο ίδιος κώδικας χρησιμοποιείται για όλα τα συστήματα με ένα σύνολο από ρουτίνες συγκεκριμένης πλατφόρμας για τον χειρισμό οποιασδήποτε διαφοράς μεταξύ των λειτουργικών συστημάτων. Τον Ιούνιο, κυκλοφόρησε τελικά ο Apache 1.2 και άρχισαν οι εργασίες σχετικά με τις απαιτήσεις για τον ανασχεδιασμό του βασικού κώδικα του Apache. Στο θέμα 69 του Apache Week συζητήθηκε η ανάγκη για πρόσθετες φάσεις επεξεργασίας, και τα σχέδια για ένα γραφικό διαχειριστή διαμόρφωσης. (http://www.apacheweek.com/) Όλα τα σχέδια για Apache 2.0 συνοψίστηκαν το Φεβρουάριο του 1998, στο θέμα 102 του Apache week. Οι σημαντικότερες αλλαγές που συζητήθηκαν ήταν το multithreading, το φιλτράρισμα, τα νέα μοντέλα διαδικασίας, η καλύτερη διαμόρφωση του συστήματος, οι αλλαγές API καθώς και αλλαγές στην διαμόρφωση σύνταξης. Επίσης, δόθηκαν κάποιες σκέψεις για την επανεγγραφή του Apache σε C++, αλλά αυτή η ιδέα αργότερα απορρίφθηκε. Τον Ιούνιο του 1998 οι προγραμματιστές του βασικού κώδικα του Apache συναντήθηκαν για πρώτη φορά για να συζητήσουν την οργανωτική δομή του ομίλου Apache, καθώς και τα σχέδια για τον Apache 2.0. Το θέμα 121 του Apache Week καλύπτει αυτή τη συνάντηση. (http://www.apacheweek.com/)

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Πάνω από ένα χρόνο αργότερα, τον Σεπτέμβριο του 1999, επανεξετάστηκε η ανάπτυξη του κώδικα του Apache 2.0 σε ένα ιδιαίτερο χαρακτηριστικό, την Προεπισκόπηση Apache 2.0. Σε αυτό το στάδιο αναμένεται ένα beta στα τέλη του 1999 ή στις αρχές του 2000. 1.1.2 PhpMyAdmin Το PhpMyAdmin αποτελεί ένα εργαλείο συγγραφής λογισμικού. Πιο συγκεκριμένα είναι ένα δωρεάν εργαλείο λογισμικού, το οποίο είναι γραμμένο σε γλώσσα php και το οποίο χρησιμοποιείται στη διαχείριση της MySQL μέσω του Παγκόσμιου Ιστού ή αλλιώς του World Wide Web. Επομένως, έχει σκοπό τη διαχείριση της βάσης δεδομένων, είναι δηλαδή ο ενδιάμεσος μεταξύ του χρήστη και της MySQL. Διαθέτει ένα πολύ φιλικό περιβάλλον χρήστη το οποίο επιτρέπει στον χρήστη να εκτελεί με ευκολία τις λειτουργίες διαχείρισης της βάσης δεδομένων. Να τονίσουμε ότι στις λειτουργίες τις οποίες είναι καθορισμένο να εκτελεί περιλαμβάνονται, γενικά η όλη διαχείριση των Βάσεων Δεδομένων από πλευράς δημιουργίας νέων, κατάργησης παλαιών ή επεξεργασίας υπαρχουσών. Επιπλέον διαθέτει καθορισμένες λειτουργίες εσωτερικής επεξεργασίας των βάσεων δεδομένων που αφορούν την δημιουργία πινάκων, στηλών, πεδίων και γενικά στη διαχείριση αυτών καθώς και στην επεξεργασία των δεδομένων από και προς αυτή. (Delisle M, 2010) Σελίδα 15 από 75

Εικόνα 3: Το περιβάλλον της PhpMyAdmin Κάτι ακόμη σημαντικό είναι η δυνατότητα που δίνεται στους χρήστες για τον καθορισμό των δικαιωμάτων πρόσβασης, εισαγωγής, διαγραφής κ.α. Το συγκεκριμένο εργαλείο συγγραφής λογισμικού μεταφράζεται σε 68 γλώσσες και υποστηρίζει τόσο LTR όσο και RTL γλώσσες για την διευκόλυνση των χρηστών του. Το εργαλείο αυτό ουσιαστικά αποτελεί μια web εφαρμογή που περιέχει XHTML, CSS και Javascript. Το έργο αυτό φιλοξενείται από την SourceForge.net ενώ αποτελεί εργασία και δημιούργημα των Oliver Muller, Marc Delisle και Loic ενώ ο εμπνευστής της ιδέας μιας εφαρμογής για τον σκοπό αυτό υπήρξε ο Tobias Ratschiller, αργότερα ιδρυτής του λογισμικού Maguma, που λόγω φόρτου εργασίας το ανέθεσε στους τρεις προαναφερθέντες. Η πρώτη σταθερή έκδοση ήταν η 2.2.0 και κυκλοφόρησε το 2001 ελεύθερη, έκτοτε και μέχρι σήμερα έχουν κυκλοφορήσει σε μικρό χρονικό διάστημα άλλες τρεις εκδόσεις. (Delisle M, 2010) Κάποια από τα χαρακτηριστικά της PhpMyAdmin είναι η φιλικότητα προς τους χρήστες μέσω κατάλληλου γραφικού περιβάλλοντος. Υποστηρίζει σχεδόν όλες τις λειτουργίες της MySQL. Επιτρέπει την εισαγωγή δεδομένων τύπου CSV και SQL καθώς και την εξαγωγή δεδομένων υπό μορφές CSV, SQL, PDF, TEXT διαφόρων τύπων φύλλων λογισμικού ή κειμενογράφων όπως το Word, το LATEΧ και άλλα. Επίσης έχει ενσωματωμένα ένα σύνολο προκαθορισμένων λειτουργιών όπως την εμφάνιση BLOCK- DOCUMENT με τη μορφή εικόνας τα οποία αν είναι αποθηκευμένα μπορεί να τα μετατρέψει σε οποιαδήποτε άλλη μορφή. Τέλος, η έκδοση 4.0.8 του PhpMyAdmin που χρησιμοποιήθηκε για την

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου παρούσα εργασία περιλαμβάνει επιπλέον νέες μονάδες εισαγωγής και εξαγωγής, σύστημα παρακολούθησης των αλλαγών, συγχρονισμό και υποστήριξη για την διαμόρφωση και την ενημέρωση νέων εκδόσεων. Ακόμη διαθέτει Ajaxification ορισμένων τμημάτων, περισσότερα διαγράμματα με ευκολίες οπτικής απεικόνισης ερωτημάτων καθώς και των σχέσεων μεταξύ των πινάκων όπως και τις επιλογές για τη διαχείριση των τύπων των πεδίων ENUM και SET. (Delisle M, 2010) 1.2 Γλώσσες σήμανσης Οι γλώσσες σήμανσης αποτελούν τον τρόπο με τον οποίο οι web browsers αποκωδικοποιούν τις ιστοσελίδες στο web. Δεν μιλάμε για γλώσσες προγραμματισμού αφού δεν έχουν όλα εκείνα τα απαραίτητα στοιχεία για να χαρακτηριστούν έτσι π.χ δεν μπορεί να γίνει ανάθεση εντολών. Μια γλώσσα σήμανσης είναι ένα σύγχρονο σύστημα σχολιασμού κειμένου. Η ιδέα και η ορολογία εξελίχθηκε από τον τρόπο που παραδοσιακά κρατάμε σημειώσεις σε ένα χαρτί. Λέξεις εμπεριέχονται μέσα σε ετικέτες οι οποίες ονομάζονται tags. Αυτές οι ετικέτες δεν εμφανίζονται στον τελικό χρήστη αλλά δίνουν σημαντικές πληροφορίες στον browser για το πως θα εμφανίσει ένα κείμενο. Μια ευρέως χρησιμοποιούμενη γλώσσα σήμανσης είναι η HTML στην οποία θα αναφερθούμε αναλυτικότερα παρακάτω. Υπάρχουν τρεις κατηγορίες γλωσσών σήμανσης. Η Presentational markup, η Procedural markup, και η Descriptive markup. Το πρώτο είδος χρησιμοποιείται παραδοσιακά για την επεξεργασία κειμένου από το σύστημα. Δυαδικοί κώδικες ενσωματωμένοι σε έγγραφα κειμένου παράγουν το αποτέλεσμα WYSIWYG (What You See Is What You Get). Η procedural markup είναι ενσωματωμένη σε κείμενο και παρέχει οδηγίες σε προγράμματα που πρόκειται να επεξεργαστούν. Γνωστά παραδείγματα είναι τα LaTex, troff και PostScript. Ο επεξεργαστής τρέχει μέσα από το κείμενο από την αρχή μέχρι το τέλος ακολουθώντας τις οδηγίες που είναι γραμμένες σε procedural markup language. 1.2.1 HTML και HTML 5 Η HTML5 είναι μια υπό ανάπτυξη γλώσσα markup για τον Παγκόσμιο Ιστό που όταν ετοιμαστεί θα είναι η επόμενη μεγάλη έκδοση της HTML. Η Hypertext Application Technology Working Group (WHATWG) ξεκίνησε να εργάζεται πάνω σε αυτήν την έκδοση τον Ιούνιο του 2004 με το κωδικό όνομα Web Applications 1.0.Τον Φεβρουάριο του 2010 το πρότυπο βρισκόταν ακόμα σε επίπεδο LastCall. Με τον ερχομό της HTML 5 θα αντικατασταθούν οι HTML 4.01, XHTML 1.0 και DOM Level 2 HTML. (Julie C., 2010) Σελίδα 17 από 75

Πρωταρχικός ρόλος της HTML 5 είναι η μείωση της ανάγκης για ιδιόκτητα plug - in και διαδικτυακές εφαρμογές όπως το Adobe Flash, το Microsoft Silverlight, το Apache Pivot, και η Sun JavaFX. Η HTML5 περιέχει το πρότυπο WebForms 2.0 που είναι επίσης της WHATWG ενώ οι συντάκτες της είναι ο Ίαν Χίκσον της εταιρίας Google και ο Ντέιβ Χίατ της εταιρίας Apple. Βασικοί κανόνες που έχουν οριστεί για την HTML5 είναι: Βάση για τα νέα χαρακτηριστικά να είναι οι HTML, CSS, DOM, και η JavaScript, Ελαχιστοποίηση των plug-ins Καλύτερη λειτουργία εντοπισμού λαθών Περισσότερο markup για να αντικατασταθεί το scripting, και Πλήρη συμβατότητα ανεξαρτήτως συσκευής. Νέα χαρακτηριστικά της είναι: Το στοιχείο canvas για το drawing Τα στοιχεία video και audio για αναπαραγωγή πολυμέσων Νέα στοιχεία περιεχομένου όπως τα footer, header, nav και section και Νέα στοιχεία δημιουργίας φόρμας όπως τα calendar, date, time, email, url και search. Συνοψίζοντας λοιπόν σε πρώτο στάδιο, η καινούργια έκδοση της HTML έχει φτιαχτεί έτσι ώστε να βοηθήσει τους developers να χτίσουν καλύτερες και πιο δομημένες web εφαρμογές και όχι μόνο έγγραφα, ενώ η δύναμη της πηγάζει κυρίως από τις προσθήκες API και τεχνολογιών που προσφέρουν ελευθερία και έλεγχο στους developers, και όχι τόσο από τα νέα tags, τα οποία είναι και το ευκολότερο μέρος εκμάθησης της νέας markup. (Mike Wooldridge, 2008) 1.2.2 CSS και CSS3 Τα CSS (Cascading Style Sheets) είναι ένα είδος αρχείων που χρησιμεύουν στην διαμόρφωση μιας ιστοσελίδας. Περιέχουν οδηγίες σχετικά με το στυλ του κειμένου, το χρώμα του, την θέση του κλπ, μέσα σε μια σελίδα. Χρησιμοποιώντας τα CSS μπορούμε πολύ πιο εύκολα και γρήγορα να πειράξουμε την εμφάνιση μιας ιστοσελίδας και να διαλέξουμε την καλύτερη. Η βασική ιδέα τους είναι ότι χωρίζουμε την ιστοσελίδα σε «περιοχές» που έχουν κάποιο όνομα. Σε κάθε τέτοια περιοχή δίνουμε και μία ιδιότητα και ρυθμίζουμε κάποιες παραμέτρους της που ισχύουν μόνο για αυτή την περιοχή. Στην ίδια την σελίδα τώρα χρησιμοποιούμε tags που

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου δηλώνουν ότι κάποιο κομμάτι ανήκει σε κάποια περιοχή και αυτό εμφανίζεται με τον κατάλληλο τρόπο. (Julie C., 2010) Τα πλεονεκτήματα της CSS συνοπτικά είναι: Ελαχιστοποίηση χρόνου φόρτωσης μιας σελίδας, αφού μικραίνει το μέγεθος των αρχείων μιας σελίδας. Ελαχιστοποίηση χρόνου γραφής κώδικα. Προσβασιμότητα από όλους τους φυλλομετρητές περιηγητές - web browsers (π.χ. Explorer). Είναι πιστοποιημένο από το W3C, τον μεγαλύτερο οργανισμό Web Standards παγκοσμίως. 5. Ομοιόμορφη εμφάνιση όλων των σελίδων μιας ιστοσελίδας, αφού συνδέονται με το ίδιο αρχείο CSS. Είναι SEO friendly(search engine optimization). Οι μηχανές αναζήτησης δεν «μπερδεύονται» ανάμεσα στο περιεχόμενο και τη μορφοποίηση του, αλλά έχουν πρόσβαση στο περιεχόμενο σκέτο, οπότε είναι πολύ ευκολότερο να το καταγράψουν και να το αρχειοθετήσουν. Η CSS είναι σχετικά πολύ εύκολη γλώσσα στην εκμάθησή της. Η τελευταία αναθεώρηση ήταν πρόσφατη με την έκδοση CSS 3 που υποστηρίζεται από όλους τους σύγχρονους περιηγητές διαδικτύου (Browsers). (Mike Wooldridge, 2008) Δομή CSS Ένας κανόνας έχει το ίδιο όνομα με την ετικέτα HTML που θα εφαρμοστεί. Οι εντολές του κανόνα που θα εφαρμοστούν τοποθετούνται σε ένα μπλοκ που αρχίζει με τον χαρακτήρα { και τελειώνει με }. Κάθε κανόνας αποτελείται από δύο τμήματα, τον επιλογέα και τους ορισμούς. (Julie C., 2010) Δομή CSS Μπορούμε να ορίσουμε γενικούς κανόνες, που σημαίνει ότι οι εντολές του θα εφαρμοστούν σε όλες τις ετικέτες HTML που έχουν ίδιο όνομα με τον επιλογέα. Ένας τέτοιος κανόνας έχει την εξής μορφή: Σελίδα 19 από 75

επιλογέας { ιδιότητα1: τιμή; ιδιότητα2: τιμή;... ιδιότητα-ν: τιμή; } Οι εντολές αυτού του κανόνα εφαρμόζονται αυτόματα στις ετικέτες όταν συμπεριλαμβάνεται η ετικέτα <link rel="stylesheet" type="text/css" href="αρχείο.css"> στην επικεφαλίδα. Μπορούμε να ορίσουμε κανόνες ειδικά για μια συγκεκριμένη ετικέτα. Αυτό επιτυγχάνεται με τη χρήση των κλάσεων. Η δομή ενός τέτοιου κανόνα είναι ως εξής: επιλογέας.όνομα_κλάσης { ιδιότητα1: τιμή; ιδιότητα2: τιμή;... ιδιότητα-ν: τιμή; } Για να εφαρμόζονται οι εντολές αυτού του κανόνα στις ετικέτες πρέπει να χρησιμοποιηθεί η class= όνομα_κλάσης σαν ιδιότητα στις ετικέτες. Με τον τρόπο αυτό έχουμε τη δυνατότητα να εφαρμόζουμε τις μορφοποιήσεις μόνο στις ετικέτες που θέλουμε. (Mike Wooldridge, 2008) Μπορούμε να ορίσουμε κανόνες που θα εφαρμόζονται σε μια μόνο ετικέτα στην ιστοσελίδα. Ο κανόνας αυτός χρησιμοποιεί την ιδιότητα id, που είναι μοναδική για κάθε ετικέτα και εφαρμόζει τις εντολές μόνο στην ετικέτα που έχει σαν id τον επιλογέα. Η δομή ενός τέτοιου κανόνα είναι ως εξής: επιλογέας#id_ετικέτας { ιδιότητα1: τιμή; ιδιότητα2: τιμή;... ιδιότητα-ν: τιμή; } Μπορούμε να ορίσουμε κανόνες που εφαρμόζονται σε ορισμένα στοιχεία της σελίδας με τις ψευδοκλάσεις. Η δομή ενός τέτοιου κανόνα είναι ως εξής: επιλογέας:ψευδοκλάση { ιδιότητα1: τιμή; ιδιότητα2: τιμή;...

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου } ιδιότητα-ν: τιμή; Γενικά η δημιουργία μιας εφαρμογής στο διαδίκτυο περιλαμβάνει πολλές σελίδες παρακάτω δίνουμε μια μικρή περιγραφή των διαφόρων όρων που χρησιμοποιούνται και θα μας είναι χρήσιμη στην δημιουργία της εφαρμογής μας. (Julie C., 2010) 1.3 PHP και JavaScript Ο προγραμματισμός από την πλευρά του εξυπηρετητή (server side scripting) αφορά μια Web Server τεχνολογία κατά την οποία η αίτηση ενός χρήστη πραγματοποιείται με ένα κώδικα, που τρέχει απευθείας στον εξυπηρετητή διαδικτύου (web server) και παράγει δυναμικά HTML ή άλλα αρχεία. Γενικά τα server-side scripts μπορούν να κάνουν τα παρακάτω: Να τροποποιήσουν δυναμικά το περιεχόμενο της σελίδας Να απαντήσουν σε ερωτήματα και δεδομένα χρηστών μέσα από φόρμες HTML Να δίνουν πρόσβαση σε δεδομένα και βάσεις δεδομένων και να τα επιστρέφουν στον φυλλομετρητή (browser). Η PHP είναι μια γλώσσα προγραμματισμού για την δημιουργία σελίδων web με δυναμικό περιεχόμενο. Μια σελίδα PHP περνά από επεξεργασία από ένα συμβατό εξυπηρετητή (server) του Παγκόσμιου Ιστού (π.χ. Apache), ώστε να παραχθεί σε πραγματικό χρόνο το τελικό περιεχόμενο, που θα σταλεί στον φυλλομετρητή (browser) των επισκεπτών σε μορφή κώδικα HTML. (Huches S., 2002) 1.3.1 Πλεονεκτήματα της PHP Στην παρούσα εφαρμογή χρησιμοποιήθηκε η γλώσσα προγραμματισμού PHP, η επιλογή της οποίας βασίστηκε στα πλεονεκτήματα που παρουσιάζει, τα οποία μπορούν να συνοψιστούν στα εξής: Κόστος. Η PHP είναι γλώσσα ανοιχτού κώδικα που σημαίνει ότι ο πηγαίος κώδικας είναι διαθέσιμο προς όλους για χρήση, για τροποποίηση και αναδιανομή χωρίς κάποιο κόστος. Διαθεσιμότητα πηγαίου κώδικα. Αντίθετα με τα εμπορικά κλειστού κώδικα προϊόντα, ο ανοιχτός διαθέσιμος κώδικας της PHP Σελίδα 21 από 75

προσφέρει την δυνατότητα τροποποίησης του. Έτσι, μπορεί να γίνει οποιαδήποτε διόρθωση ή αναβάθμιση από τον χρήστη ή από κάποια ομάδα ανεξάρτητων χρηστών, χωρίς εξάρτηση από κάποια εταιρία. Υποστήριξη. Η Zend, η εταιρία που υποστηρίζει την PHP, χρηματοδοτεί την ανάπτυξη της, προσφέροντας υποστήριξη και σχετικό λογισμικό σε εμπορική βάση. Απόδοση. Η PHP είναι πολύ αποδοτική. Με ένα φτηνό εξυπηρετητή (server) μπορούν να εξυπηρετηθούν εκατομμύρια επισκέψεις σε ημερήσια βάση. Η PHP είναι διαθέσιμη σε πολλά λειτουργικά συστήματα και συνήθως ο κώδικας δουλεύει χωρίς αλλαγές σε διαφορετικά λειτουργικά συστήματα που τρέχουν την PHP. Παραδείγματα λειτουργικών συστημάτων στα οποία τρέχει η PHP είναι τα Windows, Linux, Unix, Solaris, FreeBSD, IRIX. Διασύνδεση με πολλά διαφορετικά συστήματα βάσεων δεδομένων. Η PHP έχει δικές της συνδέσεις με πολλά συστήματα βάσεων δεδομένων όπως: MySQL, PostgreSQL, msql, Oracle, dbm, filepro, Hyperwave, Informix, InderBase, Sybase και άλλες. Έχει επίσης ενσωματωμένη SQL διασύνδεσης στο επίπεδο αρχείο SQLite. Με την χρήση του standard ODBC μπορεί να συνδεθεί σε οποιαδήποτε βάση έχει πρόγραμμα οδήγησης ODBC (όπως τα προϊόντα της Microsoft). Ενσωματωμένες Βιβλιοθήκες. Η PHP έχει πολλές ενσωματωμένες βιβλιοθήκες που εκτελούν πολλές χρήσιμες λειτουργίες. Δυναμική δημιουργία εικόνων GIF, σύνδεση με άλλες υπηρεσίες δικτύων, ανάλυση XML, αποστολή e-mail, δημιουργία εγγράφων pdf. Ευκολία εκμάθησης. Η σύνταξη της PHP βασίζεται σε άλλες γλώσσες προγραμματισμού, κυρίως στην C και στην Perl. Οι γνωστές μας γλώσσες προγραμματισμού της οικογένειας C επιτρέπουν σε κάποιον να ξεκινήσει αμέσως τον προγραμματισμό στην PHP. Αντικειμενοστραφής υποστήριξη. Στην PHP υπάρχουν οι γνωστές από την C++ και την Java αντικειμενοστραφείς λειτουργίες όπως η κληρονομικότητα, οι ιδιωτικές και προστατευμένες ιδιότητες και μέθοδοι, οι αφηρημένες κλάσεις και μέθοδοι, οι διασυνδέσεις, οι συναρτήσεις δημιουργίας. Επίσης, υπάρχουν και άλλες λιγότερο δημοφιλείς λειτουργίες. (Gutmans A., 2004) 1.3.2 Λειτουργικά Χαρακτηριστικά της PHP

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Η PHP είναι στην ουσία μια γλώσσα script (συμβάντων) και όχι γλώσσα προγραμματισμού. Αυτό σημαίνει ότι είναι σχεδιασμένη για να εκτελεί μια ενέργεια μετά από κάποιο συμβάν, όπως για παράδειγμα αν ο χρήστης πατήσει κάποιο link στην ιστοσελίδα. Επιπλέον η PHP λειτουργεί στην πλευρά του εξυπηρετητή (server), δηλαδή εγκαθίσταται στον εξυπηρετητή (server) και τα script που είναι γραμμένα σε αυτή χρησιμοποιούν πόρους από τον υπολογιστή server για την εκτέλεση τους και τα αποτελέσματα της εκτέλεσης στέλνονται στον client σε μορφή html. Αυτός είναι και ο λόγος που η PHP δεν μπορεί να χρησιμοποιηθεί για αναδυόμενα μενού, άνοιγμα νέων παραθύρων, προσθήκη εφέ και ενεργειών με τη μετακίνηση του ποντικιού. Αντίθετα, αυτά μπορούν να γίνουν με άλλες γλώσσες script που χρησιμοποιούν τεχνολογία πελάτη (όπως η Javascript). Επιπλέον ο κώδικας της PHP παρεμβάλλεται σε κώδικα html (με κατάλληλη σήμανση στην αρχή και στο τέλος του κώδικα PHP). Ο κώδικας της PHP δεν εκτελείται αυτόνομα αλλά ταυτόχρονα (γραμμή προς γραμμή) με τον κώδικα της html. (Huches S., 2002) Η συγγραφή του κώδικα PHP είναι σχετικά εύκολη υπόθεση. Γράφεται ταυτόχρονα με τον html κώδικα και ενσωματώνεται σε αυτόν. Ο κώδικας της PHP ξεχωρίζει από την html με τα κατάλληλα tags έναρξης τερματισμού τα οποία εξαρτώνται από τις ρυθμίσεις που έχουν γίνει στην εγκατάσταση της PHP (συνήθως το tag έναρξης είναι <?php και του τερματισμού?>). Τα αρχεία που περιέχουν php scripts πρέπει να αποθηκευτούν με κατάλληλη κατάληξη (*.php). (Chen W., 2006) Όταν ενσωματωθεί κώδικας PHP σε μια ιστοσελίδα, εκτελούνται οι παρακάτω διαδικασίες: Ο επισκέπτης ζητάει μια ιστοσελίδα με την διεύθυνση της με την βοήθεια του φυλλομετρητή (browser). Ο φυλλομετρητής (browser) μεταβιβάζει την αίτηση στον εξυπηρετητή (server) που στην περίπτωση μας είναι ο Apache. Τότε η PHP επεξεργάζεται το αρχείο που αφορά την αίτητη στον Apache και εκτελεί το μέρος του κώδικα που την αφορά (βρίσκεται μέσα σε tags). Η PHP επιστρέφει τα αποτελέσματα σε μορφή html. Ο κώδικας html επιστρέφεται στον φυλλομετρητή (browser) του πελάτη. (Chen W., 2006) Η διαδικασία της συγγραφής του κώδικα PHP μπορεί να γίνει με έναν απλό text editor (όπως και στην HTML). Αυτή η μέθοδος προσφέρει τη μέγιστη εποπτεία του κώδικα στον προγραμματιστή αλλά είναι χρονοβόρα διαδικασία και επίπονη. Για την αντιμετώπιση των Σελίδα 23 από 75

προβλημάτων αυτών μπορεί να γίνει χρήση κάποιων από τα πολλά εργαλεία που υπάρχουν, πολλά από τα οποία είναι ανοιχτού κώδικα (open source). Τα εργαλεία αυτά συνήθως προσφέρουν έτοιμε κάποιες δομές ή προσθέτουν κάποια χαρακτηριστικά στις σελίδες με ένα απλό κλικ. Οι δομές αυτές μπορεί να είναι αρκετές γραμμές κώδικα που θα απαιτούσε χρόνο για να γραφτεί με το χέρι. Όμως σε καμία περίπτωση δεν μπορούν να αντικαταστήσουν την δύναμη που προσφέρει η συγγραφή κώδικα με το χέρι. Δεν μπορεί ο προγραμματιστής να επαναπαυθεί στο ότι θα εισάγει μια δομή στον κώδικα του με ένα απλό κλικ. Έτσι είναι σύνηθες μετά την προσθήκη μιας δομής με αυτόν τον τρόπο να απαιτείται χειροκίνητη παρέμβαση στον κώδικα. (Gutmans A., 2004) 1.3.3 JavaScript Η JavaScript είναι μια γλώσσα script (συμβάντων) η οποία σχεδιάστηκε ειδικά για να δουλεύει με το World Wide Web. Έχει σαν σκοπό την παραγωγή δυναμικού περιεχομένου και την εκτέλεση κώδικα από την πλευρά του πελάτη (client side scripting) σε ιστοσελίδες. Έχει παρόμοια σύνταξη με την C, όπως η PHP, αλλά η εκτέλεση του κώδικα της JavaScript δεν γίνεται από τον εξυπηρετητή (server), όπως η PHP, αλλά από τον φυλλομετρητή (browser) ιστοσελίδας. Με την JavaScript μπορούν να δημιουργηθούν σενάρια που να εκτελούν αυτόματες εργασίες, π.χ. όταν ανοίγει μια ιστοσελίδα. Επίσης μπορεί να εκτελεί ενέργειες ανταποκρινόμενη σε ένα συγκεκριμένο γεγονός, όπως όταν εστιάζει σε ένα πεδίο μιας φόρμας. Μπορούν να δημιουργηθούν σενάρια με πιο σύνθετες και πολύπλοκες εργασίες, όπως ο έλεγχος μιας φόρμας που υποβάλει ένας χρήστης και στη συνέχεια να προειδοποιεί τον χρήστη σε περίπτωση σφάλματος. Ένα αρχείο που περιέχει κώδικα JavaScript έχει την κατάληξη *.js. Μπορεί επίσης, όπως και η PHP, να ενσωματωθεί σε ένα αρχείο HTML αρκεί να περικλείεται από τις ετικέτες <script language= JavaScript > και </script>.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου 1.4 MySQL Η MySQL είναι ένα, ανοιχτού κώδικα (open source), σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων. Το σύστημα διαχείρισης MySQL λοιπόν, δίνει την δυνατότητα της αποθήκευσης, αναζήτησης, ταξινόμησης, ομαδοποίησης και ανάκλησης δεδομένων με βάση την γλώσσα ερωτημάτων SQL. Το γεγονός ότι η MySQL είναι σχεσιακή συνεπάγεται ότι η οργάνωση των δεδομένων γίνεται σε διαφορετικούς πίνακες οι οποίοι σχετίζονται μεταξύ τους με κάποιο συγκεκριμένο τρόπο. Η MySQL επιπλέον μπορεί να ελέγχει την πρόσβαση στα δεδομένα, εξασφαλίζοντας έτσι την δυνατότητα η πρόσβαση να γίνεται από διαφορετικούς χρήστες. Κάθε χρήστης έχει συγκεκριμένα δικαιώματα πάνω στις βάσεις δεδομένων τα οποία του τα δίνει η MySQL. (Jeffery D., 1997), (Meloni J.C., 2009) 1.4.1 Πλεονεκτήματα της MySQL Παρακάτω παρατίθενται μερικά από τα πλεονεκτήματα της MySQL που την καθιστούν ανταγωνιστική έναντι άλλων πακέτων διαχείρισης βάσεων δεδομένων. Τα βασικά πλεονεκτήματα της είναι: Απόδοση. Η MySQL είναι αρκετά γρήγορη. Πολλές δοκιμές που έχουν γίνει δείχνουν ότι υπερέχει σε ταχύτητα έναντι των ανταγωνιστών της. Κόστος. Η MySQL είναι ανοιχτού κώδικα (open source) και διατίθεται δωρεάν για προσωπική χρήση. Η εμπορική άδεια της διατίθεται σε χαμηλό κόστος. Αυτό σημαίνει ότι αν κα ποιος θέλει να την χρησιμοποιήσει για εφαρμογές προσωπικής χρήσης ή για εφαρμογές που θα είναι ανοιχτού κώδικα δεν χρειάζεται να αγοράσει κάποια άδεια. Άδεια απαιτείται αν κάποιος τη χρησιμοποιήσει για εμπορικές εφαρμογές που δεν θα είναι ανοιχτού κώδικα. Ευκολία χρήσης. Η MySQL είναι αρκετά εύκολη στην εκμάθηση της, ακόμα και για κάποιον που δεν έχει ξαναχρησιμοποιήσει παρόμοια προϊόντα κατασκευής βάσεων δεδομένων. Η MySQL μπορεί να χρησιμοποιηθεί σε πολλά σύγχρονα λειτουργικά συστήματα. Είναι συμβατή με πολλές εκδόσεις των Microsoft Windows και με λειτουργικά Unix, όπως και με τις Σελίδα 25 από 75

διάφορες εκδόσεις του δημοφιλούς λειτουργικού ανοιχτού κώδικα Linux. Πηγαίος κώδικας. Η MySQL ανήκει στην οικογένεια του λογισμικού ανοιχτού κώδικα, όπως αναφέρθηκε προηγουμένως. Συνεπώς, ο καθένας μπορεί να αποκτήσει και να τροποποιήσει τον πηγαίο κώδικα της, προσαρμόζοντάς τον στις ανάγκες του ή διορθώνοντας τυχόν bugs. Επιπλέον το γεγονός ότι είναι διαθέσιμος ο πηγαίος κώδικας βοηθάει στη συνεχή ανανέωση και διόρθωση της MySQL αφού εκατομμύρια άνθρωποι σε όλο τον κόσμο εργάζονται πάνω σε αυτή. Έτσι δεν χρειάζεται κάποιος να περιμένει μια νέα επίσημη έκδοση κάποιας εταιρίας για την διόρθωση ενός bug, αφού αυτό γίνεται πολύ γρήγορα από τους χρήστες της. Επιπλέον δεν χρειάζεται να ανησυχεί κάποιος για την μελλοντική υποστήριξη της και τη συνέχιση λειτουργίας της σε μελλοντικές συνθήκες. Υποστήριξη. Στη σελίδα www.mysql.com υπάρχει μια τεράστια υποστήριξη πάνω στη MySQL με manual, tutorial, βοήθεια σε πιθανά προβλήματα. (Μανωλόπουλος Ι., 2006) 1.4.2 Σχεδιασμός Αποδοτικών Βάσεων Δεδομένων Οι σχεσιακές βάσεις δεδομένων αποτελούν ένα πολύτιμο εργαλείο στη διάθεση του προγραμματιστή. Πολλά σύγχρονα προβλήματα απαιτούν λύσεις μέσω λογισμικού το οποίο θα κάνει χρήση κάποιας βάσης δεδομένων. Ένα μεγάλο ζητούμενο σε αυτές τι περιπτώσεις είναι να γίνει ο καλύτερος και αποδοτικότερος δυνατός σχεδιασμός της απαιτούμενης βάσης δεδομένων. Αυτή η διαδικασία όμως δεν είναι καθόλου εύκολη. Δεν είναι εύκολη γιατί είναι πολλές οι παράμετροι που πρέπει να συμψηφιστούν ώστε να παραχθεί η βέλτιστη βάση δεδομένων που θα πληροί τις προδιαγραφές και τις απαιτήσεις. (H. Garcia-molina, 2002) Ο προγραμματιστής πρέπει να αποφασίσει ποιους πίνακες θα δημιουργήσει, τα πεδία του κάθε πίνακα, τις επιτρεπτές τιμές που πρέπει να αποθηκεύσει στο κάθε πεδίο, τις σχέσεις μεταξύ πινάκων, τα κλειδιά του κάθε πίνακα, τα ευρετήρια. Όλες αυτές οι παράμετροι είναι σχετιζόμενες μεταξύ τους. Συνεπώς αλλάζοντας τη μια από αυτές απαιτείται αυτόματος επαναπροσδιορισμός όλων των υπόλοιπων. (Meloni J.C., 2009)

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Ξεκινώντας λοιπόν κάποιος να σχεδιάσει μια βάση δεδομένων θα πρέπει να έχει στο νου του κάποιες βασικές αρχές: Πρέπει να αποφεύγεται η αποθήκευση επαναλαμβανόμενων δεδομένων. Η επαναλαμβανόμενη αποθήκευση δεδομένων έχει το μειονέκτημα της σπατάλης χώρου όπως και το μειονέκτημα της πιθανότητας λανθασμένων ενημερώσεων στης βάσης δεδομένων. Ένα λάθος ενημέρωσης μπορεί να συμβεί σε μια τέτοια περίπτωση επειδή η ίδια αλλαγή πρέπει να συμβαίνει ταυτόχρονα σε περισσότερους του ενός πίνακες, σε περισσότερα του ενός πεδία. Προτιμώνται οι ατομικές στήλες, δηλαδή κάθε πεδίο είναι προτιμότερο να περιέχει μόνο ένα πράγμα. Η αποθήκευση περισσότερων πραγμάτων στα πεδία μιας στήλης δημιουργεί προβλήματα αναζήτησης. Επιλογή μοναδικών κλειδιών και ταυτόχρονα αποφυγή δημιουργίας πλεοναζόντων κλειδιών. Σε κάθε πίνακα πρέπει να υπάρχει ένα κλειδί στήλη που θα είναι μοναδικό για κάθε εγγραφή, ώστε να είναι δυνατή η αναφορά στις εγγραφές με σύντομο και μονοσήμαντο τρόπο. Ταυτόχρονα πρέπει να αποφεύγεται η χρήση περισσότερων κλειδιών από αυτά που πραγματικά απαιτούνται. Καλό είναι να αποφεύγεται ο σχεδιασμός των βάσεων δεδομένων με τρόπο που να μένουν πολλά πεδία κενά. Αυτό αποτελεί σπατάλη χώρου και δημιουργούνται προβλήματα με συναρτήσεις όταν ζητούν δεδομένα από κενά αριθμητικά πεδία. Καλό είναι πριν τον σχεδιασμό της βάσης δεδομένων να υπάρχει πρόβλεψη των ερωτημάτων που θα γίνονται σε αυτή. Έτσι θα επιτευχθεί ένας σχεδιασμός που θα δίνει πιο γρήγορα και εύκολα τα αποτελέσματα των ερωτημάτων. (H. Garcia-molina, 2002) Σελίδα 27 από 75

Συμπεράσματα Συνοψίζοντας το κεφάλαιο περί των εργαλείων ανάπτυξης λογισμικού αξίζει να τονίσουμε πως αποτελούν μέρος της υλοποίησης της εφαρμογής και λόγω των χαρακτηριστικών και των ιδιαιτεροτήτων τους κρίθηκε σκόπιμο να αναφερθούν πριν από την διαδικασία επεξήγησης της δημιουργίας της εφαρμογής. Με αυτόν τον τρόπο υπάρχει διασαφήνιση των όρων και των εννοιών κατά την υλοποίηση. Έτσι λοιπόν, τα εργαλεία λογισμικού είναι ουσιαστικά εφαρμογές γραμμένες σε κάποια γλώσσα προγραμματισμού και επιτρέπουν στους προγραμματιστές και στους χρήστες τη συγγραφή κώδικα, τον χειρισμό συστημάτων υλικού και λογισμικού και την διαχείριση των βάσεων δεδομένων. Αυτά συνήθως αποτελούν πακέτα από συνθέσεις διαφόρων τμημάτων, δηλαδή έχουν κάποιο κειμενογράφο, ένα φιλικό user interface, κάποιο μεταγλωττιστή και ένα τελευταίο μέρος όπου γίνεται η εμφάνιση των αποτελεσμάτων. Πιο συγκεκριμένα, χρησιμοποιήθηκε ο Apache http web server ο οποίος έχει συμβάλει δυναμικά στην ανάπτυξη του Παγκόσμιου Ιστού καθώς είναι εξαιρετικά αποτελεσματικός και ασφαλής και προσφέρεται δωρεάν. Έχει πολλά πλεονεκτήματα, ένα μέρος των οποίων αναλύθηκε παραπάνω και τα οποία τον καθιστούν ιδιαίτερα ανταγωνιστικό. Υπάρχει δυνατότητα ακόμη μεγαλύτερης εξέλιξης χωρίς αυτό να σημαίνει πως δεν καλύπτει αξιοπρεπέστατα τις ανάγκες της σημερινής πραγματικότητας. Η MySQL για την δημιουργία και διαχείριση της βάσης δεδομένων. Πρόκειται για μια ανοιχτού κώδικα βάση δεδομένων η οποία παρέχει υψηλές αποδόσεις, αξιοπιστία και ευκολίες στον χρήστη. Τρέχει σε πάνω από 20 πλατφόρμες λειτουργικών συστημάτων και περιέχει ενσωματωμένο ένα πλήρες και τεκμηριωμένο πακέτο χειρισμού. Η γλώσσα PHP που χρησιμοποιήθηκε για τη συγγραφή του κώδικα ήταν ένα πρόγραμμα γραμμένο σε Perl ενώ τρία χρόνια αργότερα οι προγραμματιστές της Zend την ξανά έγραψαν σε γλώσσα C και πήρε την

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου σημερινή της μορφή. Είναι και αυτή open source και αποτελεί την ταχύτερη γλώσσα για διαδικτυακές εφαρμογές. Το Xampp Control Panel είναι μια πλατφόρμα ελεύθερου λογισμικού η οποία ενσωματώνει ένα πακέτο από τον Apache, τη MySQL, διερμηνείς και scripts PHP, Perl και Filezila. Σκοπό έχει την καλύτερη εξυπηρέτηση των χρηστών της μέσω του PhpMyAdmin και του SQLite, ενώ η εγκατάσταση της γίνεται αυτόματα απαλλάσσοντας έτσι τους χρήστες από διάφορες ρυθμίσεις που είναι απαιτητικές με την αυτόνομη εγκατάσταση των παραπάνω εργαλείων λογισμικού. Το PhpMyAdmin ως εργαλείο της MySQL παρέχει στους χρήστες του την καλύτερη και ευκολότερη διαχείριση μέσα από ένα φιλικό περιβάλλον χρήστη, το οποίο είναι κατά κάποιον τρόπο ο ενδιάμεσος μεταξύ της βάσης δεδομένων και του χρήστη. Μέσω αυτών των εργαλείων λοιπόν, πραγματοποιήθηκε, μετά την ανάλυση και την καθορισμό των απαιτήσεων, η ανάπτυξη της συγκεκριμένης εφαρμογής. 2. Ανάλυση του Συστήματος της Εφαρμογής Εισαγωγή Ο στόχος αυτής της εφαρμογής είναι να σχεδιαστεί ένα σύστημα διαχείρισης συνταγών μαγειρικής. Ο πυρήνας του συστήματος είναι μια βάση δεδομένων που χρησιμοποιείται για την αποθήκευση συνταγών μαγειρικής. Το front end του συστήματος είναι μια δυναμική ιστοσελίδα η οποία λειτουργεί ως γέφυρα μεταξύ των χρηστών και του συστήματος. Σε γενικές γραμμές, η βάση δεδομένων θα πρέπει να είναι σε θέση να αποθηκεύσει τις πληροφορίες μιας συνταγής μαγειρικής, η οποία συνήθως περιλαμβάνει τον τίτλο, την κατηγορία, τα υλικά και τις οδηγίες υλοποίησης. Η βάση δεδομένων θα πρέπει επίσης να υποστηρίζει τις ακόλουθες λειτουργίες: Βαθμολόγηση συνταγής Τροποποίηση συνταγής Σελίδα 29 από 75

Διαγραφή συνταγής Αναζήτηση συνταγής από τον τίτλο Επιπλέον, το σύστημα διαχείρισης συνταγών υποστηρίζει τρεις τύπους χρηστών (τον απλό χρήστη, τον chef και τον διαχειριστή) και τους προσφέρει διαφορετικά δικαιώματα πρόσβασης, η βάση δεδομένων θα πρέπει να είναι σε θέση να αποθηκεύσει τις πληροφορίες τις πληροφορίες του χρήστη, το όνομα χρήστη και τον κωδικό πρόσβασης (εκτός από την περίπτωση του επισκέπτη). Στην front end πλευρά του χρήστη, το σύστημα θα πρέπει να επιτρέπει στους χρήστες να συμπληρώσουν εύκολα την φόρμα εγγραφής και εισόδου, να επιλέξουν τις λειτουργίες που επιθυμούν να εκτελέσουν και να βλέπουν τα αποτελέσματα. 2.1 Τεχνολογία Ανάπτυξης Λογισμικού Ως σύστημα ορίζεται μια ομάδα ή ένα σύνολο αντικειμένων μεταξύ των οποίων υπάρχει αντίδραση, αλληλεπίδραση και αλληλεξάρτηση έτσι ώστε να δημιουργείται μία ενιαία οντότητα η οποία διαμορφώνεται βάση των συνθηκών του περιβάλλοντος μέσα στο οποίο υπάρχει και η δημιουργία του συνόλου αυτού έχει να επιτελέσει κάποιο σκοπό. Παντού γύρω μας υπάρχουν συστήματα διαφόρων τύπων τα οποία αλληλεπιδρούν και αλληλοεξαρτώνται. Κάθε σύστημα μπορεί να στηρίζεται σε ένα σύνολο μικρότερων συστημάτων τα οποία ονομάζονται υποσυστήματα. (Βεσκούδης Β., 2000) Η χρήση των ηλεκτρονικών υπολογιστών και η εξάπλωση του διαδικτύου είναι ραγδαία με αποτέλεσμα να έχουν δημιουργηθεί νέες καταστάσεις και νέα δεδομένα. Αυτό έχει ως αποτέλεσμα να επιβάλλεται η δημιουργία κατάλληλων μοντέλων τα οποία έχουν διατυπωθεί μέσω εφαρμογών για την ταχύτατη επίλυση προβλημάτων τα οποία για τον άνθρωπο θα απατούσαν πολύ περισσότερο χρόνο. Έτσι λοιπόν ο ηλεκτρονικός υπολογιστής αποτελεί ένα σύστημα το οποίο και αυτό με την σειρά του αποτελείται από άλλα συστήματα όπως το υλικό και το λογισμικό. Το λογισμικό αποτελεί το σύνολο των προγραμμάτων, δηλαδή μια αλληλουχία οδηγιών προς το σύστημα για την εκτέλεση κάποιας συγκεκριμένης διεργασίας, καθώς και των εφαρμογών τις οποίες μπορεί να αναπτύξει ο χρήστης. (Βεσκούδης Β., 2000) Φτάνοντας στο σημείο της δημιουργίας εφαρμογών από των χρήστη αναπτύσσεται μια νέα επιστήμη αυτή της τεχνολογίας λογισμικού η οποία ασχολείται με την αναζήτηση και θέσπιση μεθόδων για την περιγραφή,

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου κατασκευή και συντήρηση του λογισμικού. Έτσι λοιπόν έχουν αναπτυχθεί κάποιες μέθοδοι ή αλλιώς μοντέλα του κύκλου ζωής λογισμικού. (Χατζόγλου, 2005: 24) Οι βασικοί πυλώνες που διαθέτουν όλα τα μοντέλα είναι οι εξής: Η σύλληψη της ιδέας Η καταγραφή των απαιτήσεων Η ανάλυση των απαιτήσεων του συστήματος Η σχεδίαση της εφαρμογής Η ανάπτυξη του κώδικα Ο έλεγχος Η χρήση και συντήρηση Η απόσυρση Επομένως, το μοντέλο κύκλου ζωής λογισμικού είναι η περιγραφή των μεθόδων και των διαδικασιών που ακολουθούνται σε κάθε φάση της ανάπτυξης του λογισμικού από την σύλληψη ως την απόσυρση του λογισμικού. (Χατζόγλου, 2005: 27-28) Διακρίνονται δύο είδη σχεδίασης η λογική και η φυσική. Η πρώτη αφορά την ανάλυση του συστήματος όπου γίνεται μια γενική περιγραφή του συστήματος καθώς και η ανάλυση των απαιτήσεων. Ο φυσικός σχεδιασμός περιλαμβάνει την αυστηρή θέσπιση των προδιαγραφών που δόθηκαν κατά το λογικό σχεδιασμό καθώς και την ανάπτυξη του λογισμικού. Τέλος, υπάρχουν πολλές μέθοδοι ανάπτυξης (built and fix, καταρράκτη κ.α.) που σαν βασικό στόχο έχουν τα παραπάνω δηλαδή την ανάπτυξη του κύκλου ζωής λογισμικού. Επίσης περιέχουν πληροφορίες για την χρονική σειρά και τα κριτήρια μετάβασης από την μια φάση στην άλλη. Οι φάσεις αυτές είναι οι οδηγίες οι οποίες ομαδοποιούνται με βήματα και καθορίζουν τον τρόπο που αναπτύσσεται ένα προϊόν λογισμικού. Όλες οι μέθοδοι έχουν δυνατά και αδύνατα σημεία και συνήθως χρησιμοποιούνται δύο ή περισσότερα μοντέλα για την καλύτερη ανάλυση λογισμικού. Να τονιστεί ότι υπάρχουν και παραδοσιακές μέθοδοι ανάπτυξης όπως τα Διαγράμματα Ροής Δεδομένων, τα Διαγράμματα Ροής Συστημάτων και τα Διαγράμματα Ροής. (Χατζόγλου, 2005: 29-42) Σελίδα 31 από 75

2.2 Καταγραφή απαιτήσεων Η ακριβής και σωστή καταγραφή των απαιτήσεων είναι πολύ σημαντική για την περαιτέρω ανάπτυξη της εφαρμογής. Όπως αναφέραμε και στην εισαγωγή υπάρχουν τρία είδη χρηστών και συγκεκριμένα υπάρχει ο απλός χρήστης, ο σεφ και ο διαχειριστής. Παρακάτω θα δούμε αναλυτικά τις απαιτήσεις που αφορούν τον κάθε χρήστη. Οι απαιτήσεις που αφορούν τον απλό χρήστη είναι οι εξής: Ο απλός χρήστης έχει την δυνατότητα να κάνει είσοδο στο σύστημα γράφοντας σωστά το όνομα και τον κωδικό. Ακόμη μπορεί να κάνει αναζήτηση μιας συνταγής γράφοντας τον τίτλο της συνταγής, με πεζά ελληνικά γράμματα, ή μέρος του τίτλου. Έχει πρόσβαση στη λίστα των συνταγών. Τέλος, έχει την δυνατότητα να βαθμολογήσει τις συνταγές. Τώρα θα δούμε τις απαιτήσεις που αφορούν τον χρήστη σεφ: Ο σεφ έχει την δυνατότητα να κάνει είσοδο στο σύστημα γράφοντας σωστά το όνομα και τον κωδικό. Ακόμη μπορεί να κάνει αναζήτηση μιας συνταγής γράφοντας τον τίτλο της συνταγής, με πεζά ελληνικά γράμματα, ή μέρος του τίτλου. Έχει πρόσβαση στη λίστα των συνταγών. Έχει την δυνατότητα να βαθμολογήσει τις συνταγές. Μπορεί να δημιουργήσει μια νέα συνταγή. Επιπλέον, μπορεί να τροποποιήσει τις ήδη υπάρχουσες συνταγές. Τέλος, έχει την δυνατότητα να διαγράψει όποια ή όποιες συνταγές επιθυμεί. Από την πλευρά του διαχειριστή οι απαιτήσεις είναι οι ακόλουθες: Ο διαχειριστής έχει την δυνατότητα να κάνει είσοδο στο σύστημα γράφοντας σωστά το όνομα και τον κωδικό. Ακόμη μπορεί να κάνει αναζήτηση μιας συνταγής γράφοντας τον τίτλο της συνταγής, με πεζά ελληνικά γράμματα, ή μέρος του τίτλου. Έχει πρόσβαση στη λίστα των συνταγών. Έχει την δυνατότητα να βαθμολογήσει τις συνταγές. Μπορεί να δημιουργήσει μια νέα συνταγή. Επιπλέον, μπορεί να τροποποιήσει τις ήδη υπάρχουσες συνταγές. Έχει την δυνατότητα να διαγράψει όποια ή όποιες συνταγές επιθυμεί. Μπορεί ακόμη, να τροποποιήσει τα δικαιώματα των χρηστών, να αλλάξει, δηλαδή, το επίπεδο που βρίσκεται κάθε χρήστης.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Τέλος, μπορεί να διαγράψει κάποιον χρήστη από το σύστημα. Έτσι λοιπόν, έγινε μια καταγραφή των απαιτήσεων, όσον αφορά τους χρήστες, έγινε μια πρώτη προσέγγιση μιας πιο γενικής μορφής στα πλαίσια της οποίας θα υλοποιηθεί η εφαρμογή. Οπότε, θα έχουμε μια βάση δεδομένων στην οποία θα καταχωρούνται όλα εκείνα τα στοιχεία που απαιτούνται για την υλοποίηση μιας τέτοιας εφαρμογής. Πέρα από τις απαιτήσεις των χρηστών είναι απαραίτητο να καταγραφούν και οι απαιτήσεις σχετικά με τις συνταγές. Οι απαραίτητες πληροφορίες για κάθε συνταγή είναι ο τίτλος της, η κατηγορία στην οποία ανήκει (κύριο γεύμα, ορεκτικό και γλυκό), τα υλικά της, η υλοποίηση της και το όνομα του σεφ. Οπότε χρειαζόμαστε ένα σύστημα με τις εξής απαιτήσεις: Χρειάζεται η ύπαρξη μιας εφαρμογής η οποία θα μπορεί να παρουσιάζει τις συνταγές. Η εφαρμογή θα πρέπει να παρέχει την δυνατότητα εγγραφής και εισαγωγής στο σύστημα Όσον αφορά τον τρόπο παρουσίασης θα πρέπει να υπάρχουν οι απαραίτητες πληροφορίες όπως αναφέραμε και προηγουμένως. Θα πρέπει να μπορούν να δημιουργηθούν και να διαγραφούν συνταγές. Ακόμα, να μπορούν να γίνονται αλλαγές σε ήδη υπάρχουσες συνταγές. Να επιτρέπεται η βαθμολόγηση των συνταγών. Να επιτρέπεται στον διαχειριστή να τροποποιεί τα δικαιώματα των χρηστών και επιπλέον να έχει την δυνατότητα να διαγράψει κάποιον χρήστη. Να εμφανίζονται μηνύματα λάθους σε περίπτωσης που δεν έχουν δοθεί σωστά τα στοιχεία για εγγραφή και εισαγωγή στο σύστημα, καθώς και κατά την δημιουργία της συνταγής. Αυτές είναι οι εφαρμογές που θα πρέπει να υπάρχουν σε γενικές γραμμές στο συγκεκριμένο σύστημα. Από τα παραπάνω προκύπτει η ανάγκη καταγραφής των απαιτήσεων για την βάση δεδομένων για τις συνταγές μαγειρικής που θα δημιουργηθεί. Οι απαιτήσεις, λοιπόν, για την βάση δεδομένων των συνταγών είναι οι ακόλουθες: Σελίδα 33 από 75

Να υπάρχει ένας πίνακας για τις κατηγορίες των συνταγών. Ένας πίνακας για τα υλικά. Εκτός του πίνακα των υλικών είναι απαραίτητη η δημιουργία και ενός πίνακα που θα κρατάει την μονάδα μέτρησης των υλικών. Ακόμη, χρειάζεται ο πίνακας με τις οδηγίες υλοποίησης. Ένας πίνακας που θα κρατάει το όνομα του σεφ στον οποίο ανήκει η συγκεκριμένη συνταγή. Κάπως έτσι ολοκληρώνεται ο καθορισμός των απαιτήσεων για την συγκεκριμένη εφαρμογή. Για κάθε απαίτηση προέκυπτε μια νέα προδιαγραφή οπότε δεν δημιουργήθηκε φόρμα προδιαγραφών απαιτήσεων γιατί δεν χρειαζόταν και θα ήταν στην ουσία αντιγραφή των απαιτήσεων σε διαφορετική φόρμα. Θα ακολουθήσει η ανάλυση των απαιτήσεων μέσω των διαγραμμάτων. 2.3 Ανάλυση απαιτήσεων

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Διάγραμμα Οντοτήτων - Συσχετίσεων Εικόνα 4: Διάγραμμα Οντοτήτων - Συσχετίσεων Διάγραμμα Περίπτωσης Χρήσης (Use Case Diagram) Σελίδα 35 από 75

Το διάγραμμα περιπτώσεων χρήσης χρησιμοποιείται για να μοντελοποιήσει το πλαίσιο λειτουργίας του συστήματος καθώς και τις προδιαγραφές του. Το παρακάτω διάγραμμα περίπτωσης χρήσης χρησιμοποιήθηκε για τον καθορισμό του συστήματος της βάσης δεδομένων συνταγή. Συμπεράσματα Εικόνα 5: Διάγραμμα Περιπτώσεων Χρήσης

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Η ανάλυση μιας εφαρμογής αποτελεί το πρώτο βήμα, μαζί με την συγκέντρωση και την καταγραφή των απαιτήσεων, για την περαιτέρω ανάπτυξη μιας εφαρμογής. Γι αυτό το λόγο υπάρχουν ειδικά εργαλεία και τεχνικές ανάλυσης μιας εφαρμογής από τις πιο παραδοσιακές έως τις νεότερες. Μετά την καταγραφή των απαιτήσεων πραγματοποιήθηκε η ανάλυση απαιτήσεων η οποία περιελάμβανε το διάγραμμα οντοτήτων συσχετίσεων (E-R Diagram) και το διάγραμμα περιπτώσεων χρήσης (Use Case Diagram). Έτσι λοιπόν, αφού ολοκληρώθηκε η λογική σχεδίαση στο επόμενο κεφάλαιο θα ασχοληθούμε με την φυσική σχεδίαση της εφαρμογής. 3. Σχεδίαση της εφαρμογής Σελίδα 37 από 75

Εισαγωγή Σε αυτό το κεφάλαιο γίνεται η περιγραφή της σχεδίασης της εφαρμογής η οποία ξεκίνησε από την ανάλυση του προηγούμενου κεφαλαίου. Γίνεται αναλυτική περιγραφή των σχέσεων, των πεδίων των πινάκων της Βάσης Δεδομένων, με την χρήση σχεδιαγραμμάτων και πινάκων καθώς και ανάλυση αυτών. Επίσης γίνεται παρουσίαση του τρόπου ανάπτυξης της εφαρμογής, δηλαδή τον τρόπο με τον οποίο αναπτύχθηκε ο κώδικας. 3.1 Βάση Δεδομένων εφαρμογής Η βάση δεδομένων γενικά αποτελεί μια συλλογή από δεδομένα τα οποία και οργανώνονται ώστε να εξυπηρετήσουν με τον καλύτερο δυνατό τρόπο διάφορες εφαρμογές. Στην παρούσα εργασία γίνεται χρήση της MySQL, η οποία είναι ένα λογισμικό που έχει σκοπό την καλύτερη και αποτελεσματικότερη διαχείριση των δεδομένων. (Ξένος 2000: 15-16) Η ανάπτυξη της παρούσας εφαρμογής έγινε με το Σχεσιακό Μοντέλο, όπου η αναπαράσταση όλων των δεδομένων γίνεται μέσω δισδιάστατων πινάκων που ονομάζονται οντότητες.(ξένος, 2000: 71-72) Οι οντότητες που αποτελούν τους πίνακες της βάσης συνδέονται μεταξύ τους με τις σχέσεις. Πριν προχωρήσουμε πιο κάτω στην περιγραφή του Σχεσιακού μοντέλου της βάσης δεδομένων να αναφερθεί ότι όλο αυτό γίνεται με στόχο την εξάλειψη των περιττών δεδομένων γι αυτό και εφαρμόζεται η κανονικοποίηση, δηλαδή η εργασία που έχει ως στόχο την εφαρμογή κανόνων στις σχέσεις, με σκοπό την ελάττωση των πλεοναζόντων δεδομένων, την εξασφάλιση της συμβατότητας και την απαλοιφή των προβλημάτων που έχουν σχέση με την διαχείριση των δεδομένων. Τέλος, να αναφερθεί ότι η βάση της παρούσας εφαρμογής ονομάζεται recipes και αποτελείται από οχτώ πίνακες, η περιγραφή των οποίων θα γίνει παρακάτω. Ακολουθεί η περιγραφή των πινάκων της βάσης δεδομένων. Στη βάση δεδομένων που θα αναλυθεί παρακάτω, μετά την διαδικασία της κανονικοποίησης καταλήξαμε στον αριθμό των οχτώ πινάκων που αποτελούν την Βάση. Οι πίνακες αυτοί είναι οι ακόλουθοι:

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Πίνακας categories Εικόνα 6: Πίνακας categories Ο πίνακας categories περιλαμβάνει τις κατηγορίες των συνταγών και περιέχει τους κωδικούς των κατηγοριών και την στήλη title όπου περιγράφεται το όνομα κάθε κατηγορίας. Πίνακας chefs Εικόνα 7: Πίνακας chefs Ο πίνακας chefs περιλαμβάνει τους σεφ και περιέχει τους κωδικούς των chef και την στήλη name όπου περιγράφεται το όνομα κάθε κατηγορίας. Πίνακας materials Εικόνα 8: Πίνακας materials Σελίδα 39 από 75

Ο πίνακας materials περιλαμβάνει τα υλικά των συνταγών και περιέχει δυο στήλες, μια με τους κωδικούς των υλικών και μια με τις ονομασίες των υλικών. Πίνακας measurements Εικόνα 9: Πίνακας measurements Ο πίνακας measurements περιλαμβάνει τις μονάδες μέτρησης των υλικών και περιέχει δύο πεδία, ένα με τους κωδικούς των μονάδων μέτρησης και ένα με τα ονόματα των μονάδων μέτρησης. Πίνακας recipes Εικόνα 10: Πίνακας recipes Ο πίνακας recipes περιλαμβάνει τις συνταγές και αποτελείται από εφτά πεδία τα οποία είναι τα εξής: Τον κωδικό της κάθε συνταγής. Την κατηγορία στην οποία ανήκει η συγκεκριμένη συνταγή. Τον σεφ στον οποίο ανήκει η συγκεκριμένη συνταγή

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Τον τίτλο της συνταγής Τον τρόπο υλοποίησης της συνταγής. Την βαθμολογία της συνταγής Το ποσοστό που προκύπτει από τις βαθμολογίες της συγκεκριμένης συνταγής. Πίνακας details Εικόνα 11: Πίνακας details Ο πίνακας details περιλαμβάνει τον τρόπο υλοποίησης της συνταγής και περιέχει πέντε πεδία τα οποία είναι τα ακόλουθα: Τον κωδικό της υλοποίησης Την συνταγή στην οποία ανήκει αυτή η υλοποίηση Τα υλικά αυτής της συνταγής Τις μονάδες μέτρησης των υλικών Την ποσότητα των υλικών Πίνακας users Εικόνα 12: Πίνακας users Σελίδα 41 από 75

Ο πίνακας users περιλαμβάνει τους χρήστες και αποτελείται από τέσσερα πεδία τα οποία είναι: ο κωδικός του κάθε χρήστη, το όνομά του, ο κωδικός πρόσβασης και το επίπεδο στο οποίο ανήκει. Πίνακας users_titles Εικόνα 13: Πίνακας users_titles Ο πίνακας users_titles περιλαμβάνει τα επίπεδα των χρηστών και περιέχει δύο πεδία, το επίπεδο και τον τίτλο του επιπέδου. Αφού αναλύσαμε τους πίνακες, θα δούμε τώρα την σχέση μεταξύ των πινάκων: Εικόνα 14: Σχέσεις Πινάκων

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Παρατηρούμε ότι ο πίνακας users αν και αποτελεί οντότητα της βάσης δεν σχετίζεται άμεσα με κάποιους άλλους πίνακες της βάσης. Να σημειωθεί ότι ο πίνακας users περιέχει τους κωδικούς των χρηστών του συστήματος. 3.2 Παρουσίαση και Ανάλυση του PHP κώδικα Αρχείο index.php Εικόνα 15: index.php Αποτελεί την αρχική σελίδα της εφαρμογής και μέσω της μεθόδου GET γίνεται η αναζήτηση των συνταγών παίρνοντας τα στοιχεία από την βάση δεδομένων. Σελίδα 43 από 75

Αρχείο user _register.php Εικόνα 16: user_register.php (1) Μέχρι αυτό το σημείο γίνεται η σύνδεση με την βάση δεδομένων και με την μέθοδο POST επιτρέπεται η εισαγωγή των στοιχείων στην βάση δεδομένων. Παράλληλα γίνεται ο έλεγχος των σφαλμάτων και εμφανίζονται αντίστοιχα μηνύματα στον χρήστη.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 17: user_register.php (2) Σε αυτό το τμήμα του κώδικα προσδιορίζεται ο τρόπος εμφάνισης της φόρμας εγγραφής προς τους χρήστες της εφαρμογής. Σελίδα 45 από 75

Αρχείο user _modify.php Εικόνα 18: user_modify.php (1) Σε αυτό το τμήμα του κώδικα επιτρέπεται η προσπέλαση της βάσης δεδομένων από τους χρήστες του τρίτου επιπέδου (διαχειριστές) για την διαγραφή των χρηστών. Με την μέθοδο GET παίρνοντας το ID του χρήστη από την βάση δεδομένων γίνεται η διαγραφή του χρήστη με το συγκεκριμένο ID.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 19: user_modify.php (2) Υποδεικνύει τον τρόπο εμφάνισης της σελίδας για την διαχείριση των χρηστών. Πιο συγκεκριμένα γίνεται αρχικά η εμφάνιση των στοιχείων του κάθε χρήστη και στην συνέχεια δίνεται η δυνατότητα για διαγραφή του εκάστοτε χρήστη. Σελίδα 47 από 75

Αρχείο user _login.php Εικόνα 20: user_login.php (1) Αυτό το τμήμα του κώδικα επιτρέπει την είσοδο των χρηστών στο σύστημα με την εισαγωγή του ονόματος και του κωδικού του χρήστη. Σε περίπτωση σφάλματος εμφανίζεται το αντίστοιχο μήνυμα.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 21: user_login.php (2) Αυτό το τμήμα του κώδικα αποτελεί την φόρμα εισαγωγής των χρηστών στο σύστημα. Παίρνει την μέθοδο POST του κώδικα που προηγήθηκε και πληκτρολογώντας σωστά το όνομα και τον κωδικό επιτρέπει την είσοδο στο σύστημα. Σελίδα 49 από 75

Αρχείο user _edit.php Εικόνα 22: user_edit.php (1) Εδώ γίνεται η επεξεργασία των χρηστών από τους διαχειριστές του συστήματος. Με την μέθοδο GET παίρνει το ID των χρηστών από την βάση δεδομένων και με την μέθοδο POST εμφανίζει το όνομα, τον κωδικό και το επίπεδο του κάθε χρήστη.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 23: user_edit.php (2) Αυτό το τμήμα κώδικα εμφανίζει την σελίδα για την επεξεργασία των στοιχείων των χρηστών από τους διαχειριστές του συστήματος. Σελίδα 51 από 75

Αρχείο user _add.php Εικόνα 24: user_add.php (1) Με αυτό το τμήμα του κώδικα επιτρέπεται η δημιουργία νέου χρήστη από τον διαχειριστή του συστήματος.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 25: user_add.php (2) Με αυτόν τον τρόπο θα εμφανίζεται η σελίδα για την δημιουργία νέου χρήστη από τους διαχειριστές του συστήματος. Σελίδα 53 από 75

Αρχείο recipes _list.php Εικόνα 26: recipes_list.php (1) Με αυτό τον κώδικα επιτρέπεται η είσοδος στη βάση δεδομένων και η μέθοδος GET παίρνει από αυτήν τον πίνακα συνταγές.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 27: recipes_list.php (2) Αυτός είναι ο τρόπος εμφάνισης της λίστας των συνταγών. Σελίδα 55 από 75

Αρχείο recipe _show.php Εικόνα 28: recipe_show.php (1) Με αυτό τον κώδικα επιτρέπεται η είσοδος στη βάση δεδομένων και η μέθοδος GET παίρνει από αυτήν τα στοιχεία του πίνακα για την κάθε συνταγή.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 29: recipe_show.php (2) Σελίδα 57 από 75

Με αυτόν τον τρόπο εμφανίζεται η κάθε συνταγή και επιπλέον δίνεται η δυνατότητα στους χρήστες να βαθμολογήσουν των συνταγή. Αρχείο recipe_modify.php Εικόνα 30: recipe_modify.php (1) Με αυτό το τμήμα του κώδικα επιτρέπεται η είσοδος στη βάση δεδομένων για την διαγραφή μιας συνταγής.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Εικόνα 31: recipe_modify.php (2) Έτσι γίνεται η εμφάνιση της λίστας των συνταγών στη σελίδα τροποποίηση συνταγής και δίνεται η δυνατότητα για επεξεργασία ή διαγραφή μιας συνταγής από την λίστα. Σελίδα 59 από 75

Αρχείο recipe_edit.php Εικόνα 32: recipe_edit.php (1) Αυτός ο κώδικας επιτρέπει την είσοδο στη βάση δεδομένων και με την μέθοδο GET παίρνει το ID της κάθε συνταγής ώστε να γίνει η επεξεργασία της. Σε περίπτωση σφάλματος εμφανίζει το αντίστοιχο μήνυμα λάθους.

Πτυχιακή εργασία των Παπασπύρου Αλέξη και Κιουρτζή Σταύρου Αρχείο recipe _add.php Εικόνα 33: recipe_add.php (1) Αυτός ο κώδικας επιτρέπει την είσοδο στη βάση δεδομένων για τους χρήστες που είναι επιπέδου 2 και πάνω. Σε περίπτωση σφάλματος εμφανίζει το αντίστοιχο μήνυμα λάθους. Σελίδα 61 από 75