• Nenhum resultado encontrado

Ανάπτυξη διαδικτυακής εφαρμογής παραγγελιοδοσίας SuperΜarket για φυλλομετρητές φορητών συσκευών και επιτραπέζιων υπολογιστών

N/A
N/A
Protected

Academic year: 2023

Share "Ανάπτυξη διαδικτυακής εφαρμογής παραγγελιοδοσίας SuperΜarket για φυλλομετρητές φορητών συσκευών και επιτραπέζιων υπολογιστών"

Copied!
56
0
0

Texto

(1)

ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πτυχιακή Εργασία:

Ανάπτυξη διαδικτυακής εφαρμογής παραγγελιοδοσίας SuperΜarket για φυλλομετρητές φορητών συσκευών και επιτραπέζιων υπολογιστών.

Φοιτητής: Σπανιάς Σεραφείμ

ΑΕΜ: 1201

(2)
(3)

Περιεχόμενα

1 Εισαγωγή...4

2 Λειτουργίες...6

2.1 Λειτουργίες Πελάτη...6

2.2 Λειτουργίες Διαχειριστή SuperMarket...9

3 Απαιτήσεις...11

3.1 Απαιτήσεις για τον πελάτη...11

3.2 Απαιτήσεις για τον Διαχειριστή SuperMarket...17

4 Τεχνολογίες που χρησιμοποιήθηκαν...19

4.1 Διακομιστής Διαδικτύου...19

4.2 HTML – HyperText Markup Language...20

4.3 CSS – Cascading Style Sheets...20

4.4 PHP : Hypertext Preprocessor...21

4.5 MySQL...22

4.6 JavaScript...23

4.7 Κρυπτογραφία MD5...24

4.8 Προγράμματα Συγγραφής Ιστοσελίδων...25

5 Σχεδιασμός Εφαρμογής...27

5.1 Αρχιτεκτονική Συστήματος...27

5.2 Κεντρικός Εξυπηρετητής...28

5.3 Διαδικτυακός Διακομιστής...28

5.4 Διαχείριση Βάσης Δεδομένων...31

5.5 Διεπαφή Χρήστη...43

6 Εγκατάσταση Εφαρμογής...53

(4)

1 Εισαγωγή

Η παρούσα πτυχιακή εργασία είχε σαν στόχο την ανάπτυξη μιας διαδικτυακής εφαρμογής παραγγελιοδοσίας supermarket για φυλλομετρητές φορητών συσκευών και επιτραπέζιων υπολογιστών.

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

Από την μεριά του supermarket θα υπάρχει μια αντίστοιχη εφαρμογή υποδοχής της παραγγελίας στην οποία θα εμφανίζονται τα προϊόντα του χρήστη και τα στοιχεία του. Η πτυχιακή αυτή εκτός από τον άμεσο στόχο της, μου προσέφερε την ευκαιρία να εφαρμόσω τις τεχνολογίες και τις διαδικασίες ανάπτυξης διαδικτυακών εφαρμογών για φυλλομετρητές (PHP, CSS, MySQL, JavaScript). Επίσης, για την σχεδιασμό της συγκεκριμένης εργασίας έγινε και χρήση της UML.

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

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

(5)

καταστημάτων να έχει συμβληθεί μέσω μίας διαδικτυακής πύλης, επιτρέποντας έτσι την μαζική ηλεκτρονική παραγγελία των χρηστών από τα συμβεβλημένα καταστήματα. Παρ' όλα αυτά, μεμονωμένα αρκετά supermarkets, προσφέρουν την δυνατότητα ηλεκτρονικής παραγγελίας για το κατάστημα τους.

Η πρώτη αλυσίδα supermarket στην Ελλάδα που έβαλε «ράφια» στο διαδίκτυο ήταν η αλυσίδα Βερόπουλος η οποία το 2001 και όταν ακόμα οι διαδικτυακές αγορές ήταν στην Ελλάδα σχεδόν ανύπαρκτες, δημιούργησε το πρώτο ηλεκτρονικό supermarket. Έπρεπε να περάσουν αρκετά χρόνια από τότε για την δημιουργία του επόμενου διαδικτυακού supermarket. Το έτος 2009 προχώρησαν και άλλες αλυσίδες στην δημιουργία διαδικτυακών καταστημάτων, όπως η Carrefour και η Α-Β.

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

(6)

2 Λειτουργίες

2.1 Λειτουργίες Πελάτη

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

Φιλική εμφάνιση της εφαρμογής

Η λειτουργία αυτή εμφανίζει στον πελάτη την αντίστοιχη απεικόνιση της εφαρμογής, αναλόγως του μέσου το οποίο χρησιμοποιήσει ο χρήστης για να επισκεφθεί τον ιστότοπο της εφαρμογής.

Εγγραφή στην υπηρεσία

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

Είσοδος στην υπηρεσία

Με την λειτουργία αυτή ο χρήστης μπορεί να εισέλθει στην εφαρμογή πληκτρολογώντας το

(7)

Ανάκτηση Κωδικού

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

Κατά την εκτέλεση της λειτουργίας αποστέλλεται στον χρήστη ένα mail με οδηγίες δημιουργίας νέου κωδικού πρόσβασης.

Επεξεργασία Στοιχείων

Ο χρήστης θα είναι σε θέση να αλλάξει τα προσωπικά του στοιχεία, τα οποία είχε εκχωρήσει κατά την εγγραφή του, εκτός από το όνομα χρήστη.

Προβολή SuperMarket/Καταλόγου Προϊόντων

Ο χρήστης θα μπορεί να δει ποια SuperMarket είναι διαθέσιμα για παραγγελία καθώς και τον κατάλογο προϊόντων του SuperMarket μέσω των κατηγοριών και των υποκατηγοριών αυτού.

Προσθήκη προϊόντος στο Καλάθι Αγοράς

Κατά την περιήγηση στον κατάλογο προϊόντων, ο χρήστης θα μπορεί να προσθέσει κάποιο προϊόν στο καλάθι αγοράς και να συμπληρώσει την επιθυμητή ποσότητα.

Επεξεργασία ποσότητας προϊόντων του Καλαθιού Αγοράς

(8)

των προϊόντων προς παραγγελία.

Διαγραφή προϊόντος του Καλαθιού Αγοράς

Κατά την προβολή του καλαθιού αγοράς, ο χρήστης θα είναι σε θέση να διαγράψει κάποιο προϊόν από το καλάθι του.

Διαγραφή όλων των προϊόντων του Καλαθιού Αγοράς

Κατά την προβολή του καλαθιού αγοράς, ο χρήστης θα είναι σε θέση να διαγράψει ολόκληρη την λίστα προϊόντων από το καλάθι του.

Αποστολή παραγγελίας

