ΕΡΓΑΣΙΑ (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών) Τίτλος: Εφαρμογή Διαδικτύου Ηλεκτρονικού Καταστήματος Ζητούμενο: Να αναπτυχθεί web εφαρμογή, με χρήση της αρχιτεκτονικής εξυπηρετητή-πελάτη (client-server), η οποία θα επιτρέπει τα εξής: Α. Λειτουργία διαχείρισης καταστήματος α. εισαγωγή νέων προϊόντων στο κατάστημα, β. αλλαγή κάποιου ή κάποιων χαρακτηριστικών ενός προϊόντος (π.χ. τιμή προϊόντος), γ. διαγραφή ενός προϊόντος από το κατάστημα. Β. Λειτουργία πελάτη καταστήματος α. αναζήτηση προϊόντων, β. αγορά προϊόντων (ηλεκτρονικό καλάθι).
Ανάλυση της εφαρμογής Το τμήμα πελάτη (client) της εφαρμογής Ο χρήστης της εφαρμογής θα πρέπει να μπορεί να χρησιμοποιήσει έναν φυλλομετρητή (web browser) όπου δίνοντας την διεύθυνση (url) του ιστότοπου (web site) στον οποίο τρέχει η εφαρμογή αυτή θα τον καλωσορίζει και θα του δίνει τις εξής δυνατότητες: Την δυνατότητα διαχείρισης του καταστήματος μετά την εισαγωγή κατάλληλου username/password διαχειριστή. Σε αυτή την περίπτωση ο χρήστης θα πρέπει να μπορεί να εισάγει ένα καινούργιο προϊόν συμπληρώνοντας σε μία φόρμα την κατηγορία του προϊόντος και με βάση αυτή συγκεκριμένα χαρακτηριστικά του προϊόντος όπως π.χ. βάρος, όγκος, ποσότητα σε αριθμό, μία συνοπτική περιγραφή του προϊόντος, την τιμή του προϊόντος, λέξεις κλειδιά για την εύρεση του προϊόντος από τους χρήστες πελάτες του ηλεκτρονικού καταστήματος (π.χ. όνομα προϊόντος, κατασκευαστής προϊόντος) και γενικά οποιοδήποτε άλλο χαρακτηριστικό κρίνετε εσείς απαραίτητο για την πληρότητα της εφαρμογής, όπως η εικόνα του προϊόντος. Επίσης, θα πρέπει να μπορεί να αλλάξει κάποια χαρακτηριστικά ενός προϊόντος, όπως η τιμή του προϊόντος ή ο τόπος προέλευσής του κάνοντας χρήση της φόρμας με τα χαρακτηριστικά του προϊόντος. Τέλος, θα πρέπει να έχει την δυνατότητα διαγραφής ενός προϊόντος από το ηλεκτρονικό κατάστημα. Ο χρήστης πελάτης του ηλεκτρονικού καταστήματος θα πρέπει να μπορεί να κάνει μία περιήγηση στα προϊόντα του καταστήματος λαμβάνοντας πληροφορίες για αυτά σε κατάλληλη φόρμα. Θα πρέπει να έχει την δυνατότητα, ψάχνοντας με κατάλληλες λέξεις κλειδιά, να δει σε λίστα τα προϊόντα που τον ενδιαφέρουν και είναι καταχωρημένα στο ηλεκτρονικό κατάστημα. Στην συνέχεια, θα πρέπει να μπορεί να δει τα χαρακτηριστικά του αν επιλέξει ένα από τα προϊόντα της λίστας.
Ο χρήστης πελάτης θα πρέπει να μπορεί να παραγγείλει ένα ή περισσότερα προϊόντα επιλέγοντάς τα αφού συμπληρώσει και την ποσότητα που επιθυμεί σε κατάλληλη φόρμα. Αν κάποιο προϊόν δεν είναι διαθέσιμο στην ποσότητα που ενδιαφέρει τον πελάτη θα πρέπει η εφαρμογή να εμφανίζει δίπλα σε αυτό κατάλληλη ένδειξη. Ο χρήστης πελάτης για να έχει την δυνατότητα παραγγελίας προϊόντων θα πρέπει να είναι πιστοποιημένος από την εφαρμογή. Αν υπάρχει ήδη λογαριασμός γι αυτόν ο χρήστης πελάτης θα πρέπει να αποδείξει την ταυτότητά του με χρήση ονόματος/κωδικού (username/password). Αν δεν υπάρχει λογαριασμός για τον χρήστη πελάτη η εφαρμογή θα πρέπει να του προτείνει την δημιουργία λογαριασμού με την συμπλήρωση των στοιχείων του σε κατάλληλη φόρμα. Με την δημιουργία ενός λογαριασμού ο κάθε χρήστης πελάτης θα μπορεί να έχει ηλεκτρονικό καλάθι παραγγελιών. Το καλάθι δεν είναι απαραίτητο να έχει μνήμη. Κάθε φορά που ο χρήστης πελάτης δίνει τον κωδικό του και μπαίνει στην εφαρμογή το καλάθι παραγγελιών του θα είναι άδειο. Τα περιεχόμενα του καλαθιού σβήνονται είτε μετά από μία επιτυχή παραγγελία είτε κατά την έξοδο του χρήστη πελάτη από την εφαρμογή (logout). Για την εκτέλεση μίας παραγγελίας από την εφαρμογή δεν είναι απαραίτητη η εισαγωγή στοιχείων πληρωμής για χάριν απλότητας της εφαρμογής. Θα πρέπει απαραίτητα να γίνεται έλεγχος της εγκυρότητας των εισαγόμενων τιμών στα πεδία με βάση κανόνες που θα θεσπίσετε εσείς, π.χ. η ποσότητα ενός προϊόντος δεν μπορεί να είναι αρνητικός αριθμός ή η έκπτωση σε ένα προϊόν δεν μπορεί να είναι πάνω από το 50% της αρχικής τιμής του προϊόντος. Σε περίπτωση λάθους θα πρέπει να εμφανίζεται κατάλληλη ένδειξη δίπλα στην λανθασμένη τιμή του πεδίου
Η αναζήτηση ενός προϊόντος με λέξεις κλειδιά θα πρέπει να πραγματοποιείται είτε μέσω μενού π.χ. μενού κατηγορίας προϊόντος είτε με την χρήση πεδίων κειμένου για την εισαγωγή των κλειδιών. Επίσης θα πρέπει να υπάρχει η δυνατότητα σύνθετης αναζήτησης με χρήση σχέσεων αναζήτησης (λογικό and ή λογικό or) μέσω μενού. Το τμήμα εξυπηρετητή (server) της εφαρμογής Ο εξυπηρετητής (web server) θα πρέπει να μπορεί να εκτελέσει τα ακόλουθα: Θα πρέπει να υλοποιήσει τον μηχανισμό πιστοποίησης χρηστών διαχειριστών και πελατών. Τα στοιχεία πιστοποίησης θα πρέπει να είναι αποθηκευμένα σε βάση δεδομένων. Οι χρήστες διαχειριστές θα είναι συγκεκριμένοι (δεν θα υπάρχει δυνατότητα εγγραφής χρηστών διαχειριστών από την εφαρμογή αλλά αυτοί θα είναι ορισμένοι από την αρχή). Κατά την εγγραφή των χρηστών πελατών τα στοιχεία τους θα αποθηκεύονται στην βάση δεδομένων. Θα πρέπει να διατηρεί καλάθι παραγγελιών για κάθε χρήστη πελάτη ο οποίος βρίσκεται μέσα στην εφαρμογή (κατά την διάρκεια ενός session). Κατά την αναζήτηση προϊόντων, θα πρέπει τα κριτήρια αναζήτησης να μετατρέπονται σε κατάλληλες ερωτήσεις (queries) στη βάση δεδομένων. Αν το αποτέλεσμα είναι επιτυχές, ο εξυπηρετητής θα ετοιμάζει κατάλληλη απάντηση (ιστοσελίδα με τα στοιχεία που βρέθηκαν στην βάση κατάλληλα διαμορφωμένη) και θα την στέλνει στον πελάτη. Σε περίπτωση αποτυχίας, θα στέλνει κατάλληλο μήνυμα στον πελάτη.
Η βάση δεδομένων θα πρέπει να ακολουθεί το σχεσιακό μοντέλο και θα πρέπει κατ ελάχιστον να περιέχει έναν πίνακα για κάθε κατηγορία προϊόντος που εισάγεται στην εφαρμογή, έναν σταθερό πίνακα με τα στοιχεία των χρηστών διαχειριστών και έναν πίνακα για τα στοιχεία των πιστοποιημένων χρηστών πελατών. Οπωσδήποτε, είστε ελεύθεροι να σχεδιάσετε την βάση δεδομένων και να προσθέσετε όσους πίνακες κρίνετε απαραίτητους. Θα πρέπει να τονιστεί ότι η σχεδίαση και η υλοποίηση της εφαρμογής έχει μεγάλο βαθμό ελευθερίας, από την παρουσίαση των ιστοσελίδων στον πελάτη μέχρι την χρήση περισσότερων χαρακτηριστικών προϊόντων και κριτηρίων αναζήτησης από αυτά που έχουν αναφερθεί παραπάνω ώστε αυτή να πλησιάσει μία πλήρη επαγγελματική web εφαρμογή ηλεκτρονικού καταστήματος. Σκοπός της παραπάνω εκφώνησης είναι να δώσει κατευθυντήριες γραμμές και όχι να περιορίσει την εφαρμογή σε στενά όρια απαιτήσεων και δυνατοτήτων. Όρια της εφαρμογής είναι ουσιαστικά η φαντασία του καθενός. Τα εργαλεία και το περιβάλλον ανάπτυξης της εφαρμογής είναι αυτά που θα διδαχθούν στο μάθημα. Καλή Επιτυχία!