Κατά την προβολή του καλαθιού αγοράς, ο χρήστης, αφού έχει έλεγχο της λίστας των προϊόντων και του ατομικού και συνολικού κόστους αυτών, θα έχει την δυνατότητα να αποστείλει την παραγγελία του με σκοπό την εξυπηρέτηση της παραγγελίας.

Προβολή ιστορικού παραγγελιών

Με τη λειτουργία αυτή ο χρήστης θα βλέπει τις τελευταίες παραγγελίες (5 για τις φορητές συσκευές και 12 για τους σταθερούς υπολογιστές) που έχει πραγματοποιήσει. Εκεί θα αναγράφονται η

(9)

Προβολή προσφορών

Ο χρήστης, όταν εισέλθει στην εφαρμογή μέσω επιτραπέζιου υπολογιστή, αμέσως μετά την επιλογή κάποιου supermarket για να αρχίσει την παραγγελία του, θα βλέπει μια λίστα με 6 τυχαία προϊόντα που έχει βάλει το supermarket σε προσφορά.

Αναζήτηση στον κατάλογο προϊόντων

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

Φόρμα επικοινωνίας με την υπηρεσία

Με αυτή την λειτουργία ο χρήστης μπορεί να επικοινωνήσει με την υπηρεσία για την εξυπηρέτηση του, αφού έχει εισέλθει στην εφαρμογή μέσω επιτραπέζιου υπολογιστή.

2.2 Λειτουργίες Διαχειριστή SuperMarket

Είσοδος στην υπηρεσία

(10)

Προβολή όλων των εισερχόμενων παραγγελιών

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

Προβολή φιλτραρισμένων παραγγελιών

Ο διαχειριστής θα μπορεί να προβάλει μόνο τις παραγγελίες που αναμένουν για συγκέντρωση των προϊόντων ή μόνο αυτές που έχουν ήδη αποσταλεί και εκκρεμούν προς ολοκλήρωση.

Αλλαγή κατάστασης Παραγγελιών

Όταν ο διαχειριστής λαμβάνει μία νέα παραγγελία, η κατάσταση αυτής είναι αυτόματα “προς συγκέντρωση προϊόντων”. Ο διαχειριστής θα μπορεί να αλλάξει αυτή την κατάσταση αναλόγως με την εξέλιξη της παραγγελίας.

(11)

3 Απαιτήσεις

3.1 Απαιτήσεις για τον πελάτη

Εμφάνιση ανάλογης έκδοσης της εφαρμογής ανάλογα με το μέσο προβολής

Ο χρήστης, όταν εισέρχεται στον ιστότοπο της εφαρμογής πρέπει να του εμφανίζεται και η αντίστοιχη έκδοση της εφαρμογής, αναλόγως του μέσου προβολής που χρησιμοποιεί. Εάν εισέρχεται μέσω φορητής συσκευής δηλαδή ή μέσω επιτραπέζιου υπολογιστή.

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

Έλεγχος του ονόματος χρήστη, του email και του κωδικού κατά την εγγραφή

Κατά την εγγραφή νέου χρήστη, αρχικά του ζητείται να συμπληρώσει όνομα χρήστη και email.

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

(12)

δύο βρεθεί, τότε επιστρέφει στο πρώτο βήμα της εγγραφής και ενημερώνει τον χρήστη με ανάλογο μήνυμα.

Για την αποφυγή σφάλματος κατά την πληκτρολόγηση κωδικού χρησιμοποιείται το πεδίο

“Επαλήθευση Κωδικού”. Όταν ο χρήστης πατήσει επόμενο, αφού έχει συμπληρώσει όλα τα πεδία του πρώτου βήματος της εγγραφής, γίνεται έλεγχος για την ομοιότητα των δύο πεδίων. Αν είναι διαφορετικοί μεταξύ τους, τότε επιστρέφει στο πρώτο βήμα της εγγραφής και ενημερώνει τον χρήστη με ανάλογο μήνυμα.

Υποχρεωτική ενεργοποίηση του λογαριασμού

Η λειτουργία αυτή έχει σκοπό να αποτρέψει κάποιον να εγγραφεί στην εφαρμογή χωρίς να έχει δώσει τουλάχιστον έγκυρο email.

Μετά την εγγραφή στην εφαρμογή, αποστέλλεται στον χρήστη ένα mail,στο email που καταχώρησε, με οδηγίες ενεργοποίησης του λογαριασμού του. Ακολουθώντας τις οδηγίες, το πεδίο της ενεργοποίησης του εν λόγω χρήστη στη βάση αλλάζει τιμή. Εάν δεν προχωρήσει στην παραπάνω ενέργεια ο χρήστης δεν θα είναι σε θέση να χρησιμοποιήσει τον λογαριασμό του.

Αφού ο χρήστης εισάγει το όνομα χρήστη και τον κωδικό πρόσβασης του, γίνεται ένας έλεγχος στη βάση δεδομένων για την αντιστοιχία των εισαχθέντων στοιχείων με αυτών της βάσης. Αν τα στοιχεία είναι έγκυρα τότε προχωράει σε ένα δεύτερο έλεγχο, αν έχει ενεργοποιηθεί ο λογαριασμός.

Εάν δεν έχει ενεργοποιηθεί, τότε εμφανίζει στον χρήστη ένα μήνυμα ενημέρωσης, το οποίο δίνει τη δυνατότητα αποστολής ενός νέου mail ενεργοποίησης του λογαριασμού του, σε περίπτωση απώλειας του προηγούμενου mail.

Κωδικοποίηση του κωδικού πρόσβασης

(13)

κωδικοποιημένοι για λόγους ασφάλειας των λογαριασμών τους.

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

Είσοδος του χρήστη στην εφαρμογή

Για να εισέλθει ένας χρήστης στην εφαρμογή, πρέπει να εισάγει σωστά το όνομα χρήστη και τον κωδικό πρόσβασης.

Όταν εισάγει τα στοιχεία του και πατήσει σύνδεση, το όνομα χρήστη ελέγχεται για να βρεθεί αν υπάρχει αντιστοιχία στην βάση δεδομένων. Αν υπάρχει, τότε ελέγχει τον καταχωρημένο στη βάση κωδικό με αυτόν που εισήγαγε ο χρήστης. Αν υπάρξει αντιστοιχία τότε προχωράει στην είσοδο του χρήστη. Αντίθετα, αν δεν υπάρχει το όνομα χρήστη στην βάση ή ο καταχωρημένος κωδικός για το όνομα χρήστη που δόθηκε διαφέρει με αυτόν που εισήγαγε ο χρήστης τότε εμφανίζεται ένα μήνυμα λάθους στον χρήστη για να τον ειδοποιήσει.

Προβολή μόνο των SuperMarket πλησίον του χρήστη

Πρέπει να εμφανίζονται στον χρήστη μόνο τα supermarket που βρίσκονται κοντά του και μπορεί να παραγγείλει από αυτά.

Κατά την εγγραφή του, ο χρήστης, του ζητείται να ορίσει νομό, αναγκαστικά, μέσα από μία λίστα, η οποία διαμορφώνεται από τους νομούς των supermarket που είναι συμβεβλημένα με την εφαρμογή. Έτσι όταν ο χρήστης εισέρχεται στην εφαρμογή γίνεται ένας έλεγχος στη βάση δεδομένων και εμφανίζει μόνο τα supermarket που έχουν κοινό νομό με τον χρήστη.

(14)

Προβολή μόνο των διαθέσιμων προϊόντων κάθε SuperMarket

Στον χρήστη θα πρέπει να εμφανίζονται μόνο τα διαθέσιμα προϊόντα από το κάθε supermarket.

Κατά την προσπέλαση της βάσεως δεδομένων για την εμφάνιση του καταλόγου, των προσφορών και της αναζήτησης του supermarket, γίνεται ένας έλεγχος στο πεδίο της ποσότητας κάθε προϊόντος στην βάση δεδομένων. Αν η ποσότητα είναι ίση ή μικρότερη του μηδέν τότε το προϊόν δεν εμφανίζεται.

Προβολή προσφορών

Αμέσως μετά την επιλογή supermarket για την εκκίνηση ή συνέχεια της παραγγελίας του χρήστη, του θα πρέπει να του εμφανίζεται μία λίστα με προϊόντα προσφοράς του supermarket.

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

Αναζήτηση προϊόντων

Για την ταχύτερη εξυπηρέτηση του, ο χρήστης θα πρέπει να έχει τη δυνατότητα να πραγματοποιεί αναζήτηση μέσα στον κατάλογο του supermarket.

Όταν ο χρήστης εισάγει τον όρο της αναζήτησης, γίνεται μια αναζήτηση μέσα στην βάση δεδομένων, στον πίνακα των προϊόντων και ψάχνει να βρει αν ο όρος που δόθηκε ταιριάζει με το όνομα κάποιου ή μέρος αυτού και επιστρέφει τον σύνολο των προϊόντων που ικανοποιούν τον όρο της αναζήτησης.

(15)

Προβολή Ιστορικού

Ο χρήστης θα πρέπει να έχει πρόσβαση σε παραγγελίες που έχει αποστείλει, έτσι ώστε να μπορεί να επιβλέπει την κατάσταση τους.

Γίνεται έλεγχος στη βάση δεδομένων, στον πίνακα των παραγγελιών, για τις τελευταίες παραγγελίες του χρήστη που έχει αποστείλει, ανεξαρτήτως αν αυτές είναι σε κατάσταση συγκέντρωσης προϊόντων, αποστολής, αν έχουν ολοκληρωθεί ή ακυρωθεί. Αν ο χρήστης έχει επισκεφθεί τον ιστότοπο μέσω επιτραπέζιου υπολογιστή εμφανίζονται οι 12 τελευταίες ενώ αν αυτός έχει επισκεφθεί μέσω φορητής συσκευής εμφανίζονται μόνο οι 5 τελευταίες.

Έλεγχος κατά την προσθήκη προϊόντος στο καλάθι

Πρέπει να γίνεται έλεγχος αν δόθηκε έγκυρη τιμή ποσότητας ή αν ήδη υπάρχει στο καλάθι ένα προϊόν πριν καταχωρηθεί στο καλάθι αγοράς του χρήστη.

Κατά την προσθήκη ενός προϊόντος, γίνεται έλεγχος στην τιμή ποσότητας που δόθηκε. Αν έχει δοθεί αρνητική τιμή ή τιμή που περιέχει χαρακτήρες τότε θεωρείται ότι έγινε λάθος κατά την εισαγωγή ποσότητας και καταχωρεί το προϊόν στο καλάθι με μοναδιαία ποσότητα με σκοπό την αλλαγή αυτής από τον χρήστη όταν επισκεφθεί το καλάθι αγοράς. Αν δοθεί δεκαδική τιμή τότε αποκόπτει το δεκαδικό μέρος και καταχωρεί το προϊόν με την ακέραια τιμή της ποσότητας.

Επίσης γίνεται έλεγχος για την ήδη ύπαρξη στο καλάθι αγοράς του προϊόντος προς προσθήκη.

Εάν υπάρχει ήδη τότε το νέο προϊόν δεν καταχωρείται αλλά μένει το παλιό προϊόν με την παλιά ποσότητα.

Αν δεν υπάρχει κάποιο πρόβλημα στην προσθήκη, τότε αυτό καταχωρείται στη βάση δεδομένων, στον πίνακα του καλαθιού με την ένδειξη ότι βρίσκεται σε καλάθι το οποίο βρίσκεται ακόμη προς επεξεργασία.

(16)

Επεξεργασία/Διαγραφή προϊόντων του Καλαθιού Αγοράς

Κατά την προβολή του καλαθιού αγοράς, ο χρήστης θα πρέπει να έχει την δυνατότητα να αλλάξει την ποσότητα ενός προϊόντος, να το διαγράψει ή να διαγράψει ολόκληρη την λίστα των προϊόντων.

Όταν γίνεται αλλαγή ποσότητας γίνεται παρόμοιος έλεγχος με την προσθήκη προϊόντος. Αν έχει δοθεί αρνητική ή αλφαριθμητική τιμή τότε επιστρέφει στο καλάθι και προειδοποιεί τον χρήστη με μήνυμα. Αλλιώς γίνεται ανανέωση της ποσότητας του προϊόντος στον πίνακα του καλαθιού στη βάση δεδομένων.

Όταν ο χρήστης διαγράψει ένα προϊόν τότε αυτό διαγράφεται από τον πίνακα των προϊόντων.

Αντίστοιχα, όταν ο χρήστης διαγράψει όλη την παραγγελία, γίνεται αναζήτηση στον παραπάνω πίνακα για τα προϊόντα που έχει προσθέσει στο συγκεκριμένο supermarket ο συνδεδεμένος χρήστης και τα διαγράφει από τον πίνακα.

Αποστολή παραγγελίας

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

Εκείνη τη στιγμή, γίνεται ανανέωση των προϊόντων, στον πίνακα του καλαθιού. Αλλάζει η ένδειξη, που υποδηλώνει ότι τα συγκεκριμένα προϊόντα του καλαθιού είναι προς επεξεργασία, σε

“συγκέντρωση προϊόντων”. Αυτό συμβαίνει για να μην εμφανίζεται πλέον στο καλάθι αγοράς του χρήστη αλλά στο ιστορικό παραγγελιών. Επίσης κατά την ανανέωση του πίνακα καταχωρείται και η ημερομηνία και η ώρα της παραγγελίας με σκοπό την ταξινόμηση της στο ιστορικό των παραγγελιών.

(17)

3.2 Απαιτήσεις για τον Διαχειριστή SuperMarket

Eίσοδος του διαχειριστή στην εφαρμογή

Για να εισέλθει ένας διαχειριστής στην εφαρμογή, όπως και ο χρήστης, πρέπει να εισάγει σωστά το όνομα χρήστη και τον κωδικό πρόσβασης.

Όταν εισάγει τα στοιχεία του και πατήσει σύνδεση, το όνομα χρήστη και ο κωδικός ελέγχονται για να βρεθεί αν υπάρχει αντιστοιχία στην βάση δεδομένων. Εάν δεν υπάρχει τότε εμφανίζεται ένα μήνυμα λάθους στον διαχειριστή για να τον ειδοποιήσει.

Προβολή όλων των εισερχόμενων και φιλτραρισμένων παραγγελιών

Προκειμένου να εξυπηρετηθούν οι παραγγελίες, αυτές θα πρέπει να εμφανίζονται στον διαχειριστή.

Από τη στιγμή που ένας χρήστης αποστέλλει μία παραγγελία στο supermarket του διαχειριστή, αλλάζει η κατάσταση του καλαθιού στην βάση δεδομένων και ο διαχειριστής μπορεί να την δει.

Επίσης, μετά την αποστολή της παραγγελίας, κατά την ανανέωση που γίνεται στην βάση δεδομένων, προστίθεται και η ημερομηνία και η ώρα που έγινε η αποστολή. Αυτό εξυπηρετεί στην διαχώριση των πολλαπλών παραγγελιών από τον ίδιο χρήστη.

Για την διευκόλυνση του διαχειριστή, εκτός από την εμφάνιση όλων των παραγγελιών, οι παραγγελίες που εμφανίζονται μπορεί να είναι μόνο οι προς “συγκέντρωση προϊόντων” ή μόνο αυτές που έχουν “αποσταλεί”, ανάλογα με την κατάσταση τους. Αυτό επιτυγχάνεται με τον περιορισμό της κατάστασης όταν “ψάχνουμε” για παραγγελίες στην βάση δεδομένων.

(18)

Αλλαγή κατάστασης παραγγελιών

Ο διαχειριστής πρέπει να έχει τη δυνατότητα να αλλάζει την κατάσταση στης παραγγελίας.

Αυτό εξυπηρετεί στην καλύτερη οργάνωση για την εξυπηρέτηση των παραγγελιών όπως επίσης και στην ενημέρωση του χρήστη για την εξέλιξη της παραγγελίας του.

Ο διαχειριστής, όταν προβάλει μια παραγγελία, μπορεί να αλλάξει την κατάσταση της σε

“Συγκέντρωση προϊόντων”, “Απεστάλη”, “Ολοκληρώθηκε”, “Ακυρώθηκε” και αναλόγως αλλάζει και η ένδειξη των προϊόντων της παραγγελίας.

Αυτόματη ανανέωση παραγγελιών

Ο διαχειριστής όταν βρίσκεται στην σελίδα προβολής των παραγγελιών, πρέπει να ενημερώνεται άμεσα για τις νέες εισερχόμενες παραγγελίες με σκοπό την ταχύτερη εξυπηρέτηση τους.

Για τον λόγο αυτό, όταν βρίσκεται στη σελίδα προβολής των παραγγελιών ή όταν βρίσκεται στην προβολή παραγγελιών που η κατάσταση του είναι ορισμένη ως “συγκέντρωση προϊόντων”, η ιστοσελίδα επαναφορτώνεται αυτόματα. Κατά την επαναφόρτωση γίνεται νέα προσπέλαση της βάσεως δεδομένων και εμφανίζονται και οι νέες παραγγελίες.

(19)

4 Τεχνολογίες που χρησιμοποιήθηκαν

4.1 Διακομιστής Διαδικτύου

Το διαδίκτυο είναι ένα παγκόσμιο σύστημα διασυνδεδεμένων δικτύων υπολογιστών που επιτρέπει την ανταλλαγή δεδομένων μεταξύ οποιουδήποτε διασυνδεδεμένου υπολογιστή. Ως διαδίκτυο επίσης αναφέρεται και το σύνολο των υπηρεσιών που παρέχονται στους διασυνδεδεμένους υπολογιστές.

Ο υπολογιστής που αναλαμβάνει παροχές υπηρεσιών σε άλλους υπολογιστές, γνωστούς ως πελάτες (clients), ονομάζεται διακομιστής (server). Οι πελάτες, συνδέονται μέσω του διαδικτύου με τον διακομιστή, στον οποίο είναι αποθηκευμένος ο πηγαίος κώδικας της υπηρεσίας, και ο διακομιστής αναλαμβάνει την εξυπηρέτηση των αιτήσεων τους.

Στις στατικές ιστοσελίδες, δεν εκτελούνται συνήθως κάποιες διεργασίες, καθώς η ιστοσελίδα εμφανίζεται ακριβώς όπως αποθηκεύτηκε. Αντίθετα, στις δυναμικές ιστοσελίδες, όταν κάποιος πελάτης στέλνει κάποιο αίτημα στον διακομιστή, τότε στον διακομιστή εκτελούνται διάφορες διεργασίες, όπως η εκτέλεση PHP προγραμμάτων και η αναζήτηση πληροφοριών μέσω προσπελάσεων σε βάσεις δεδομένων χρησιμοποιώντας MySQL. Για τον λόγο αυτό χρησιμοποιούνται κυρίως Διακομιστές apache οι οποίοι είναι ικανοί να υποστηρίξουν πληθώρα διεργασιών.

Η υλική σύνθεση ενός διακομιστή διαφέρει από τους συνηθισμένους υπολογιστές. Συχνά λειτουργούν για μεγάλα διαστήματα χωρίς διακοπές καθώς πρέπει να είναι διαθέσιμοι συνεχώς. Αυτό καθιστά την ανάγκη για αξιοπιστία και αντοχή των υλικών τους ιδιαίτερα σημαντική.

Χρησιμοποιούνται κουτιά, με πολλά ανεμιστηράκια, τα οποία επιτρέπουν καλύτερη κυκλοφορία του αέρα μέσα τους, μητρικές κάρτες με αντοχή σε υψηλές θερμοκρασίες, σκληροί δίσκοι κατάλληλοι για μεγάλο συνεχόμενο χρόνο χρήσης συνδεδεμένοι σε συστοιχίες RAID κλπ.

(20)

4.2 HTML – HyperText Markup Language

Η HTML, στα ελληνικά Γλώσσα Σήμανσης Υπερκειμένου, είναι η κύρια γλώσσα σήμανσης για τις ιστοσελίδες και τα στοιχεία της είναι τα βασικά δομικά στοιχεία των ιστοσελίδων.

Η HTML γράφεται υπό την μορφή στοιχείων HTML. Τα στοιχεία αυτά αποτελούνται από ετικέτες, οι οποίες συνήθως λειτουργούν ανά ζεύγη, με την πρώτη να ονομάζεται ετικέτα έναρξης, ενώ η δεύτερη ετικέτα λήξης. Τα στοιχεία της HTML αποτελούν τα θεμέλια όλων των ιστοτόπων. Ανάμεσα στις ετικέτες μπορεί να τοποθετηθεί κείμενο, εικόνες, κουμπιά, πίνακες, να δημιουργηθούν διαδραστικές φόρμες. Παρέχει μέσα για την δημιουργία δομημένων αρχείων, όπως επικεφαλίδες, παραγράφους, λίστες, υπερσυνδέσμους κτλ. Επίσης μπορεί να ενσωματώσει “σενάρια” (scripts) γλωσσών προγραμματισμού όπως η JavaScript, οι οποίες επηρεάζουν την συμπεριφορά των HTML ιστοσελίδων.

Σκοπός ενός φυλλομετρητή ιστοσελίδας είναι να διαβάσει HTML αρχεία και να τα μετατρέψει οπτικά σε ιστοσελίδες. Οι ετικέτες δεν εμφανίζονται, αλλά χρησιμοποιούνται από τον φυλλομετρητή για να ερμηνεύσουν ανάλογα το περιεχόμενο τους.

4.3 CSS – Cascading Style Sheets

Η CSS, στα ελληνικά Διαδοχικά Φύλλα Στιλ, είναι μια γλώσσα προγραμματισμού που χρησιμοποιείται για να τροποποιήσει την εμφάνιση και την μορφοποίηση ενός εγγράφου που έχει γραφθεί με μία γλώσσα σήμανσης. Η πιο συνηθισμένη χρήση της είναι στην διακόσμηση ιστοσελίδων γραμμένες σε HTML.

H CSS διαχωρίζει το περιεχόμενο του εγγράφου από την παρουσίαση του εγγράφου συμπεριλαμβάνοντας στοιχεία όπως η διάταξη του εγγράφου, τα χρώματα και οι γραμματοσειρές του.

Ο διαχωρισμός αυτός επιτρέπει στον σχεδιαστή να ασχοληθεί καθαρά με την παρουσίαση του

(21)

της HTML.

Η σύνταξη του είναι αρκετά απλή και περιέχει κάποιες λέξεις κλειδιά που περιγράφουν τις διάφορες διαμορφωτικές ιδιότητες. Ένα αρχείο CSS αποτελείται από ένα σύνολο κανόνων. Κάθε κανόνας αποτελείται από το όνομα του και ένα σύνολο ιδιοτήτων. Για να εφαρμοστεί ένα κανόνας σε μία γλώσσα σήμανσης, όπως η HTML, θα πρέπει να καταχωρηθεί αναγνωριστικό με το όνομα του κανόνας στην ετικέτα της γλώσσας σήμανσης που περιέχει τα δεδομένα στα οποία θέλουμε να ισχύσει ο κανόνας. Επίσης, ένας κανόνας μπορεί να ονομαστεί έτσι ώστε οι ιδιότητες που περιέχει να ισχύουν κάθε φορά που εμφανίζεται στο έγγραφό μας η επιθυμητή ετικέτα, χωρίς να χρειάζεται σε κάθε ετικέτα να καταχωρείται αναγνωριστικό με το όνομα του κανόνα που δημιουργήθηκε.

Ένα αρχείο που περιέχει CSS, έχει την κατάληξη .css. Μπορεί, επίσης, να ενσωματωθεί σε ένα αρχείο HTML αρκεί να περικλείεται από τις ετικέτες <style type=”text/css”> και </style>. Τέλος, υπάρχει και η δυνατότητα να συνταχθεί μέσα σε μία ετικέτα της HTML, χρησιμοποιώντας μέσα στην ετικέτα έναρξης τον όρο style=””, όπου μέσα στα εισαγωγικά συμπληρώνονται οι επιθυμητές ιδιότητες. Αυτή η επιλογή θα μορφοποιήσει μόνο τα περιεχόμενα που περικλείονται στην ετικέτα και θα αφήσει ανεπηρέαστες ίδιες ετικέτες που χρησιμοποιούνται στο ίδιο έγγραφο.

4.4 PHP : Hypertext Preprocessor

H PHP είναι μια γλώσσα προγραμματισμού για τη δημιουργία ιστοσελίδων με δυναμικό περιεχόμενο. Μια σελίδα PHP περνά από επεξεργασία από ένα συμβατό διακομιστή του διαδικτύου, ώστε να παραχθεί σε πραγματικό χρόνο το τελικό περιεχόμενο, που θα σταλεί στο πρόγραμμα περιήγησης των επισκεπτών σε μορφή κώδικα HTML.

Ένα αρχείο που περιέχει κώδικα PHP πρέπει να έχει και την ανάλογη επέκταση, όπως .php.

Κώδικας PHP μπορεί να ενσωματωθεί σε HTML αρχεία, με καταλήξεις .html, αρκεί να περικλείεται από τις ετικέτες <script language=”php”> και </script> ή πιο απλά από τις ετικέτες <? και ?>. Ο

(22)

επηρεάζεται από οτιδήποτε είναι εκτός.

Η PHP χρησιμοποιείται κυρίως σαν φίλτρο, παίρνοντας σαν είσοδο ένα αρχείο ή ένα ρεύμα που περιέχει κείμενο ή γενικότερα οδηγίες για την PHP και δίνει σαν έξοδο ένα ρεύμα δεδομένων, το οποίο συνήθως εμφανίζεται σαν HTML.

Η PHP είναι παρόμοια με τις περισσότερες υψηλού επιπέδου γλώσσες που ακολουθούν την σύνταξη της C. Με τις γλώσσες προγραμματισμού Perl και C/C++ στις οποίες έχει τις ρίζες της, έχει εξαιρετική ομοιότητα ως προς τον τρόπο σύνταξης άλλα και πολλές εντολές και συναρτήσεις.

4.5 MySQL

Κάθε οργανισμός έχει κάποια δεδομένα, τα οποία απαιτούν μια οργανωμένη μέθοδο για την προσπέλαση, την ανανέωση και την συντήρηση τους. Το σύνολο αυτών τον δεδομένων αποτελεί μια βάση δεδομένων. Η πιο διαδεδομένη γλώσσα που χρησιμοποιείται για την επικοινωνία του χρήστη με την βάση δεδομένων είναι η SQL (Structered Query Language – Δομημένη Γλώσσα Ερωτημάτων).

Πρόκειται για μία γλώσσα ερωτήσεων και απαντήσεων. Ο χρήστης διατυπώνει διάφορα ερωτήματα (queries) και το σύστημα διαχείρισης της βάσης δεδομένων αναλαμβάνει να τα ικανοποιήσει. Πέραν της SQL υπάρχουν και κάποιες επεκτάσεις της, οι οποίες αυξάνουν την λειτουργικότητα της γλώσσας.

Η πιο διαδεδομένη επέκταση, που χρησιμοποιείται από τους διακομιστές του διαδικτύου, είναι η MySQL.

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

SELECT. Ένα ερώτημα μπορεί να ακολουθείται από διάφορους όρους που παραμετροποιούν την αναζήτηση, όπως το FROM που υποδηλώνει σε ποιον πίνακα της βάσης να πραγματοποιηθεί το ερώτημα, το WHERE που ακολουθείται από μία σύγκριση και χρησιμοποιείται για να απορριφθούν διάφορες καταχωρήσεις που δεν ικανοποιούν την σύγκριση, το ORDER BY που αναλαμβάνει να ταξινομήσει τα δεδομένα προς εμφάνιση αναλόγως με το πεδίου που το ακολουθεί κλπ.

(23)

δεδομένα αντίστοιχα. Οι εντολές αυτές μπορούν να ακολουθηθούν επίσης από διάφορους όρους όπως και η SELECT, όπως το FROM και το WHERE.

H MySQL είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων, το οποίο λειτουργεί σαν διακομιστής και παρέχει τη δυνατότητα πρόσβασης βάσεων δεδομένων από πολλούς χρήστες ταυτόχρονα. Η MySQL είναι ιδανική για χρήση σε δυναμικές ιστοσελίδες. Επιτρέπει την προσπέλαση και την διαχείριση της βάσης μέσω κώδικα PHP. Αυτό επιτυγχάνεται μέσω κάποιων συναρτήσεων της PHP, όπως την mysql_connect() που κάνει τη σύνδεση με τον διακομιστή και δημιουργεί το ρεύμα από και προς αυτή και την mysql_select_db() που δημιουργεί το ρεύμα από και προς την βάση. Αφού γίνουν οι παραπάνω ενέργειες τότε μέσω της mysql_query() γίνεται ένα ερώτημα στη βάση, ενώ όταν γίνεται αναζήτηση δεδομένων προς προβολή από τη βάση χρησιμοποιείται η mysql_fetch_array().

Πέραν της διαχείρισης της MySQL μέσω εντολών, προσφέρονται κάποια περιβάλλοντα διαχείρισης της βάσης δεδομένων, τα οποία έχουν γραφικό περιβάλλον και είναι πιο φιλικά προς το χρήστη. Ένα τέτοιο εργαλείο, το οποίο χρησιμοποιείται ευρέως για την διαχείριση βάσεων δεδομένων σε διακομιστές διαδικτύου, είναι το phpΜyΑdmin. Το phpMyAdmin είναι γραμμένο σε PHP και παρέχει διαχείριση MySQL μέσω ενός φυλλομετρητή ιστού. Εκτός από τις δυνατότητες διαχείρισης της βάσης, προσφέρει ακόμα εισαγωγή δεδομένων μέσω αρχείων CSV ή SQL, μπορεί να εξάγει τη βάση δεδομένων σε διάφορες μορφές αρχείων, να δημιουργήσει γραφικά με την διάταξη της βάσης κτλ.

4.6 JavaScript

Η JavaScript είναι γλώσσα προγραμματισμού η οποία έχει σαν σκοπό την παραγωγή δυναμικού περιεχομένου και την εκτέλεση κώδικα στην πλευρά του πελάτη σε ιστοσελίδες. Έχει παρόμοια σύνταξη με την C, όπως η PHP, αλλά η εκτέλεση του κώδικα της JavaScript δεν γίνεται από τον διακομιστή, όπως η PHP, αλλά από τον φυλλομετρητή ιστοσελίδας.

(24)

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

Ένα αρχείο που περιέχει κώδικα JavaScript, έχει την κατάληξη .js. Μπορεί, επίσης, όπως και η PHP, να ενσωματωθεί σε ένα αρχείο HTML αρκεί να περικλείεται από τις ετικέτες <script language=”javascript”> και </script>.

4.7 Κρυπτογραφία MD5

Στη σύγχρονη κρυπτογραφία με τον όρο συνάρτηση hash εννοούμε μια σαφώς ορισμένη διαδικασία ή αλλιώς μηχανισμό, ο οποίος στην είσοδό του δέχεται ένα μπλοκ δεδομένων οποιουδήποτε μεγέθους και στην έξοδό του δίνει μια συμβολοσειρά συγκεκριμένου, σταθερού μήκους, το λεγόμενο hash value. Χαρακτηριστική ιδιότητα μιας οποιασδήποτε συνάρτησης hash είναι η εξαιρετική της

"ευαισθησία" στα δεδομένα εισόδου. Για την ακρίβεια, η παραμικρή αλλαγή στην είσοδό της επιστρέφει ένα αποτέλεσμα εντελώς διαφορετικό σε σύγκριση με το προηγούμενο. Στα πλαίσια της κρυπτογραφίας, η είσοδος που δέχεται μία συνάρτηση hash ονομάζεται μήνυμα (message), ενώ η έξοδος, το αποτέλεσμα της κρυπτογράφησης, ονομάζεται σύνοψη μηνύματος ή απλά σύνοψη (digest).

Μια εξαιρετικά δημοφιλής συνάρτηση hash είναι η MD5, Message-Digest algorithm 5, όπου συνήθως αναφέρεται ως αλγόριθμος MD5, Message-Digest algorith 5, δηλαδή αλγόριθμος Μηνύματος-Σύνοψης 5. Μια συνήθης εφαρμογή του είναι στην κρυπτογράφηση των κωδικών χρηστών σε συστήματα UNIX, λειτουργικό σύστημα που συνηθίζεται να τρέχει στου διακομιστές του διαδικτύου. Αναλυτικότερα, οι κωδικοί πρόσβασης που επιλέγουν οι χρήστες για τους λογαριασμούς τους δεν αποθηκεύονται ως απλό κείμενο, όπως τα πληκτρολογούν οι χρήστες. Αντί αυτών, στο σύστημα αποθηκεύονται οι συνόψεις των κωδικών πρόσβασης όπως αυτοί προκύπτουν από τον αλγόριθμο MD5. Έτσι, όταν ένας χρήστης επιχειρεί να συνδεθεί στο λογαριασμό του, αφού δώσει το

(25)

χρήστη μόνον όταν οι δύο συνόψεις ταυτίζονται, και φυσικά υπάρχει στο σύστημα χρήστης με το δοσμένο όνομα χρήστη.

4.8 Προγράμματα Συγγραφής Ιστοσελίδων

Για την διαμόρφωση του γραφικού περιβάλλοντος της εφαρμογής χρησιμοποιήθηκε το Adobe Dreamweaver CS5. Το Dreamweaver είναι ένα πρόγραμμα συγγραφής διαδικτυακών εφαρμογών.

Ακολουθεί την λογική What You See Is What You Get (WYSIWYG). Παρέχει δηλαδή ένα παράθυρο ζωντανής προεπισκόπησης της ιστοσελίδας που συγγράφεται εκείνη τη στιγμή. Αυτό το καθιστά ιδανικό για συγγραφή HTML και CSS καθώς παρέχει και αρκετές ευκολίες κατά την συγγραφή τους, όπως την χρωματικό τονισμό κώδικα για να είναι ευδιάκριτα τα διάφορα στοιχεία του κώδικα, την σύνδεση με άλλα έγγραφα που συσχετίζεται η ιστοσελίδα με σκοπό την αυτόματη υπόδειξη πιθανών συμπληρώσεων σε διάφορα σημεία της συγγραφής, αυτοματοποιημένες διαδικασίες συγγραφής κώδικα μέσω του γραφικού του περιβάλλοντος όπως δημιουργία πινάκων, εικόνων κτλ.

Κάτι που δεν προσφέρει το Dreamweaver είναι προεπισκόπηση κώδικα PHP. Αυτό συμβαίνει διότι η PHP είναι μία δυναμική γλώσσα προγραμματισμού και η έξοδος της διαφέρει, ανάλογα από τα δεδομένα που θα πάρει ως είσοδο. Δεν προσφέρει επίσης χρωματικό τονισμό για την PHP. Για αυτό το λόγο προτιμήθηκε ένας απλός επεξεργαστής κειμένου, με δυνατότητες χρωματικού τονισμού κώδικα PHP, ο gedit, ο επίσημος επεξεργαστής κειμένου του GNOME. Το gedit είναι πολύ ελαφρύ σαν πρόγραμμα, σε αντίθεση με το Dreamweaver. Σαν επεξεργαστής κειμένου που είναι καταναλώνει ελάχιστους πόρους συστήματος. Ένα άλλο πλεονέκτημα του είναι η δυνατότητα να επεξεργαστεί και να διαμορφώσει τα αρχεία ενώ αυτά βρίσκονται στον διακομιστή διαδικτύου, σε αντίθεση με το Dreamweaver που, αναγκαστικά, επεξεργάζεται τα αρχεία τοπικά και έπειτα τα αρχεία αυτά πρέπει να

“ανεβούν” στον διακομιστή διαδικτύου μέσω ενός προγράμματος πρωτοκόλλου μεταφοράς αρχείων.

(26)

Εικόνα 4.8.1: Adobe Dreamweaver CS5

(27)

5 Σχεδιασμός Εφαρμογής

5.1 Αρχιτεκτονική Συστήματος

Τα σύγχρονα πληροφοριακά συστήματα, που βασίζονται σε ηλεκτρονικούς υπολογιστές, εξυπηρετητές, οι οποίοι συλλέγουν, αποθηκεύουν, αναλύουν και διαχέουν δεδομένα και πληροφορίες.

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

(28)

5.2 Κεντρικός Εξυπηρετητής

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

Εικόνα 5.2.1: Κεντρικός Εξυπηρετητής

5.3 Διαδικτυακός Διακομιστής

Η εφαρμογή παραγγελιοδοσίας που αναπτύσσουμε, πρέπει να είναι άμεσα προσβάσιμη ανά πάσα στιγμή, ανεξαρτήτως λειτουργικού συστήματος και μέσου επεξεργασίας. Για τον λόγο αυτό χρησιμοποιήθηκε ένας διαδικτυακός διακομιστής. Για να αποκτήσει κανείς πρόσβαση σε ένα ιστότοπο, θα πρέπει να κατοχυρώσει πρώτα ένα όνομα ιστοτόπου (domain name) από μία ανάλογη υπηρεσία και έπειτα να “ενοικιάσει” χώρο σε ένα διακομιστή διαδικτύου με σκοπό την φιλοξενία του ονόματος και

(29)

ταχυδρομείου κτλ. Αφού πραγματοποιήσει τα παραπάνω βήματα, τότε θα είναι σε θέση να επισκεφθεί τον ιστότοπο του χρησιμοποιώντας το όνομα του ιστοτόπου του.

Το όνομα του ιστοτόπου που καταχωρήθηκε με σκοπό την φιλοξενία της εφαρμογής στον διαδικτυακό διακομιστή είναι www.serspan.com. Το λειτουργικό σύστημα του διακομιστή είναι Linux και περιλαμβάνει διακομιστή Apache, PHP και MySQL, ενώ παρέχει έναν πίνακα ελέγχου διαδικτυακών διακομιστών, το cPanel. Ο πίνακας ελέγχου αυτός παρέχει μία συλλογή από βοηθητικά εργαλεία που απλοποιούν τις διαδικασίες φιλοξενίας ενός ιστοτόπου με γραφικό περιβάλλον.

Προσφέρει λειτουργίες διαχείρισης και δημιουργίας λογαριασμών ηλεκτρονικού ταχυδρομείου, εργαλεία διαχείρισης των αρχείων του διακομιστή, εργαλεία δημιουργίας και διαχείρισης βάσεων δεδομένων, διαδικασίες συντήρησης και διατήρησης αντιγράφων ασφαλείας, διαθέτει ένα σύστημα καταγραφής και προβολής στατιστικών στοιχείων κτλ.

Η πρόσβαση στον πίνακα ελέγχου γίνεται μέσω κάποιου φυλλομετρητή ιστού και μπορεί να γίνει με δύο τρόπους. Ο πρώτος είναι η κατεύθυνση του φυλλομετρητή στο όνομα του ιστοτόπου, στο οποίο γίνεται η φιλοξενία, ακολουθούμενο από το port (συνήθως) 2022 (πχ www.serspan.com:2082) .Ο δεύτερος είναι η κατεύθυνση του φυλλομετρητή στο όνομα του ιστοτόπου, στο οποίο γίνεται η φιλοξενία, ακολουθούμενο από τον υποκατάλογο cpanel (πχ www.serspan.com/cpanel). Κατευθύνοντας τον φυλλομετρητή στην παραπάνω διεύθυνση γίνεται ανακατεύθυνση στην διεύθυνση του πρώτου τόπου.

(30)

Εικόνα 5.3.1: Ο πίνακας ελέγχου του διακομιστή (cpanel)

Βέβαια, υπάρχουν και εναλλακτικές επιλογές. Αντί της χρήσης ενός διαδικτυακού διακομιστή, μπορεί να διαμορφωθεί ο προσωπικός υπολογιστής σαν ένας τοπικός διακομιστής. Η διαμόρφωση αυτή γίνεται αρκετά εύκολα και γρήγορα και υπάρχει και η δυνατότητα της επιλογής καθώς κυκλοφορούν κάμποσα τέτοια εργαλεία και διατίθενται δωρεάν. Το πιο διαδεδομένο είναι το AppServ (www.appservnetwork.com) και παρέχει διακομιστή Apache, PHP και MySQL αλλά και ένα εργαλείο δημιουργίας και διαχείρισης βάσεων δεδομένων, το phpMyAdmin και διατίθεται μόνο για Windows.

Εναλλακτικά μπορεί να χρησιμοποιηθεί το XAMPP (www.apachefriends.org) το οποίο διατίθεται για λειτουργικά συστήματα Linux, Windows, Mac OS X και Solaris.

(31)

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

Η μονάδα αυτή είναι υπεύθυνη για την ανάκτηση και την αποθήκευση πληροφοριών της εφαρμογής. Το πληροφοριακό σύστημα, αξιοποιεί αυτή την μονάδα για να διαχειρίζεται και να προβάλει δεδομένα και πληροφορίες.

Για την διαχείριση της βάσης δεδομένων χρησιμοποιήθηκε ένα εργαλείο διαχείρισης βάσεων δεδομένων με γραφικό περιβάλλον που παρέχει ο πίνακας ελέγχου του διαδικτυακού διακομιστή cPanel, το phpMyAdmin. Με το εργαλείο αυτό δεν είναι απαραίτητη η χρήση ερωτημάτων γλώσσας SQL μέσω μιας γραμμής εντολών, ωστόσο και αυτή η δυνατότητα προσφέρεται από το ίδιο το εργαλείο.

Εικόνα 5.4.1: Η αρχική σελίδα του phpMyAdmin

(32)

Εικόνα 5.4.2: Η γραμμή εντολών SQL του phpMyAdmin

Παρ' όλα αυτά το phpMyAdmin δεν προσφέρει την λειτουργία για την δημιουργία βάσης μέσω του γραφικού του περιβάλλοντος. Η δημιουργία της βάσης δεδομένων έγινε μέσω ενός εργαλείου που προσφέρει ο πίνακας ελέγχου cPanel, που ονομάζεται MySQL Databases. Μέσω του συγκεκριμένου εργαλείου γίνεται και η διαγραφή των βάσεων.

(33)

Εικόνα 5.4.3: Το εργαλείο MySQL Databases

Η βάση δεδομένων αποτελεί σημαντικό κομμάτι της εφαρμογής. Μέσω της βάσης πραγματοποιούνται όλες οι εργασίες της. Εκεί καταχωρούνται οι νέοι χρήστες μετά την εγγραφή τους, από εκεί αντλούνται τα δεδομένα για την προβολή των καταλόγων, εκεί καταχωρούνται τα προϊόντα που ο χρήστης καταχωρεί στο καλάθι του, από εκεί γίνεται η προβολή των εισερχόμενων παραγγελιών στον διαχειριστή του supermarket, εκεί καταχωρείται η αλλαγή της κατάστασης της παραγγελιάς κτλ.

Η βάση της εφαρμογής αποτελείται από τέσσερις πίνακες. Ο πίνακας login με τα δεδομένα των πελατών, ο πίνακας products που περιέχει τα δεδομένα των προϊόντων, ο πίνακας supermarket στον οποίο είναι καταχωρημένα τα στοιχεία όλων των συμβεβλημένων supermarket και τέλος ο πίνακας orders ο οποίος αποτελεί το καλάθι αγοράς αλλά και τον πίνακα παραγγελιών ταυτόχρονα. Παρακάτω παρατίθενται οι πίνακες με όλα τα πεδία τους καθώς και οι συσχετίσεις τους καθώς και διαγράμματα

(34)

Πίνακας login

Εδώ βρίσκονται καταχωρημένα τα στοιχεία του χρήστη. Το πεδίο activated υποδηλώνει εάν ο χρήστης έχει ενεργοποιήσει τον λογαριασμό του. Το πεδίο county δεν συμπληρώνεται από τον χρήστη αλλά επιλέγεται από μια λίστα νομών που προκύπτει από τους νομούς των συμβεβλημένων supermarket.

Πεδίο Τύπος Περιγραφή

Id int Αύξων Αριθμός - Κλειδί

username varchar Το Όνομα Χρήστη που χρησιμοποιεί password varchar Ο Κωδικός πρόσβασης του χρήστη

email varchar Η διεύθυνση ηλεκτρονικού ταχυδρομείου του χρήστη first_name varchar Το όνομα του χρήστη

last_name varchar Το επίθετο του χρήστη

town varchar Η πόλη του χρήστη

county varchar Ο νομός του χρήστη

address varchar Η διεύθυνση κατοικίας του χρήστη phone varchar Το τηλέφωνο του χρήστη

date int Η ημερομηνία εγγραφής του χρήστη

aid varchar Κωδικός Ενεργοποίησης Λογαριασμού - Unique activated tinyint Κατάσταση Λογαριασμού

Πίνακας supermarket

Σε αυτόν τον πίνακα είναι καταχωρημένα τα στοιχεία όλων των συμβεβλημένων supermarket.

Το πεδίο sm_county μπορεί να περιέχει ίδια τιμή με το πεδίο county του πίνακα login με σκοπό την

(35)

Πεδίο Τύπος Περιγραφή

id int Αύξων Αριθμός - Κλειδί

sm_name varchar Το όνομα του supermarket address varchar Η διεύθυνση του supermarket

town varchar Η πόλη του

sm_county varchar Ο νομός του

username varchar Το Όνομα Χρήστη του διαχειριστή του supermarket password varchar Ο κωδικός πρόσβασης του διαχειριστή

Πίνακας products

Σε αυτόν τον πίνακα βρίσκονται τα δεδομένα των προϊόντων όλων των supermarket. Το πεδίο sid μπορεί να είναι ίδιο με το id του πίνακα supermarket με σκοπό την εμφάνιση μόνο των προϊόντων του supermarket με το συγκεκριμένο id.

Πεδίο Τύπος Περιγραφή

id int Αύξων Αριθμός - Κλειδί

sid int Ο Αύξων Αριθμός του supermarket

name varchar Το όνομα του προϊόντος

qty int Η διαθέσιμη ποσότητα του προϊόντος

qty_type varchar Η μονάδα μέτρησης του προϊόντος price varchar Η τιμή του προϊόντος

cat varchar Η κατηγορία του προϊόντος

subcat varchar Η υποκατηγορία του προϊόντος

rec tinyint Υποδηλώνει αν το προϊόν βρίσκεται σε προσφορά

Referências

Documentos relacionados

 Σχόλιο για την έμπνευση: το έργο του Wallis- 4 Για την 4 η γραμμή δηλαδή στη γραμμή των συντελεστών του −𝑥 7 /7 και που αρχίζει με 3 μηδενικά ο Newton υπέθεσε ότι τα στοιχεία