Ηλεκτρονικό Προσκλητήριο



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

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

XAMPP Apache MySQL PHP javascript xampp

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP

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

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

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

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

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΙΣΤΟΤΟΠΩΝ

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

Εφαρµογή: Σύστηµα ιαχείρισης ιαδικτυακού Περίπτερου / Ιστοσελίδας στον διαδικτυακό τόπο kalliergea.gr

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

ΟΝΟΜΑ : ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΩΝΥΜΟ : ΚΟΚΟΛΟΓΟΣ Α.Μ. : Ε11060 ΕΞΑΜΗΝΟ : ΕΠΙ ΠΤΥΧΙΟ ΤΜΗΜΑ : ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ : ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΕΦΑΡΜΟΓΗ

Management School School Profile Save

«Δουλεύω Ηλεκτρονικά, Δουλεύω Γρήγορα και με Ασφάλεια - by e-base.gr»

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

website guide B2B e-shop

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

Περιεχόμενα. Εισαγωγή. Οδηγός Χρήστη - Φοιτητή

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

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

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

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

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

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού

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

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

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

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

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

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

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

Management Classes Create Class Create Class Management Classes List of Classes

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

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

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών.

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS.

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

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

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

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

ΓΙΑΝΝΕΝΑ & ΣΥΓΧΡΟΝΗ ΔΗΜΙΟΥΡΓΙΑ ΔΙΑΧΕΙΡΙΣΗ ΓΙΑΝΝΕΝΑ & ΣΥΓΧΡΟΝΗ ΔΗΜΙΟΥΡΓΙΑ

Διαδίκτυο: Ιστορία, Δομή, Υπηρεσίες

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

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

Πλοήγηση www / Με τον Internet Explorer

Εργαλεία. Επικοινωνίας & Συνεργασίας Πανεπιστήμιο Κύπρου

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

ΠΡΟΣΩΠΙΚΟΙ ΙΣΤΟΧΩΡΟΙ Nα δημιουργήσω/ενεργοποιήσω την προσωπική μου ιστοσελίδα Να προβάλω τις λεπτομέρειες του προφίλ μου...

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

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

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

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. ( 2. Τοπικά 3. Σε δωρεάν Server

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

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

Σχεδίαση και Ανάπτυξη Ιστότοπων

Δημιουργία ιστοσελίδας με. Wordpress - Βασικές λειτουργίες

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014

Ref.: SLWS 1 5Copyright 2005 The European Computer Driving Licence Foundation Ltd Σελίδα 1 από 7

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

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

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

Εγχειρίδιο Χρήσης K&I LMS User Manual. Για γονείς

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

Τα είδη των ιστοσελίδων. Web Sites E-commerce Sites CMS & Blog Sites CMS Flash Facebook Layouts Tumblr Themes

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

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

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004

BHMATA ΓΙΑ ΑΝΑΒΑΘΜΙΣΗ ΣΤΟ 3S/I.T.P.

Πανεπιστήμιο Αιγαίου. Ναυτίλος. Σύστημα Ηλεκτρονικής Υποβολής Αιτήσεων Μεταπτυχιακών Προγραμμάτων Πανεπιστημίου Αιγαίου

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

Εργαλεία Ανάπτυξης Εφαρμογών Internet I

Transcript:

Ηλεκτρονικό Προσκλητήριο Ονομ/μο: Τμήμα: Φωτεινή Χλη Μηχανικών Πληροφορικής Τ.Ε.Ι. Καβάλας Α.Ε.Μ. : 2359 E-mail: ii2359@hotmail.com Τίτλος Πτυχιακής εργασίας: Ηλεκτρονικό Προσκλητήριο Επιβλέπων Καθηγητής : Δρ. Χριστόδουλος Λυτρίδης Συνεπιβλέπων Καθηγητής: Δρ. Γεώργιος Παπακώστας Καβάλα, 2013

ΠΕΡΙΛΗΨΗ Αντικείμενο της εργασίας είναι η δημιουργία δικτυακού τόπου, ο οποίος μέσω ενός οδηγού, παρέχει την δυνατότητα δημιουργίας εξατομικευμένων ιστοσελίδων. Ο δικτυακός τόπος, παρέχεται ως πρόσθετη υπηρεσία από ένα τυπογραφείο. Συγκεκριμένα, ο ιστότοπος προσφέρει στους χρήστες την δημιουργία της ιστοσελίδας του γάμου τους, η οποία μπορεί να λειτουργήσει και ως ηλεκτρονικό προσκλητήριο γάμου, εφόσον ο χρήστης έχει τη δυνατότητα να προσκαλέσει φίλους και γνωστούς μέσω αποστολής e-mail. Σκοπός του δικτυακού τόπου είναι να παρέχεται η δυνατότητα στους χρήστες, να δημιουργήσουν την δική τους ιστοσελίδα με θέμα τον γάμο τους, χωρίς να έχουν γνώσεις κατασκευής ιστοσελίδων, αλλά και να ενημερώσουν τους καλεσμένους τους μέσω e-mail (δηλαδή και από το σπίτι τους), άρα και δωρεάν. Ο οδηγός περιλαμβάνει τα πεδία τα οποία θα είναι και οι καρτέλες της ιστοσελίδας. Ο χρήστης διαλέγει ποια από τα πεδία αυτά θέλει να συμπεριλάβει στην ιστοσελίδα γάμου του. Ο χρήστης έχει τον πλήρη έλεγχο της ιστοσελίδας του και μπορεί να συμπεριλάβει όσα από τα διαθέσιμα πεδία επιθυμεί. Ο διαχειριστής είναι αυτός που επιλέγει ποιοι θα έχουν πρόσβαση για να κάνουν αίτηση εγγραφής στον ιστότοπο και επεξεργάζεται όλα τα πεδία του οδηγού.

ABSTRACT This project concerns the development of a website which provides the creation of customized webpages, through the use of a wizard. The website is offered as a free service from a printing shop. It provides users with the creation of the website of their wedding, which can also be used as their online wedding invitation, since the user has the possibility to invite guests sending massive e- mails. The purpose of the project is to give users the ability to create their own unique wedding website without having any special knowledge on website creation, and to inform their guests via e-mail, for free. The wizard includes the fields which will later appear as the website s tabs. The user selects which of these fields will be included in his or her website. The user has full control of his or her website and can include as many of the available fields as s/he wishes. The administrator decides who will have access to registration and edits all wizard s fields.

ΠΡΟΛΟΓΟΣ Το βιβλίο αυτό αναφέρεται στην εργασία με τίτλο «Ηλεκτρονικό Προσκλητήριο». Εδώ περιγράφεται το αντικείμενο της εργασίας, ο σκοπός δημιουργίας της, η ανάλυση του περιεχομένου της. Αναφέρονται και περιγράφονται τα εργαλεία τα οποία χρησιμοποιήθηκαν για την υλοποίησή της, όπως οι γλώσσες προγραμματισμού που χρησιμοποιήθηκαν, τα προγράμματα, αλλά και η σημασία του καθενός από αυτά. Ακόμη θα αναφερθούν τα προβλήματα που εμφανίστηκαν κατά την ανάπτυξη της εφαρμογής όπως και ο τρόπος αντιμετώπισής τους, αλλά και οι λόγοι που υλοποιήθηκε το κάθε κομμάτι με τον τρόπο που υλοποιήθηκε. Επίσης το βιβλίο περιέχει εγχειρίδιο χρήσης της εφαρμογής. Τέλος, θα παρουσιαστούν προτάσεις για το πως θα μπορούσε αυτή η εφαρμογή να επεκταθεί ή να βελτιωθεί.

ΠΕΡΙΕΧΟΜΕΝΑ Κεφάλαιο 1: Η ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ... σελ. 1 Κεφάλαιο 2: Η WEB ΕΦΑΡΜΟΓΗ..σελ. 4 2.1 Έντυπο προσκλητήριο....σελ. 4 2.2 Σε τι εξυπηρετεί το «ηλεκτρονικό προσκλητήριο γάμου»..σελ. 5 2.3 Τι υπάρχει σήμερα... σελ. 5 2.4 Τι ελλείψεις υπάρχουν και σε τι υπερτερεί η εφαρμογή....σελ. 6 2.5 Δυνατότητες εφαρμογής... σελ. 7 2.5.1 Δυνατότητες διαχειριστή.... σελ. 7 2.5.2 Πεδία ιστοσελίδας χρήστη.. σελ. 7 2.5.3 Παροχές χρήστη....... σελ. 8 2.5.4 Δυνατότητες επεξεργασίας για τον χρήστη...σελ. 8 2.5.5 Δυνατότητες καλεσμένων.. σελ. 9 2.6 Γενικές προδιαγραφές... σελ. 9 Κεφάλαιο 3: ΕΡΓΑΛΕΙΑ ΥΛΟΠΟΙΗΣΗΣ ΕΦΑΡΜΟΓΗΣ.....σελ. 10 3.1 PHP....... σελ. 11 3.1.1 Ιστορική αναδρομή. σελ. 11 3.1.2 Δυνατότητες PHP... σελ. 11 3.1.3 Πλεονεκτήματα......σελ. 12 3.2 MySQL..... σελ. 14 3.2.1 Πλεονεκτήματα...... σελ. 15 3.3 HTML5... σελ. 16 3.3.1 Ιστορική αναδρομή. σελ. 16 3.3.2 Πλεονεκτήματα......σελ. 17 3.4 CSS... σελ. 18 3.4.1 Πλεονεκτήματα... σελ. 19

3.5 jquery & JavaScript.... σελ. 19 3.5.1 Ιστορική αναδρομή. σελ. 20 3.5.2 Πλεονεκτήματα jquery... σελ. 21 3.6 Dreamweaver...... σελ. 22 3.6.1 Πλεονεκτήματα... σελ. 23 3.7 XAMPP. σελ. 23 3.7.1 Apache...σελ. 24 3.7.2 PhpMyAdmin... σελ. 25 3.7.3 Δυνατότητες PhpMyAdmin. σελ. 25 Κεφάλαιο 4: Πως υλοποιήθηκε η εφαρμογή. σελ. 27 4.1 Πεδία και μέθοδοι κλάσεων... σελ. 29 4.2 Προσθήκη νέου πελάτη... σελ. 36 4.3 Είσοδος χρήστη (login) στον ιστότοπο..... σελ. 38 4.4 Εγγραφή χρήστη.... σελ. 38 4.5 Αποστολή e-mail.... σελ. 39 4.6 Υπενθύμιση κωδικού.... σελ. 40 4.7 Συμπλήρωση στοιχείων στον οδηγό..... σελ. 41 4.7.1 Υποβολή στοιχείων.... σελ. 41 4.7.2 Επιπρόσθετα παράθυρα για ημερομηνία & ώρα...σελ. 41 4.7.3 Ανέβασμα, προβολή και διαγραφή φωτογραφιών.σελ. 42 4.7.4 Π.Α. και βιβλίο καλεσμένων...σελ. 44 4.7.5 «Προσθήκη» και «Αφαίρεση»....σελ. 45 4.7.6 Επιλογή θέματος....σελ. 46 4.7.7 Αποστολή προσκλήσεων & διαγραφή καλεσμένων... σελ.47 4.7.8 Πρόσβαση σε ιστοσελίδα χρήστη...σελ. 48 4.7.9 Προβολή ιστοσελίδας χρήστη..σελ. 48 5 ο Κεφάλαιο: ΕΠΙΣΚΟΠΗΣΗ ΚΑΙ ΜΕΛΛΟΝΤΙΚΕΣ ΕΠΕΚΤΑΣΕΙΣ..σελ. 50 5.1 Τι επιτεύχθηκε...σελ. 50 5.2 Προβλήματα και αντιμετώπιση.σελ. 52

5.3 Προτάσεις για μελλοντική εξέλιξη ή βελτίωση..σελ. 55 Παράρτημα Α: Εγχειρίδιο χρήσης...σελ. 57 Παράρτημα Β: Λεξικό δεδομένων...σελ. 92 Παράρτημα Γ: Απαιτήσεις προγράμματος...σελ. 96 Παράρτημα Δ: Προδιαγραφές...σελ. 101 Παράρτημα Ε: Βάση Δεδομένων...σελ. 105 Βιβλιογραφία.....σελ. 111

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

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

καλύπτεται, οι προϋποθέσεις, το αποτέλεσμα και τυχόν πλευρικά φαινόμενα. Στο τέλος βρίσκεται η τεκμηρίωση (επεξήγηση του κάθε πίνακα και διάγραμμα ΜΟΣ της βάσης δεδομένων που χρησιμοποιήθηκε) και η βιβλιογραφία (βιβλία, ιστοσελίδες, βίντεο εκμάθησης που χρησιμοποιήθηκαν για την εκμάθηση των εργαλείων που είναι απαραίτητα για την ανάπτυξη της εφαρμογής). 2 ο Κεφάλαιο: Η WEB ΕΦΑΡΜΟΓΗ

2.1 Έντυπο προσκλητήριο Τα προσκλητήρια γάμου εξυπηρετούν την ανάγκη του ζευγαριού να ενημερώσει όλους τους καλεσμένους του για τα πλήρη στοιχεία του γάμου ή και της δεξίωσης που θα ακολουθήσει, με μία μόνο φόρμα την οποία θα φτιάξει και θα δημιουργήσει σε πολλά αντίγραφα. Ένα προσκλητήριο γάμου περιέχει πληροφορίες όπως τα ονόματα του ζευγαριού, των γονέων και των κουμπάρων, την ημερομηνία και την ώρα που θα γίνει η τελετή, την τοποθεσία στην οποία θα γίνει, καθώς επίσης και πληροφορίες για την δεξίωση που θα ακολουθήσει. Μπορεί επίσης να εμπεριέχει κάποιο μήνυμα πρόσκλησης ή κάποια φωτογραφία. Όλα αυτά όμως, πρέπει να συμπεριληφθούν σε μία μόνο επιφάνεια και τα πολλά αντίγραφα κοστίζουν. 2.2 Σε τί εξυπηρετεί το «ηλεκτρονικό προσκλητήριο γάμου»

Εφόσον λοιπόν με το τυποποιημένο προσκλητήριο αφενός ο χώρος είναι περιορισμένος, αφετέρου υπάρχει κόστος, το ηλεκτρονικό προσκλητήριο, η ιστοσελίδα δηλαδή που χρησιμοποιείται για να ενημερώσει τους καλεσμένους σχετικά με τον γάμο, μπορεί να έχει πολύ περισσότερο χώρο, πολλών ειδών περισσότερες πληροφορίες και επίσης δεν κοστίζει. Ακόμη, με το ηλεκτρονικό προσκλητήριο μπορεί να υπάρξει και ανταπόκριση, δηλαδή όπως αναφέρεται και παρακάτω μπορούν να γράφουν οι καλεσμένοι τις ευχές τους, να δηλώσουν αν θα παρευρεθούν ή όχι στον γάμο ή την δεξίωση αλλά και να απαντήσουν σε ψηφοφορία που ίσως δημιουργήσει ο χρήστης. Ένας ακόμη λόγος ύπαρξης αυτής της εφαρμογής, είναι για τις ανάγκες ενός τυπογραφείου. Μπορεί δηλαδή ένα τυπογραφείο, εφόσον έχει αποκτήσει κάποιους πελάτες για την παραγγελία των προσκλητηρίων τους, να τους παρέχει δωρεάν και αυτή την υπηρεσία, το ηλεκτρονικό προσκλητήριο δηλαδή, για διαφημιστικούς λόγους (να μείνουν περισσότερο ευχαριστημένοι οι πελάτες, να ενημερώσουν και τους γνωστούς τους για την επιπλέον παροχή του συγκεκριμένου τυπογραφείου κ.λπ.). Τέλος το «ηλεκτρονικό προσκλητήριο» είναι ένας τρόπος για το τυπογραφείο να εκσυγχρονιστεί και να παρέχει και άλλες υπηρεσίες εκτός από τις παραδοσιακές της εκτύπωσης. 2.3 Τι υπάρχει σήμερα Στην Ελλάδα και το εξωτερικό η τάση «Φτιάξε την ιστοσελίδα του γάμου σου» εμφανίστηκε τα τελευταία χρόνια, πράγμα που σημαίνει πως δεν έχουν φτάσει σε αρκετά βελτιωμένο στάδιο οι εφαρμογές αυτές. Αξίζει να σημειωθεί πως ειδικά στο εσωτερικό, ο αριθμός αυτών των web εφαρμογών είναι αρκετά μικρός. Υπάρχουν λοιπόν κάποιες web εφαρμογές που υποστηρίζουν την δημιουργία ιστοσελίδας γάμου χωρίς ο χρήστης να έχει ιδιαίτερες γνώσεις

πάνω στη σχεδίαση ιστοσελίδας. Περιέχουν φόρμες συμπλήρωσης για τα πλήρη στοιχεία του ζευγαριού, της οικογένειας, του γάμου, της δεξίωσης κ.λπ., υπάρχει η δυνατότητα να ανεβάσει ο χρήστης φωτογραφίες αλλά και να διαλέξει κάποια θέματα εμφάνισης για την ιστοσελίδα του. Οι περισσότερες από αυτές τις ιστοσελίδες χρηστών είναι δημόσιες, μπορεί δηλαδή οποιοσδήποτε να έχει πρόσβαση σε αυτές. 2.4 Τι ελλείψεις υπάρχουν και σε τι υπερτερεί η εφαρμογή Η εργασία που εξετάζεται στο παρόν βιβλίο έρχεται να καλύψει κάποια βασικά κενά στα πεδία του οδηγού κατασκευής της ιστοσελίδας, όπως είναι η καλύτερη καθοδήγηση του χρήστη, κάποια έτοιμα μηνύματα που προσφέρονται, αλλά και επιπλέον πεδία. Σε έρευνα που έγινε πριν την έναρξη της πτυχιακής εργασίας, δεν βρέθηκε σε κάποια από τις ήδη υπάρχουσες παρόμοιες εφαρμογές η μαζική πρόσκληση καλεσμένων μέσω αποστολής e-mail και οι καλεσμένοι δεν είχαν το δικαίωμα να κάνουν είσοδο στον ιστότοπο και να γράψουν τις ευχές τους κ.λπ. Ακόμη η έρευνα έδειξε πως δεν υπάρχει εφαρμογή στην οποία ο χρήστης μπορεί να διαλέξει ποια πεδία θα συμπεριλάβει στην σελίδα του και ποια όχι. Σε προφίλ-test που δημιουργήθηκε, τα πεδία στην τελική ιστοσελίδα του χρήστη εμφανίζονταν όλα, είτε ήταν συμπληρωμένα είτε όχι. Αυτό δεν συμβαίνει στην εφαρμογή της εργασίας αυτής, μόνο όσα πεδία έχουν συμπληρωθεί από τον χρήστη εμφανίζονται στο τελικό αποτέλεσμα. Τέλος, οι web εφαρμογές που εξετάστηκαν στην έρευνα ήταν όλες ανοιχτές προς εγγραφή για όλους, πράγμα που μπορεί να προκαλέσει πολλά προφίλ που ίσως είναι ψεύτικα (όπως π.χ. τα προφίλ που δημιουργήθηκαν κατά την έρευνα). Στη συγκεκριμένη εργασία το δικαίωμα εγγραφής το έχουν μόνο πελάτες του τυπογραφείου, πράγμα που λειτουργεί και ως διαφήμιση επιπλέον παροχή

του τυπογραφείου. Έτσι ο πελάτης έχει ένα ακόμη κίνητρο να προτιμήσει το συγκεκριμένο τυπογραφείο, μιας και γνωρίζει πως έτσι θα έχει την δυνατότητα να φτιάξει την δική του ιστοσελίδα γάμου δωρεάν και να στείλει ηλεκτρονικές προσκλήσεις στους γνωστούς του. 2.5 Δυνατότητες εφαρμογής 2.5.1 Διαχείριση (δυνατότητες διαχειριστή) Ο διαχειριστής έχει την δυνατότητα να επεξεργάζεται τους πελάτες (εισαγωγή, διαγραφή, επεξεργασία), να επεξεργάζεται τις ιστοσελίδες των χρηστών (εμφάνιση, διαγραφή). Ακόμη μπορεί να επεξεργάζεται τον οδηγό (εμφάνιση ή απόκρυψη για όλα τα πεδία του οδηγού), όπως και τα θέματα (προσθήκη ή διαγραφή θέματος εμφάνισης). Τέλος ο διαχειριστής έχει την δυνατότητα να επεξεργάζεται το ίδιο του το προφίλ (όνομα, e-mail, κωδικός πρόσβασης). 2.5.2 Πεδία της ιστοσελίδας χρήστη Ο χρήστης έχει την δυνατότητα να συμπληρώσει αλλά και να επεξεργαστεί τα στοιχεία στον οδηγό, (τα στοιχεία της ιστοσελίδας του δηλαδή) όπως είναι: α) τα στοιχεία του ζευγαριού (ονόματα, πώς γνωρίστηκαν, πως έγινε η πρόταση γάμου), β) τα στοιχεία της οικογένειας (γονείς του γαμπρού, της νύφης, σχόλια, φωτογραφίες τους), γ) τα στοιχεία των κουμπάρων (ονόματα και φωτογραφία), δ) τα στοιχεία του γάμου (μήνυμα πρόσκλησης, ημερομηνία και ώρα γάμου, τοποθεσία, περιοχή), ε) τα στοιχεία της δεξίωσης (μήνυμα πρόσκλησης, σχόλια, τοποθεσία, περιοχή), ε) πληροφορίες για τα Bachelor parties (γαμπρού και νύφης) στ) οδηγίες πρόσβασης (στην τελετή, στην δεξίωση, στα bachelor parties), ζ) λίστα γάμου

(για τράπεζες και για καταστήματα ξεχωριστά), η) φωτογραφίες για το φωτογραφικό άλμπουμ, θ) τη ψηφοφορία (ο χρήστης δημιουργεί τη δική του ψηφοφορία με δυνατότητα να προσθέσει από 2 έως 4 απαντήσεις όπως και να βλέπει το αποτέλεσμα της ψηφοφορίας ανά πάσα στιγμή), ι) το βιβλίο καλεσμένων (οι καλεσμένοι γράφουν τις ευχές τους προς το ζευγάρι), κ) το Π.Α. (Παρακαλώ Απαντήστε), αναφέρεται στους καλεσμένους για το αν θα παρευρεθούν ή όχι στη τελετή και τη δεξίωση - τα αποτελέσματα τα βλέπει ο χρήστης, λ) τα στοιχεία επικοινωνίας με το ζευγάρι (τηλέφωνο νύφης, γαμπρού, e-mail, σχόλιο). 2.5.3 Παροχές χρήστη Ο χρήστης ακόμη μπορεί να κάνει μαζική αποστολή e-mail προς τους καλεσμένους του, στο e-mail πρόσκλησης περιλαμβάνεται ο κωδικός της ιστοσελίδας. Ακόμη ο χρήστης μπορεί να δει τα αποτελέσματα της ψηφοφορίας που έχει δημιουργήσει (πόσοι ψήφοι υπάρχουν για κάθε απάντηση και ποια απάντηση έχει τις περισσότερες ψήφους), αλλά και τα αποτελέσματα για το Π.Α. (Παρακαλώ Απαντήστε), δηλαδή το πλήθος των καλεσμένων που θα παρευρεθούν στον γάμο και ξεχωριστά για την δεξίωση. 2.5.4 Δυνατότητες επεξεργασίας για τον χρήστη Ο χρήστης μπορεί να επεξεργαστεί το προφίλ του (όνομα ζευγαριού, κωδικός, e-mail), να επιλέξει ή και να αλλάξει το θέμα ιστοσελίδας (εμφάνιση) ανά πάσα στιγμή, αλλά και να επεξεργαστεί ή να κάνει αλλαγές σε όλα τα πεδία του οδηγού κατασκευής της ιστοσελίδας του που προαναφέρθηκαν. 2.5.5 Δυνατότητες καλεσμένων

Ο καλεσμένος μπορεί να συνδεθεί στον ιστότοπο ως καλεσμένος της συγκεκριμένης ιστοσελίδας, να προβάλει την ιστοσελίδα του γάμου που είναι καλεσμένος, να ανεβάσει τις ευχές του στο ευχετήριο βιβλίο αλλά και να διαγράψει τις ευχές που έχει ανεβάσει ήδη. Τέλος μπορεί να υποβάλλει την ψήφο του στην ψηφοφορία που έχει δημιουργήσει το ζευγάρι και την απάντησή του στο αν θα παρευρεθεί στον γάμο και τη δεξίωση όπως και να αλλάξει την απάντησή του ανά πάσα στιγμή. 2.6 Γενικές προδιαγραφές Η δυνατότητα δημιουργίας ιστοσελίδας γάμου παρέχεται μόνο στους πελάτες κάποιου συγκεκριμένου τυπογραφείου. Ο διαχειριστής είναι αυτός που εισάγει τους πελάτες που θα έχουν δικαίωμα να κάνουν αίτηση εγγραφής, μέσω μιας φόρμας συμπλήρωσης των e-mail των πελατών. Έπειτα ο πελάτης κάνει αίτηση εγγραφής και μόνο εφόσον βρεθεί από το σύστημα ως πελάτης, η αίτησή του εγκρίνεται. Ακόμη οι ιστοσελίδες των χρηστών είναι ιδιωτικές, δε μπορεί δηλαδή ο οποιοσδήποτε να τις δει ή να γράψει σε αυτές (π.χ. ευχές). Ο χρήστης είναι εκείνος που εισάγει τους καλεσμένους του με βάση το e-mail τους και τους δημιουργεί λογαριασμό ώστε να έχουν πρόσβαση στη σελίδα του.

3 ο Κεφάλαιο: ΕΡΓΑΛΕΙΑ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ ΥΛΟΙΠΟΗΣΗΣ ΕΦΑΡΜΟΓΗΣ Η εφαρμογή υλοποιήθηκε με την χρήση των παρακάτω εργαλείων και τεχνολογιών: PHP MySQL HTML5 CSS JQuery Dreamweaver XAMPP 3.1 PHP

Η PHP είναι μια γλώσσα προγραμματισμού για τη δυναμική δημιουργία ιστοσελίδων. Μια σελίδα PHP επεξεργάζεται από ένα συμβατό web server του Internet όπως τον Apache (XAMPP) για να παραχθεί σε πραγματικό χρόνο το περιεχόμενο που θα σταλεί στο πρόγραμμα περιήγησης των επισκεπτών σε κώδικα HTML. Η PHP είναι ένα προϊόν ανοιχτού κώδικα. Υπάρχει δυνατότητα πρόσβασης στον κώδικα προέλευσης, ο οποίος μπορεί να επεξεργασθεί και να χρησιμοποιηθεί χωρίς χρέωση. Η PHP χρησιμοποιείται για να εκτυπώσει κώδικα HTML εξετάζοντας συνθήκες και κάνοντας υπολογισμούς ή εξετάζοντας και επεξεργάζοντας δεδομένα. 3.1.1 Ιστορική αναδρομή Το 1995, ο Rasmus Lerdorf δημιούργησε ένα απλό script με όνομα php.cgi, στη γλώσσα Perl με σκοπό να κρατά στατιστικά για τα άτομα που έβλεπαν το online βιογραφικό του. Αργότερα του ζητήθηκε να προσθέσει περισσότερες δυνατότητες. Η γλώσσα ονομάστηκε PHP/FI (=Personal Home Page/Form Interpreter). Το 1997 δημιουργήθηκε η 2 η έκδοση της PHP/FI στη γλώσσα C με 50.000 ιστότοπους. Το ίδιο έτος οι Andi Gutmans και Zeev Suraski δημιούργησαν την 3 η έκδοση βασιζόμενοι στην ίδια έκδοση. Το 1998 δημιουργήθηκε η έκδοση 4 της PHP. Τον Ιούλιο του 2004 διατέθηκε η έκδοση 5, τις οποίες χρησιμοποιούν και οι περισσότεροι ιστότοποι επί του παρόντος. 3.1.2 Δυνατότητες της PHP Η PHP μπορεί να επεξεργαστεί δεδομένα από μία φόρμα, να δημιουργήσει δυναμικό περιεχόμενο σε ιστοσελίδες, αλλά και να αποστέλλει και να λαμβάνει cookies. Επίσης υποστηρίζει τα πρωτόκολλα HTTP, IMAP, SNMP, NNTP και POP3, προσφέροντάς τη δυνατότητα συνομιλίας.

Ακριβώς αυτή είναι και η χρήση της στην εφαρμογή της εργασίας. Επεξεργάζεται τα δεδομένα από τις φόρμες, ενημερώνει τους πίνακες της βάσης δεδομένων και δημιουργεί νέα δυναμικά περιεχόμενα τα οποία είναι τα αποτελέσματα από τις επεξεργασίες των φορμών, αλλά και εξάγει πληροφορίες προς χρήση από την βάση δεδομένων. 3.1.3 Πλεονεκτήματα της ΡΗΡ Κάποιοι από τους βασικούς ανταγωνιστές της ΡΗΡ είναι ο Perl, Microsoft Active Server Pages (ASP), Java Server Pages (JSP) και Allaire Cold Fusion Σε σύγκριση με αυτά τα προϊόντα, η ΡΗΡ έχει πολλά πλεονεκτήματα όπως : Λειτουργεί δυναμικά Υψηλή απόδοση Διασυνδέσεις με πολλά διαφορετικά συστήματα βάσεων δεδομένων Ενσωματωμένες βιβλιοθήκες για πολλές συνηθισμένες Web διαδικασίες Χαμηλό κόστος Ευκολία μάθησης και χρήσης Μεταφερσιμότητα Διαθεσιμότητα του κώδικα προέλευσης

Η ΡΗΡ είναι πολύ αποτελεσματική. Με ένα φθηνό διακομιστή μπορούν να εξυπηρετηθούν εκατομμύρια επισκέψεων καθημερινά. Οι δοκιμές που δημοσιεύθηκαν από την Zend Technologies (http://www.zend.com), δείχνουν ότι η ΡΗΡ ξεπερνά τους ανταγωνιστές της. Η γλώσσα είναι δωρεάν. Η τελευταία έκδοση είναι διαθέσιμη στο http://www.php.net, χωρίς χρέωση. Επειδή η γλώσσα αυτή σχεδιάστηκε για να χρησιμοποιείται στο Web, έχει πολλές ενσωματωμένες βιβλιοθήκες, που εκτελούν πολλές χρήσιμες λειτουργίες σχετικές με το Web. Μπορεί να δημιουργήσει εικόνες GIF δυναμικά, να συνδεθεί με άλλες υπηρεσίες δικτύων, να στείλει ηλεκτρονικό ταχυδρομείο, να δουλέψει με cookies και να δημιουργήσει PDF έγγραφα, όλα αυτά με λίγες γραμμές κώδικα. Η σύνταξη της PHP βασίζεται σε άλλες γλώσσες προγραμματισμού, συγκεκριμένα στην C και στην Perl. Έτσι γνωρίζοντας κάποια από αυτές είναι πολύ πιο εύκολο για κάποιον να κατανοήσει την γλώσσα γρήγορα. Η γλώσσα προγραμματισμού είναι διαθέσιμη για πολλά λειτουργικά συστήματα. Μπορεί να γραφεί κώδικας ΡΗΡ για δωρεάν συστήματα τύπου Unix, όπως LINUX και FreeBSD, για εμπορικές εκδώσεις του UNIX, όπως το Solaris και το IRIX ή για διαφορετικές εκδώσεις των Microsoft Windows. Ο κώδικας συνήθως δουλεύει χωρίς αλλαγές στα συστήματα που τρέχουν την ΡΗΡ. Υπάρχει η δυνατότητα πρόσβασης στον κώδικα προέλευσης της ΡΗΡ. Αντίθετα με εμπορικά, κλειστά προγράμματα, αν χρειαστεί κάποια αλλαγή ή προσθήκη στη γλώσσα, είναι εφικτό να γίνει. Σε τέτοια περίπτωση λοιπόν, η επεξεργασία δεν εξαρτάται απαραίτητα από τον κατασκευαστή της και έτσι ακόμη και σε περίπτωση που ο δημιουργός σταματήσει να υποστηρίζει το προϊόν, η δυνατότητα επεξεργασίας του είναι ακόμη εφικτή.

3.2 MySQL Η MySQL είναι ένα πολύ γρήγορο και δυνατό σύστημα διαχείρισης βάσεων δεδομένων. Μια βάση δεδομένων επιτρέπει την αποθήκευση, την αναζήτηση, την ταξινόμηση αλλά και την ανάκληση των δεδομένων αποτελεσματικά. Ο MySQL διακομιστής ελέγχει την πρόσβαση στα δεδομένα, για να μπορούν να δουλεύουν πολλοί χρήστες ταυτόχρονα, για να παρέχει γρήγορη πρόσβαση και να διασφαλίζει ότι μόνο πιστοποιημένοι χρήστες μπορούν να έχουν πρόσβαση. Συνεπώς η MySQL είναι ένας πολυνηματικός διακομιστής πολλαπλών χρηστών. Χρησιμοποιεί την SQL (Structured Query Language) την τυπική γλώσσα ερωτημάτων για βάσεις δεδομένων. H MySQL είναι διαθέσιμη από το 1996 αλλά η ιστορίας της ξεκινά από το 1979. Όπως γίνεται αντιληπτό από τα παραπάνω, η χρήση της MySQL στην εφαρμογή που εξετάζεται στο βιβλίο έχει να κάνει με την δημιουργία της βάσης δεδομένων και των πινάκων που την αποτελούν. Η MySQL συνεργάζεται με την PHP για να χρησιμοποιήσει ή να επεξεργαστεί δεδομένα από ή προς την βάση.

3.2.1 Πλεονεκτήματα της MySQL H MySQL έχει πολλά πλεονεκτήματα, όπως: Είναι ένα πολύ γρήγορο και δυνατό σύστημα διαχείρισης βάσης δεδομένων. Ο MySQL διακομιστής ελέγχει την πρόσβαση στα δεδομένα για να μπορούν να επικοινωνούν πολλοί χρήστες ταυτόχρονα. Μπορούν να υπάρχουν ταυτόχρονα περισσότερες από μία συνδέσεις με τη βάση χωρίς να υπάρχουν πολλαπλά αντίγραφά της όπως συμβαίνει με άλλα συστήματα βάσεων δεδομένων. Η απόδοσή της είναι καλύτερη σε μεγάλο όγκο βάσης δεδομένων Παρέχει ευκολίες στο backup Είναι εύκολη στη διαμόρφωση και μάθηση Είναι ανοιχτού κώδικα προέλευσης Μπορεί να τρέξει σε διάφορα συστήματα και πλατφόρμες Είναι δωρεάν Συνεργάζεται άψογα με την PHP Αναπτύσσεται συνεχώς

3.3 HTML5 Η HTML είναι το ακρωνύμιο των λέξεων HyperText Markup Language (γλώσσα μορφοποίησης υπερκειμένου) και είναι η βασική γλώσσα δόμησης σελίδων του World Wide Web (ή απλά ιστού: Web). Είναι μία γλώσσα προγραμματισμού η οποία χρησιμοποιείται για να παίρνει ένα τμήμα κειμένου και να μορφοποιεί τον τρόπο που θα εμφανίζεται. Επιτρέπει την ενσωμάτωση ήχου και εικόνων στις web σελίδες. Αρχικά είχε κατασκευασθεί με σκοπό μόνο την μορφοποίηση κειμένου, αλλά στη συνέχεια ενσωματώθηκαν σε αυτήν σχεδιαστικές τεχνικές κ.α. Η γλώσσα χρησιμοποιεί ένα αριθμό από tags για την μορφοποίηση κειμένου, για την δημιουργία συνδέσμων (links) μετάβασης ανάμεσα των σελίδα, για την εισαγωγή εικόνων, ήχου κ.α. Όταν ένας Web Browser ανοίγει ένα αρχείο HTML τα στοιχεία (tags) μεταφράζονται σε κατάλληλα χαρακτηριστικά με αποτελέσματα στην εμφάνιση και στην λειτουργικότητα της συγκεκριμένης σελίδας. 3.3.1 Ιστορική αναδρομή Το 1990 ο Tim Berners-Lee από το Cern, το εργαστήριο φυσικής της Γενεύης, δημιούργησε ένα νέο πρωτόκολλο με το οποίο θα μπορούσαν να μεταφέρονται κάθε είδος αρχείων και αντικειμένων μέσα από το Internet. Το πρωτόκολλο αυτό ονομάστηκε HTTP (HyperText Transfer Protocol) και σηματοδότησε την αρχή του WWW όπως είναι γνωστό σήμερα. Οι σελίδες που ήταν η βάση του WWW ήταν γραμμένες στην πρώτη έκδοση της γλώσσα HTML. Το 1994 αναπτύσσεται το πρότυπο HTML 2.0 από ένα διεθνή οργανισμό (Internet Engineering Task Forse). H επόμενη έκδοση η 3.0 δεν έγινε αποδεκτή από τις Microsoft και Netscape οπότε γρήγορα αντικαταστάθηκε από την έκδοση 3.2 (1996). Η τελευταία περιλάμβανε πολλές από τις σημάνσεις (tags)

που είχαν εισάγει οι δύο εταιρίες. Η έκδοση 4.0 παρουσιάστηκε τον Ιούνιο του 1997. Η HTML5 είναι η σημερινή μεγάλη έκδοση της HTML (Γλώσσα Υπερκειμένου, HyperText Markup Language). Η ομάδα Web Hypertext Application Technology Working Group (WHATWG) άρχισε δουλειά σε αυτή την έκδοση τον Ιούνιο του 2004 με το όνομα Web Applications 1.0. [1] Το Φεβρουάριο του 2010 το πρότυπο ήταν ακόμη σε κατάσταση "Last Call" στο WHATWG. 3.3.2 Πλεονεκτήματα HTML5 Μία από τις κύριες αλλαγές σε σχέση HTML4 με HTML5 είναι ότι η νέα προδιαγραφή σπάει λίγα από τα όρια που είχαν οι φυλλομετρητές. Τα πλεονεκτήματά της είναι τα εξής: Offline storage: H html5 δίνει την δυνατότητα διαχείρισης δεδομένων ακόμη και αν το πρόγραμμα δεν είναι πλέον συνδεδεμένο με το διαδίκτυο. Geolocation: Η ικανότητα του προγράμματος να ελέγχει την τοποθεσία του προγραμματιστή και να εργάζεται με βάση αυτήν. Javascript: Πλήρως προγραμματιζόμενη από JavaScript πράγμα που δίνει τεράστια ελευθερία στην χρήση audio και video. Vector γραφικά: Πλέον δίνεται η δυνατότητα σχεδιασμού απευθείας στον browser κατά την συγγραφή του κώδικα, ενώ μέχρι τώρα υπήρχε απλά η δυνατότητα για embed αρχεία jpg, png, gif. Αυτή η σχεδίαση μπορεί να γίνει με δύο καινούργια tag. Το πρώτο ονομάζεται SVG (Scalable Vector Graphics) το οποίο χρησιμοποιείται περισσότερο για την σχεδίαση λογοτύπων, γραφικών του interface και γενικά στατικών γραφικών. Το δεύτερο πρόκειται για το canvas που αντίθετα με το πρώτο χρησιμοποιείται για

γραφήματα από live δεδομένα, πολύπλοκα animation και παιχνίδια σε μια συγκεκριμένη περιοχή. 3.4 CSS Το CSS είναι το ακρωνύμιο των λέξεων Cascading Style Sheets. Τα CSS επιτρέπουν τον διαχωρισμό ανάμεσα στο περιεχόμενο της ιστοσελίδας και στο σχεδιαστικό κομμάτι. Αυτό είναι πολύ σημαντικό αφού τα στοιχεία σχεδίασης της ιστοσελίδας της εφαρμογής που εξετάζεται στο βιβλίο βρίσκονται σε ένα ξεχωριστό αρχείο το οποίο θα τροφοδοτεί τις υπόλοιπες σελίδες. Έτσι, εάν χρειαστεί κάποια αλλαγή, όπως να αλλάξει το φόντο των σελίδων, το μόνο που χρειάζεται είναι να γίνει η αλλαγή στο αρχείο CSS και αυτομάτως οι αλλαγές θα επηρεάσουν και όλα τα αρχεία τα οποία συνδέονται με αυτό. (Η HTML χρησιμοποιείται για να δομήσει το περιεχόμενο ενώ τα CSS για να το μορφοποιήσουν). To CSS χρησιμοποιείται σε όλη την εφαρμογή και είναι απαραίτητο για την διαμόρφωση της κάθε σελίδας. 3.4.1 Πλεονεκτήματα CSS Μερικά από τα πλεονεκτήματα των CSS είναι: ιαχωρισμός του περιεχομένου από την σχεδίαση.

Ελαχιστοποίηση του χρόνου για τις αλλαγές στην σχεδίαση αφού όλα τα στοιχεία Περιέχεται σε ένα αρχείο. Πιο καθαρός κώδικας HTML Προσβασιμότητα από όλους τους Web Browsers Πιστοποίηση από την W3C το μεγαλύτερο οργανισμό Web Standards Αύξηση ταχύτητας της εμφάνισης της ιστοσελίδας Μικρότερο μέγεθος αρχείων Καλύτερη θέση στις μηχανές αναζήτησης λόγω καθαρότερου κώδικα. Ομοιόμορφη εμφάνιση όλων των ιστοσελίδων που συνδέονται με το CSS αρχείο αφού τα στοιχεία δεν αλλάζουν. 3.5 JQuery & JavaScript H JavaScript είναι γλώσσα προγραμματισμού η οποία έχει ως σκοπό την δημιουργία δυναμικού περιεχομένου και την εκτέλεση κώδικα στην πλευρά του πελάτη (client side) σε ιστοσελίδες. Η πλευρά του πελάτη είναι δηλαδή ο browser. Αυτό σημαίνει ότι η επεξεργασία του κώδικα JavaScript και η παραγωγή του τελικού περιεχομένου HTML δεν πραγματοποιείται στην διακομιστή αλλά στο πρόγραμμα περιήγησης των επισκεπτών ενώ μπορεί να ενσωματωθεί σε στατικές σελίδες HTML. Αντίθετα άλλες γλώσσες όπως η PHP εκτελούνται στον διακομιστή.

Το jquery είναι μια ελαφριά βιβλιοθήκη JavaScript, συμβατή με όλους τους φυλλομετρητές (browsers) που υπάρχουν, η οποία απλοποιεί την εκμάθηση και την χρήση της γλώσσας JavaScript που χρησιμοποιείται για την δημιουργία ιστοσελίδων και web εφαρμογών. Με την χρήση της μπορεί να προστεθεί κίνηση (animation), να αυξηθεί η διαδραστικότητα του χρήστη, να αλλαχθεί το περιεχόμενο της σελίδας χωρίς ο χρήστης να μεταφερθεί σε νέα σελίδα, να δημιουργηθούν διάφορα εφέ και πολλά περισσότερα. Το jquery δεν κάνει μόνο την χρήση της JavaScript πιο εύκολη και λιγότερο χρονοβόρα, αλλά εξαλείφει και τα προβλήματα που συνεπάγονται την χρήση της JavaScript, όπως το πρόβλημα συμβατότητάς της με τους διάφορους φυλλομετρητές (browsers). 3.51 Ιστορική αναδρομή Η JQuery κυκλοφόρησε τον Ιανουάριο του 2006 από τον John Resig και είναι ένα ελεύθερο λογισμικό ανοιχτού κώδικα (free, open source software) που διατίθεται κάτω από όρους της GNU General Public License (GPL) και της MIT ιστοσελίδων που χρησιμοποιούν κάποια βιβλιοθήκη JavaScript και στο 34.8% όλων των ιστοσελίδων παγκοσμίως. Χρησιμοποιείται από πολλές δημοφιλείς ιστοσελίδες όπως τα Twitter.com, Msn.com, Amazon.com, Bbc.co.uk και πολλά άλλα. 3.5.2 Πλεονεκτήματα JQuery Ακολουθεί την αρχή KISS (Keep It Simple Stupid): Η βιβλιοθήκη JQuery προσπαθεί να υπεραπλουστεύσει τον προγραμματισμό σε Javascript

προσφέροντας πραγματικά απλούς μηχανισμούς και εντολές μέσω του framework της. Παρέχει πλήρη και αναλυτικότατη τεκμηρίωση που συμπληρώνεται από την εκτεταμένη παρουσία ηλεκτρονικών βοηθημάτων (η παρούσα σειρά άρθρων αποτελεί ένα από αυτά): Εκτός από την πολύ καλοδουλεμένη τεκμηρίωση του JQuery, οι ενδιαφερόμενοι μπορούν να ανατρέξουν και στην σελίδα του Visual JQuery όπου μπορούν να βρουν μία εναλλακτική αλλά πολύ βολική, από άποψη δομής, τεκμηρίωση. Υποστηρίζεται από μία πάρα πολύ ενεργή κοινότητα: Όπως για τα περισσότερα open source έργα λογισμικού, έτσι και για το JQuery η ύπαρξη μιας κατά το μέγιστο δυνατό ενεργής κοινότητας αποτελεί τον ακρογωνιαίο λίθο για την ανάπτυξη και ευημερία του. Στο κεντρικό site του JQuery υπάρχει πλήθος τρόπων με τους οποίους μπορεί κάποιος να αλληλεπιδράσει με την κοινότητα. Μικρό μέγεθος: Το γεγονός ότι το βασικό πακέτο της JQuery είναι μόλις 20Kb αφενός επιβεβαιώνει την πρώτη παρατήρηση, ότι δηλαδή η φιλοσοφία της έγκειται στην απλότητα και αφετέρου κάνει πολύ εύκολη την κατανόηση της αρχιτεκτονικής της. Ποικιλία χαρακτηριστικών: Η JQuery δίνει τη δυνατότητα στον χρήστη να χρησιμοποιήσει σχεδόν το σύνολο των δυνατοτήτων που προσφέρει η γλώσσα JavaScript. Από απλά χαρακτηριστικά που σχετίζονται με βασικές λειτουργίες εμφάνισης / απόκρυψης, ως Ajax κλήσεις και σύνθετα εφέ. Επεκτασιμότητα: Η λογική με την οποία είναι φτιαγμένη η JQuery είναι απλή, πράγμα που αντικατοπτρίζεται και στον ίδιο της τον κώδικα. Αυτό κάνει πολύ εύκολη την επέκτασή / τροποποίησή της.

3.6 Dreamweaver Το Adobe Dreamweaver είναι ένα εργαλείο ανάπτυξης ιστοσελίδων της Macromedia. Υποστηρίζει CSS, JavaScript, και μια σειρά άλλων παρόμοιων τεχνολογιών. Το πρόγραμμα Dreamweaver βοηθά τους μη-προγραμματιστές (και αρχάριους) στην κατασκευή ιστοσελίδων καθώς έχει ενσωματωμένες πολλές τεχνικές σχεδιασμού. Παράδειγμα αποτελούν οι συναρτήσεις JavaScript οι οποίες είναι πολύ χρήσιμες σε κάθε εργασία παραγωγής Web σελίδων. Ο κώδικας που παράγεται είναι βελτιστοποιημένος έτσι ώστε να προσφέρει το καλύτερο αποτέλεσμα. Εδώ αξίζει να σημειωθεί πως στην συγκεκριμένη εφαρμογή δεν χρησιμοποιήθηκαν οι ενσωματωμένες τεχνικές σχεδιασμού του προγράμματος αλλά δημιουργήθηκαν όλο με γραφή κώδικα. Το πρόγραμμα βοήθησε αρκετά με τη δημιουργία Project που διαθέτει. Ομαδοποιεί δηλαδή όλα τα αρχεία της εφαρμογής και διευκολύνει την εύρεσή τους, τον συνδυασμό τους, την επεξεργασία τους, ακόμη και το να υπενθυμίζει στον προγραμματιστή το πού βρίσκεται το κάθε τι μέσα στο project καθώς όλα τα αρχεία του site εμφανίζονται συνεχώς δεξιά του περιβάλλοντος. Τέλος το πρόγραμμα αναγνωρίζει τις γλώσσες προγραμματισμού που χρησιμοποιήθηκαν (PHP, HTML) και δίνει διαφορετικό χρώμα στην κάθε γλώσσα, πράγμα που βοηθά τον προγραμματιστή στην γραφή κώδικα (αφού στην εφαρμογή γίνεται συνδυασμός γλωσσών προγραμματισμού). 3.6.1 Πλεονεκτήματα Dreamweaver Υποστηρίζει πολλές τεχνολογίες όπως JSP, PHP, ASP κ.ά. Τόσο ο κώδικας όσο και η εμφάνιση της σελίδας μπορούν να επιθεωρηθούν Συντονισμός της μηχανής υλοποίησης με τον εξυπηρετητή δοκιμών ή τον εξυπηρετητή δημοσίευσης Διευκόλυνση συνεργασίας με άλλους προγραμματιστές/ σχεδιαστές

3.7 XAMPP To XAMPP είναι ένα πρόγραμμα ελευθέρου λογισμικού με μηδενικό κόστος. Είναι στην ουσία ένα πακέτο το οποίο περιλαμβάνει τις τελευταίες εκδόσεις Apache HTTP Serve, MySQL βάση δεδομένων και μεταγλωττιστές σεναρίων γραμμένους συνήθως σε PHP και PERL. Επίσης διατίθεται και αυτό δωρεάν από την σελίδα http://www.apachefriends.org για διάφορα λειτουργικά συστήματα (Linux, Windows,Solaris,Mac). Το όνομα XAMPP είναι αρκτικόλεξο (ακρωνύμιο) και σημαίνει: X: σημαίνει πως είναι χιαστί πλατφόρμα A: Apache HTTP Server M: MySQL P: PHP P: Perl Ένα πρόγραμμα σαν το XAMPP είναι απαραίτητο κατά την δημιουργία της εφαρμογής (έως ότου ανεβεί σε κάποιο server), έτσι ώστε να δημιουργεί

τοπικό δίκτυο στον υπολογιστή και να τρέχει τον κώδικα σε πραγματικό χρόνο, ώστε να τεστάρεται η εφαρμογή από τον δημιουργό της. 3.7.1 APACHE Ο Apache HTTP γνωστός και απλά σαν Apache είναι ένας εξυπηρετητής του παγκόσμιου ιστού (web). Όποτε κάποιος επισκέπτεται έναν ιστότοπο ο πλοηγός του επικοινωνεί με έναν διακομιστή HTTP. O Apache είναι ένας από τους δημοφιλέστερους, εν μέρει γιατί λειτουργεί σε διάφορες πλατφόρμες σαν τα Windows, το Linux, το Unix, και το Mac OS X. 3.7.2 PhpMyAdmin Το PhpMyAdmin είναι ένα εργαλείο γραμμένο σε php με το οποίο το πρόγραμμα διαχειρίζεται τις βάσεις δεδομένων που έχει μέσω web. Το phpmyadmin μπορεί να χειρίζεται πλήρως βάσεις δεδομένων, πίνακες, πεδία πινάκων αλλά και ένα ολόκληρο MySQL Server. Υποστηρίζει 54 γλώσσες, μεταξύ των οποίων και τα ελληνικά και είναι λογισμικό ανοιχτού κώδικα.

3.7.3 Δυνατότητες του PhpMyAdmin Το PhpMyAdmin μπορεί να : Δημιουργεί και να διαγράφει βάσεις δεδομένων Δημιουργεί, τροποποιεί, διαγράφει, αντιγράφει και μετονομάζει πίνακες Κάνει συντήρηση της βάσης Προσθέτει, διαγράφει και τροποποιεί πεδία πινάκων Εκτελεί ερωτήματα SQL ακόμα και ομαδικά (batch) Διαχειρίζεται κλειδιά σε πεδία Φορτώνει αρχεία κειμένου σε πίνακες Δημιουργεί και διαβάζει πίνακες(που προέρχονται από dump βάσης) Εξάγει δεδομένα σε μορφή CVS, XML και LATEX Διαχειρίζεται πολλούς διακομιστές Διαχειρίζεται τους χρήστες MySQL και τα δικαιώματα τους Ελέγχει την αναφορική δραστηριότητα των δεδομένων των MyISAM πινάκων Δημιουργεί PDF γραφικών του layout της βάσης δεδομένων Εκτελεί αναζητήσεις σε όλη τη βάση δεδομένων ή μέρος αυτής Υποστηρίζει πίνακες InnoDB και ξένα κλειδιά

Υποστηρίζει MySQLi, μια βελτιωμένη επέκταση του MySQL

4 ο Κεφάλαιο: ΥΛΟΠΟΙΗΣΗ Αρχικά εγκαταστάθηκαν τα απαραίτητα εργαλεία στον υπολογιστή, δηλαδή το XAMPP (το οποίο καλύπτει τον Apache, δηλαδή τον Server και το PhpMyAdmin, δηλαδή την δημιουργία και επεξεργασία της βάσης δεδομένων), αλλά και το Dreamweaver το οποίο στη συγκεκριμένη εφαρμογή χρησιμοποιήθηκε για την ομαδοποίηση των αρχείων που αποτελούν την web εφαρμογή και για να διευκολύνει στον έλεγχο της τοποθεσίας του κάθε αρχείου ανά πάσα στιγμή μέσα στην εφαρμογή αλλά και στο άνοιγμα πολλών αρχείων ταυτόχρονα σε ένα πρόγραμμα (Dreamweaver) πράγμα που βοηθά στην άμεση επεξεργασία τους αλλά και σε εξοικονόμηση χρόνου. Έπειτα, δημιουργήθηκε η βάση δεδομένων που επρόκειτο να χρησιμοποιηθεί. Οι πίνακες της βάσης δημιουργήθηκαν με την βοήθεια του PhpMyAdmin.

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

4.1 Πεδία και συναρτήσεις κλάσεων Κοινές συναρτήσεις-μέλη Save() Ελέγχει εάν υπάρχει ήδη η εγγραφή και εφόσον δεν υπάρχει καλεί την κλάση create() ή εφόσον υπάρχει την κλάση update(). Create() Δημιουργεί νέα εγγραφή στον πίνακα με τα πεδία του αντικειμένου που της δίνονται. Update() Ενημερώνει την ήδη υπάρχουσα εγγραφή στον πίνακα. find_by_id($id) Βρίσκει την εγγραφή με το id που της δίνεται find_by_site_id($site_id) Βρίσκει την εγγραφή ή τις εγγραφές που ανήκουν στο συγκεκριμένο site. find_by_sql($sql) Καλείται από όλες τις συναρτήσεις find και μεταφέρει τον κώδικα στην βάση ώστε να εκτελεστεί το ερώτημα. Κλάση User Η κλάση User αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύονται τα στοιχεία προφίλ των χρηστών.

Ιδιότητες user_id' (πρωτεύον κλειδί-μοναδικό), 'site_id' (δευτερεύον κλειδί-το id του site που ανήκει), 'password', 'name', 'email', 'type',(= user ή guest ή admin ). Εάν το τύπος χρήστη είναι guest τότε χρησιμοποιούνται και τα πεδία: 'wishes', 'come_to_wedding', 'come_to_revelry' που είναι οι ευχές και οι απαντήσεις του καλεσμένου. Συναρτήσειςμέλη Authenticate ($email, $password): αντιστοιχεί το e-mail με τον κωδικό που της δίνονται ως είσοδος και ελέγχει αν υπάρχει προφίλ με αυτά τα δεδομένα. Επιστρέφει true ή false ανάλογα. find_by_email($email): επιστρέφει την εγγραφή με το e- mail που της δίνεται. find_user_by_email($email): επιστρέφει την εγγραφή με το e-mail που της δίνεται και τύπο χρήστη (type) user δηλαδή πελάτη. find_all_users(): επιστρέφει όλους τους πελάτες. find_all_guests($site_id): επιστρέφει όλους τους καλεσμένους του συγκεκριμένου site. Κλάση Site Η κλάση Site αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύονται τα στοιχεία της ιστοσελίδας του κάθε χρήστη, δηλαδή το θέμα και το αν υπάρχει βιβλίο καλεσμένων και Π.Α.

Ιδιότητες 'site_id' (πρωτεύον κλειδί-μοναδικό), 'user_id' (δευτερεύον κλειδί το id του user που ανήκει), 'theme' (δευτερεύον κλειδί-το κλειδί του θέματος της ιστοσελίδας-εμφάνιση), 'guestbook' ( yes ή no ανάλογα αν επιθυμεί να υπάρχει βιβλίο καλεσμένων ή όχι στην ιστοσελίδα), 'rsvp' ( yes ή no ανάλογα αν επιθυμεί να υπάρχει Π.Α. ή όχι στην ιστοσελίδα), 'sitepassword' (κωδικός σελίδας). find_all(): επιστέφει όλες τις ιστοσελίδες που υπάρχουν. find_by_user_id($user_id): επιστρέφει την εγγραφή του χρήστη που της δίνεται. Κλάση Theme Η κλάση Information αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύονται τα θέματα εμφάνισης των ιστοσελίδων. Ιδιότητες 'theme_id' (πρωτεύον κλειδί-μοναδικό), 'theme' (ονομασία θέματος), 'filename' (όνομα αρχείου θέματος), 'enable' ( yes ή no ανάλογα εάν το διαχειριστής το έχει ενεργοποιημένο ή απενεργοποιημένο). Συναρτήσειςμέλη Συναρτήσειςμέλη attach_file($file): εισάγει τις πληροφορίες των πεδίων της εγγραφής αφού ελέγξει πρώτα για τυχόν προβλήματα.

save(): ελέγχει τα στοιχεία του αρχείου (μεγάλο μέγεθος κ.λπ.) και αποθηκεύει το αρχείο css στον φάκελο css του ιστοτόπου. Delete(): διαγράφει την εγγραφή στο πίνακα. Destroy(): διαγράφει την εγγραφή στο πίνακα και το αρχείο του css από τον φάκελο. Κλάση basics Η κλάση Basics αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύονται τα στοιχεία του γάμου, της οικογένειας, και των κουμπάρων. Ιδιότητες 'basics_id' (πρωτεύον κλειδί-μοναδικό), 'welcome' (μήνυμα καλωσορίσματος), 'weddingdate' (ημερομηνία και ώρα γάμου), 'howwemet' (πως γνωριστήκαμε), 'bridesparents' (γονείς νύφης), 'bridesparentswords' (λίγα λόγια για τους γονείς της νύφης), 'groomsparents' (γονείς του γαμπρού), 'groomsparentswords' (λίγα λόγια για τους γονείς του γαμπρού), 'koymparoi' (κουμπάροι), 'koymparoiwords' (λίγα λόγια για τους κουμπάρους), 'site_id' (δευτερεύον κλειδί-το id του site που ανήκει). Οι κοινές συναρτήσεις. Συναρτήσειςμέλη

Κλάση Information Η κλάση Information αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύονται τα στοιχεία τραπεζών και των καταστημάτων της λίστας γάμου αλλά και τα στοιχεία επικοινωνίας με το ζευγάρι. Ιδιότητες 'information_id' (πρωτεύον κλειδί-μοναδικό), 'bank' (στοιχεία τραπεζών για την λίστα γάμου), 'store' (στοιχεία καταστημάτων για την λίστα γάμου), 'bridesnumber' (τηλέφωνο νύφης), 'groomsnumber' (τηλέφωνο γαμπρού), 'theiremail' (e-mail ζευγαριού), 'contactcomment' (σχόλια ή σημέιωση για την επικοινωνία με το ζευγάρι), 'site_id' (δευτερεύον κλειδίτο id του site που ανήκει). Οι κοινές συναρτήσεις. Συναρτήσειςμέλη Κλάση Photo Η κλάση Photo αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύονται οι φωτογραφίες. Ιδιότητες 'photo_id' (πρωτεύον κλειδί-μοναδικό), 'filename' (όνομα αρχείου), 'type' (τύπος αρχείου π.χ. jpeg), 'size' (μέγεθος αρχείου), 'caption' (λεζάντα φωτογραφίας), 'xrhsh' (για ποια χρήση είναι η φωτογραφία π.χ. κεντρική φωτογραφία ή φωτογραφία γονιών), 'site_id' (δευτερεύον κλειδί-το id του site που ανήκει).

attach_file($file): εισάγει τις πληροφορίες των πεδίων της εγγραφής αφού ελέγξει πρώτα για τυχόν προβλήματα. save(): ελέγχει τα στοιχεία της φωτογραφίας (μεγάλο μέγεθος κ.λπ.) και αποθηκεύει την φωτογραφία στον φάκελο user_photos του ιστότοπου. Delete(): διαγράφει την εγγραφή στο πίνακα. Destroy(): διαγράφει την εγγραφή στο πίνακα και το αρχείο της φωτογραφίας από τον φάκελο. find_all_by_usage($site_id, $usage): επιστρέφει όλες τις εγγραφές του site που της δίνεται, με την χρήση που της δίνεται (π.χ. xrhsh =10 δηλαδή φωτογραφίες άλμπουμ. find_all_by_site_id($site_id): βρίσκει όλες τις φωτογραφίες του site που της δίνεται. Κλάση Poll Η κλάση Poll αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύεται ο τίτλος της ψηφοφορίας. Ιδιότητες 'poll_id' (πρωτεύον κλειδί-μοναδικό), 'poll_title' (τίτλος ψηφοφορίας), 'site_id' (δευτερεύον κλειδί-το id του site που ανήκει). Συναρτήσειςμέλη Συναρτήσειςμέλη add_choice($choice): δημιουργεί νέα εγγραφή στον πίνακα choices με το poll_id της ψηφοφορίας στην οποία ανήκει.

all_choices(): επιστρέφει όλες τις επιλογές της ψηφοφορίας του αντικειμένου που την καλεί. clear_choices(): βρίσκει όλες τις επιλογές της ψηφοφορίας του αντικειμένου που την καλεί και τις σβήνει. Κλάση Poll_choice Η κλάση Poll_choice αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύονται οι απαντήσεις κάθε ψηφοφορίας. Ιδιότητες 'dest_id' (πρωτεύον κλειδί-μοναδικό), 'choice' (η επιλογή), 'rank' (θέση της επιλογής π.χ. 1 η επιλογή), 'votes' (ψήφοι της επιλογής), 'poll_id' (δευτερεύον κλειδίτο id της ψηφοφορίας στην οποία ανήκει). Συναρτήσειςμέλη find_all_choices($poll_id): επιστρέψει τις εγγραφές της ψηφοφορίας που της δίνεται ως παράμετρος. Κλάση Weddinginform Η κλάση Information αντιστοιχεί σε αντικείμενα που διαχειρίζονται τον πίνακα που αποθηκεύονται τα στοιχεία της εκκλησίας, η πρόταση γάμου, τα στοιχεία της δεξίωσης αλλά και των bachelor parties. Ιδιότητες 'weddinginform_id' (πρωτεύον κλειδί-μοναδικό), 'proposal' (πρόταση γάμου), 'church' (εκκλησία), 'churchaddress' (διεύθυνση εκκλησίας), 'church_dir'

(οδηγίες πρόσβασης στην εκκλησία), 'revelryinvite' (μήνυμα πρόσκλησης στην δεξίωση), 'reverlyaddress' (διεύθυνση δεξίωσης), 'revelry_dir' (οδηγίες πρόσβασης στην δεξίωση), 'revelry_comments' (σχόλια για την δεξίωση), 'bridesbachelor' (το bachelor της νύφης), 'groomsbachelor' (το bachelor του γαμπρού), 'bachelor_dir' (οδηγίες πρόσβασης στα bachelor parties), 'site_id' δευτερεύον κλειδί-το id του site που ανήκει). Οι κοινές συναρτήσεις. Συναρτήσειςμέλη 4.2 Προσθήκη νέου πελάτη Το πελατολόγιο το ορίζει ο διαχειριστής και μόνο. Στο προφίλ διαχειριστή υπάρχει η δυνατότητα για προσθήκη πελάτη, κατά την οποία ο διαχειριστής αποθηκεύει μόνο το e-mail του κάθε πελάτη (αφενός γιατί μόνο αυτό είναι σίγουρα μοναδικό, αφετέρου για να αφήσει στον πελάτη την επιλογή στο τί όνομα θέλει να εμφανίζεται στο προφίλ του). Σε αυτό το μέρος, η εφαρμογή δημιουργεί ένα αντικείμενο User, εισάγει το e-mail του χρήστη και με την συνάρτηση save() δημιουργεί την εγγραφή στον πίνακα.

Στην σελίδα αυτή, χρησιμοποιώντας την συνάρτηση find_all_users() εμφανίζονται όλοι οι ήδη υπάρχοντες πελάτες. Δίπλα από κάθε πελάτη υπάρχει η επιλογή «Αφαίρεση» η οποία έχει ως τιμή το user_id του κάθε χρήστη. Εάν λοιπόν πατηθεί κάποιο από αυτά τα κουμπιά, καλείται η συνάρτηση find_by_id() της κλάσης User και επιστρέφεται σε μια μεταβλητή το αντικείμενο του χρήστη με αυτό το user_id. Έπειτα από το αντικείμενο αυτό καλείται η συνάρτηση delete() για να διαγραφεί η εγγραφή από την βάση.

4.3 Είσοδος χρήστη (login) στον ιστότοπο Τα στοιχεία των χρηστών είναι αποθηκευμένα στον πίνακα Users της βάσης. Ο χρήστης λοιπόν συμπληρώνει την φόρμα που του ζητάει e-mail χρήστη και συνθηματικό. Η εφαρμογή μέσω της συνάρτησης authenticate($email, $password) της κλάσης Users, παίρνει το e-mail του χρήστη και το συνθηματικό και τα αντιστοιχεί, ελέγχει δηλαδή πρώτον εάν υπάρχουν σε εγγραφή στη βάση και δεύτερον αν βρίσκονται στην ίδια εγγραφή. Σε περίπτωση που η αντιστοίχηση είναι σωστή επιστρέφει το αντικείμενο της εγγραφής αυτής του πίνακα Users. Σε κάθε περίπτωση εμφανίζεται το κατάλληλο μήνυμα. 4.4 Εγγραφή χρήστη μόνο εάν είναι πελάτης Αυτό απαιτεί μια ήδη υπάρχουσα εγγραφή στην βάση η οποία εμπεριέχει μόνο το e-mail του χρήστη και τίποτε άλλο (η εγγραφή αυτή έχει γίνει προηγουμένως από τον διαχειριστή). Σε αυτή τη περίπτωση ο χρήστης δεν έχει ακόμα λογαριασμό, αλλά είναι απλά εγγεγραμμένος ως πελάτης. Ο χρήστης κάνει αίτηση εγγραφής συμπληρώνοντας το όνομα ζευγαριού που θέλει να υπάρχει στο προφίλ του αλλά και το e-mail του (το οποίο είναι αυτό που έχει ήδη δώσει στο τυπογραφείο για να γραφτεί ως πελάτης). Η εφαρμογή εδώ, μέσω της συνάρτησης find_by_email($email) της κλάσης

User, ελέγχει μέσω του e-mail εάν υπάρχει ο πελάτης στη βάση και μόνο εφόσον τον βρει, επιλέγει έναν τυχαίο κωδικό και στέλνει e-mail στον χρήστη με τον κωδικό πρόσβασής του αλλά και τον αποθηκεύει στην εγγραφή του στη βάση. Με αυτό τον τρόπο ο χρήστης αποκτά λογαριασμό. Σε κάθε περίπτωση εμφανίζεται το κατάλληλο μήνυμα. 4.5 Αποστολή e-mail Για την αποστολή e-mail χρησιμοποιείται η έτοιμη βιβλιοθήκη της PHP, η Swiftmailer.org η οποία χρησιμοποιεί openssl. Η λειτουργία γίνεται μέσω κλάσης και μεθόδων οι οποίες χρησιμοποιούν το e-mail και τον κωδικό ενός gmail που δημιουργήθηκε για την εφαρμογή αυτή. Η μέθοδος newinstance($e-mail, $size, $type) της κλάσης Swift_SmtpTransport δημιουργεί ένα νέο αντικείμενο για αποστολή e-mail. Οι μέθοδοι setusername($email) και setpassword($password), εισάγουν στον mailer τα στοιχεία του e-mail που θα στείλει τα μηνύματα. Αυτό χρησιμοποιείται έτσι ώστε ο ιστότοπος να κάνει είσοδο στο e-mail αυτό και να στείλει τα μηνύματα μέσω αυτού. Στη μέθοδο newinstance($transport) της κλάσης Swift_Mailer εισάγεται ως παράμετρος το προηγούμενο αντικείμενο και μέσω των μεθόδων newinstance($theme) που είναι το μήνυμα που θα εμφανίζεται ως θέμα στο μήνυμα e-mail που θα σταλεί, setfrom($sender) που είναι το όνομα

αποστολέα που θα εμφανίζεται στο μήνυμα e-mail που θα σταλεί, setto($recipient) που είναι ο πίνακας με τα e-mail των παραληπτών και setbody($message) που είναι το περιεχόμενο του μηνύματος που θα σταλεί, με την κλάση Swift_Message αποστέλλεται το e-mail με τα παραπάνω στοιχεία που δίνονται ως παράμετροι. 4.6 Υπενθύμιση κωδικού Στην υπενθύμιση κωδικού ο χρήστης το μόνο που χρειάζεται να κάνει είναι να υποβάλει το e-mail του (με το οποίο έχει κάνει την εγγραφή). Αυτή η λειτουργία προϋποθέτει ο χρήστης να είναι εγγεγραμμένος στον ιστότοπο. Η εφαρμογή λοιπόν με την μέθοδο find_by_email($email) της κλάσης User βρίσκει την εγγραφή του χρήστη και του στέλνει e-mail με τον κωδικό του χρήστη (δηλαδή το περιεχόμενο του πεδίου password της εγγραφής). Σε κάθε περίπτωση εμφανίζεται το κατάλληλο μήνυμα. 4.7 Συμπλήρωση στοιχείων στον οδηγό Στην βάση υπάρχουν κάποιοι πίνακες των οποίων τα πεδία έχουν ομαδοποιηθεί με βάση το θέμα τους, αλλά και οι ανάλογες κλάσεις οι οποίες εμπεριέχουν ιδιότητες που αναφέρονται στα πεδία του πίνακα.

4.7.1 Υποβολή στοιχείων Ο χρήστης υποβάλει τα συμπληρωμένα ή μη συμπληρωμένα πεδία και η εφαρμογή μέσω των ανάλογων κλάσεων, παίρνει τις τιμές που τις δίνονται και μέσω της συνάρτησης save (η οποία εμπεριέχεται σε όλες τις κλάσεις), η οποία με την σειρά της καλεί α) τον πίνακα attributes (ο οποίος εμπεριέχεται σε όλες τις κλάσεις με την διαφορά ότι σε κάθε περίπτωση περιέχει και τα ανάλογα πεδία του πίνακα), β) την μέθοδο query της κλάσης database (η οποία μεταφέρει τον sql κώδικα στη βάση). Η μέθοδο save() πρώτα απ όλα ελέγχει εάν υπάρχει ήδη εγγραφή με αυτό το site_id (δευτερεύον κλειδί σε κάθε πίνακα της βάσης για να ξέρουμε σε κάθε εγγραφή πάντα σε ποια ιστοσελίδα χρήστη αναφέρεται), εάν δεν υπάρχει εγγραφή καλεί την μέθοδο create() η οποία δημιουργεί καινούρια εγγραφή στον πίνακα και εκτελεί και τις λειτουργίες που προαναφέρθηκαν ενώ εάν βρεθεί η εγγραφή η μέθοδος save καλεί την μέθοδο update() η οποία κάνει τις όποιες αλλαγές υπάρξουν από τα στοιχεία που πήρε, στην ήδη υπάρχουσα εγγραφή. Οι μέθοδοι αυτές υπάρχουν σε κάθε κλάση της εφαρμογής. 4.7.2 Επιπρόσθετα παράθυρα για ημερομηνία και ώρα Η εμφάνιση των επιπρόσθετων παραθύρων για την επιλογή ημερομηνίας και ώρας υλοποιήθηκε με την χρήστη jquery, η οποία έχοντας το δικό της css εμφανίζει μία μικρή εφαρμογή η οποία εκτελείται από τη πλευρά του πελάτη (client side) και εμφανίζει ένα μικρό ημερολόγιο ή αντίστοιχα μία φόρμα με όλες τις ώρες και τα λεπτά του 24ώρου. Αυτός ο τρόπος χρησιμοποιήθηκε α) διότι ο τρόπος γραφής ημερομηνίας και ώρας ποικίλει και β) για να αποφευχθούν τυχόν συντακτικά λάθη, μιας και με αυτό τον τρόπο, ο προγραμματιστής ξέρει πάντα σε τι μορφή θα πάρει τα στοιχεία.

4.7.3 Ανέβασμα, προβολή και διαγραφή φωτογραφιών Η εύρεση του αρχείου φωτογραφίας έγινε μέσω κατάλληλου <tag> της HTML τύπου file, το οποίο εάν πατηθεί από τον χρήστη μεταβαίνει σε ένα νέο παράθυρο το οποίο κάνει αναζήτηση στα περιεχόμενα του υπολογιστή του χρήστη και από εκεί μπορεί να επιλεχθεί η ανάλογη φωτογραφία. Έπειτα καθώς ο χρήστης επιλέξει την φωτογραφία, γράψει το ανάλογο σχόλιο εφόσον επιθυμεί και υποβάλει στην φωτογραφία για ανέβασμα, η εφαρμογή καλεί τη μέθοδο attach_file της κλάσης Photo. Η μέθοδος αυτή πρώτα απ όλα ελέγχει εάν υπάρχουν τυχόν προβλήματα όπως λάθος τύπος αρχείου (με προδιαγραφές που της έχουν δοθεί), μεγάλο αρχείο (με όριο που της έχει δοθεί) κ.λπ. Έπειτα εφόσον δεν υπάρχουν προβλήματα δημιουργεί μια νέα εγγραφή στον πίνακα photos και μέσω της μεθόδου save() η φωτογραφία μεταφέρεται στο φάκελο user_photos του ισοτόπου και αποθηκεύεται το όνομά της το οποίο έχει καθοριστεί να είναι ένας τυχαίος μεγάλος συνδυασμός γραμμάτων και αριθμών, για να αποφευχθεί την περίπτωση

που ο χρήστης επιλέξει να ανεβάσει πάνω από μία φωτογραφίες με την ίδια ονομασία. Κάτω απ την εν λόγω φόρμα, μέσω της μεθόδου find_by_usage της κλάσης Photo, εμφανίζονται όλες οι φωτογραφίες που ήδη έχει ανεβάσει ο χρήστης. Αυτό γίνεται μέσω της ιδιότητας site_id την οποία παίρνει σαν είσοδο η μέθοδος find_by_usage, αλλά και την χρήση της φωτογραφίας, η οποία είναι διαφορετική για την φωτογραφία των γονιών, για τις φωτογραφίες του άλμπουμ, για την φωτογραφία εξωφύλλου κ.λπ. για να ξεχωρίζεται που θα εμφανίζεται η καθεμία. Στον οδηγό κάτω από κάθε φωτογραφία υπάρχει η επιλογή «διαγραφή» η οποία με τη σειρά της καλεί την μέθοδο destroy της κλάσης Photo. Ανάλογα με το ποια φωτογραφία έχει επιλεχθεί προς διαγραφή, η μέθοδος παίρνει την εγγραφή της και καλεί τη μέθοδο delete η οποία σβήνει την εγγραφή από την βάση αλλά βρίσκει και σβήνει την φωτογραφία από τον φάκελο.

4.7.4 Π.Α. και βιβλίο καλεσμένων Όσον αφορά την δημιουργία Π.Α.(Παρακαλώ απαντήστε) και Βιβλίου Καλεσμένων για την ιστοσελίδα του χρήστη, υπάρχει η επιλογή εάν επιθυμεί ή όχι να συμπεριληφθούν στη σελίδα του και η απάντηση που υποβάλλει αποθηκεύεται στην βάση έτσι ώστε να γίνει αργότερα ο κατάλληλος έλεγχος για το αν θα εμφανιστεί ή όχι στην ιστοσελίδα του. Η εγγραφή βρίσκεται στα πεδία rsvp και guestbook του πίνακα Site και περιέχει την τιμή yes ή την τιμή no.

4.7.5 «Προσθήκη» και «Αφαίρεση» Στην περίπτωση των κουμπάρων, της λίστας γάμου σε λογαριασμό τραπέζης ή καταστήματος αλλά και στην αποστολή πρόσκλησης στους καλεσμένους, δεν μπορούμε να γνωρίζουμε εξ αρχής πόσα πεδία θα χρειαστούν (για παράδειγμα πόσους κουμπάρους ή καλεσμένους θα επιλέξει να προσθέσει ο χρήστης). Σε αυτό το σημείο χρησιμοποιείται η γλώσσα jquery. Μέσω μιας συνάρτησης η οποία εμπεριέχεται ως script στην συγκεκριμένη σελίδα, δημιουργείται η πρωτότυπη σειρά με τα πεδία προς συμπλήρωση και τα κουμπιά «Προσθήκη» και «Αφαίρεση». Το script σε περίπτωση που πατηθεί το κουμπί «Προσθήκη» κλωνοποιεί την προηγούμενη σειρά καθαρίζοντας τα στοιχεία και σε περίπτωση που πατηθεί η «Αφαίρεση» διαγράφει την συγκεκριμένη σειρά. Όσον αφορά την εγγραφή στη βάση, γίνεται μέσω ενός πίνακα στη σελίδα (PHP) ο οποίος αρχικά είναι κενός και στη συνέχεια αποκτά τόσες σειρές όσες και οι σειρές που υπάρχουν στην τρέχουσα σελίδα εκείνη τη στιγμή που θα πατήσει

ο χρήστης το κουμπί «Αποθήκευση» και τα μεταφέρει στην βάση μέσω της μεθόδου save της ανάλογης κλάσης. 4.7.6 Επιλογή θέματος Σε αυτή τη περίπτωση, με την χρήση της μεθόδου find_all() της κλάσης Themes και αφού ελεγχθεί εάν το κάθε θέμα είναι ενεργοποιημένο (εάν είναι απενεργοποιημένο από τον διαχειριστή δεν εμφανίζεται) εμφανίζονται όλα τα θέματα και η δυνατότητα να επιλεχθεί ένα από αυτά. Ο χρήστης επιλέγει ποια εμφάνιση επιθυμεί να έχει η ιστοσελίδα του, τo theme_id (πρωτεύον κλειδί) αποθηκεύεται στην εγγραφή του στον πίνακα site, στο πεδίο theme και καλείται η μέθοδος save() μέσω του αντικειμένου site για να ενημερώσει την εγγραφή στο πίνακα της βάσης.

4.7.7 Αποστολή Προσκλήσεων και διαγραφή καλεσμένων Ο χρήστης προσθέτει καλεσμένους συμπληρώνοντας το όνομα και το e- mail τους. Εφόσον κάνει κλικ στο κουμπί «Αποστολή», η εφαρμογή δημιουργεί νέα εγγραφή στον πίνακα Users με μια διαφορά όμως: στο πεδίο Type του πίνακα, έχει την τιμή guest. Έτσι το σύστημα καταλαβαίνει ότι αυτός ο χρήστης είναι καλεσμένος. Επίσης συμπληρώνεται και το πεδίο site_id για να γνωστοποιεί σε ποιο site είναι καλεσμένος. Τέλος ο χρήστης συμπληρώνει έναν κωδικό σελίδας ο οποίος είναι και ο κωδικός χρήστη για τους καλεσμένους του. Σε περίπτωση που αλλάξει τον κωδικό, η εφαρμογή μέσω της μεθόδου find_all_guests($site_id) της κλάσης Users (που παίρνει σαν παράμετρο το site_id) που επιστρέφει όλους τους καλεσμένους του site, αλλάζει τον παλιό κωδικό με τον νέο. Τέλος, μέσω της μεθόδου find_all_guests($site_id) εμφανίζονται παρακάτω μέσω ενός πίνακα στην σελίδα, όλοι οι καλεσμένοι με το ανάλογο κουμπί «Διαγραφή» το οποίο βρίσκει την εγγραφή του καλεσμένου με την μέθοδο find_by_id($user_id) της κλάσης Users και τον διαγράφει. 4.7.8 Πρόσβαση σε ιστοσελίδα χρήστη

Ο χρήστης μπορεί ανά πάσα στιγμή πώς εμφανίζεται η ιστοσελίδα του κάνοντας απλά κλικ στο κουμπί «Η Ιστοσελίδα μου» που εμφανίζεται στον οδηγό. Ο διαχειριστής μπορεί να δει κάθε ιστοσελίδα από την λίστα με όλες τις ιστοσελίδες που του παρουσιάζονται. Ο πελάτης από την κεντρική σελίδα, μεταβαίνοντας στην σελίδα «Ιστοσελίδες γάμου» βρίσκει το ζευγάρι που τον έχει καλέσει και κάνοντας κλικ πάνω σε αυτό η εφαρμογή τον μεταβιβάζει σε μία φόρμα σύνδεσης (login) στο σύστημα. Εφόσον είναι καλεσμένος και τα στοιχεία που έχει συμπληρώσει είναι σωστά (αυτά ελέγχονται μέσω της βάσης για το αν έχει βρεθεί η εγγραφή με την μέθοδο authenticate($email, $password), για το αν είναι καλεσμένος με το πεδίο type να εμπεριέχει την λέξη guest και για να ελεγχθεί αν είναι καλεσμένος της συγκεκριμένης ιστοσελίδας ελέγχεται το πεδίο site_id να είναι ίδιο με το site_id του site που έχει επιλεχθεί) μεταβαίνει στην σελίδα του χρήστη. 4.7.9 Προβολή ιστοσελίδας χρήστη Αρχικά δημιουργείται το αντικείμενο $owner από την μέθοδο find_by_site_id($site_id) της κλάσης Site, το οποίο εμπεριέχει τα στοιχεία του κατόχου της ιστοσελίδας. Έπειτα μέσω του πεδίου theme του site ελέγχεται ποιο θέμα έχει επιλεχθεί για την ιστοσελίδα αυτή. Με την μέθοδο find_by_id($theme_id) της κλάσης Themes βρίσκεται το αντικείμενο του θέματος της ιστοσελίδας και φορτώνεται το κατάλληλο αρχείο css (από τον φάκελο css) μέσω του πεδίου filename του αντικειμένου theme. Έπειτα βρίσκονται όλα τα στοιχεία που συνδέονται με το site αυτό. Στο σημείο αυτό χρησιμοποιείται η μέθοδος find_by_site_id($site_id) των κλάσεων όλων των πινάκων. Σε κάθε περίπτωση ελέγχεται πρώτα απ όλα το πεδίο enable κάθε θεματικής ενότητας της ιστοσελίδας και μόνο εφόσον το πεδίο αυτό είναι αληθές (δεν το έχει απενεργοποιήσει δηλαδή ο διαχειριστής) εμφανίζεται η κάθε θεματική ενότητα. Έπειτα ελέγχονται όλα τα πεδία κάθε πίνακα και

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

5 ο Κεφάλαιο: ΕΠΙΣΚΟΠΗΣΗ ΚΑΙ ΜΕΛΛΟΝΤΙΚΕΣ ΠΡΟΕΚΤΑΣΕΙΣ 5.1. Τι επιτεύχθηκε Στην εν λόγω εργασία υλοποιήθηκαν όλες οι απαιτήσεις που υπήρχαν αρχικά όπως και κάποιες επιπλέον λειτουργίες. Συγκεκριμένα: Η δυνατότητα κατασκευής ιστοσελίδας γάμου υλοποιήθηκε έτσι ώστε να είναι ανοιχτή μόνο για τους πελάτες του τυπογραφείου. Δεν έχει ο οποιοσδήποτε δικαίωμα για εγγραφή στον ιστότοπο, αλλά ο διαχειριστής είναι αυτός που επιλέγει ποιοι θα έχουν δικαίωμα για εγγραφή. Αυτό γίνεται αυτόματα. Εφόσον ο χρήστης που κάνει αίτηση εγγραφής βρεθεί ως πελάτης στη βάση δεδομένων, δημιουργείται αυτόματα η εγγραφή του χρήστη. Αυτή η λειτουργία προγραμματίστηκε να γίνεται αυτόματα έτσι ώστε να μην έχει ο διαχειριστής την επιπλέον δουλειά να ελέγχει ποιοι έκαναν αίτηση εγγραφής και αν είναι πελάτες ή όχι να τους επιβεβαιώνει ή απορρίπτει ανάλογα. Οι ιστοσελίδες των χρηστών είναι ιδιωτικές και μόνο οι καλεσμένοι τους ή ο διαχειριστής μπορεί να έχει πρόσβαση σε αυτήν. Ο έλεγχος για τον αν ισχύουν οι παραπάνω συνθήκες, όταν κάποιος προσπαθήσει να εισαχθεί σε μια ιστοσελίδα γίνεται αυτόματα από το πρόγραμμα. Ο χρήστης έχει λοιπόν τον έλεγχο του ποιοι θα μπορούν να δουν την ιστοσελίδα του. Η πρόσκληση αποστέλλεται αυτόματα χωρίς ο χρήστης να χρειάζεται να συνδεθεί σε κάποιο e-mail και να προσθέσει τους καλεσμένους έναν-έναν. Προσθέτει όσους καλεσμένους επιθυμεί μέσω της επιλογής «Προσθήκη» καλεσμένου, κάνει κλικ στο κουμπί

«Αποστολή» και το e-mail στέλνεται αυτόματα από τον ιστότοπο σε όλους τους καλεσμένους που έχει εισάγει. Τα πεδία που δεν επιθυμεί ο χρήστης να εμφανίζονται στην τελική ιστοσελίδα του δεν εμφανίζονται απλά και μόνο αφήνοντάς τα κενά. Έτσι λοιπόν είτε αν ο χρήστης δεν επιθυμεί να συμπεριλάβει κάποιο πεδίο είτε ξεχάσει να το συμπληρώσει, δεν εμφανίζονται κενές καρτέλες ή πεδία στην ιστοσελίδα, όπως γίνεται σε άλλες παρόμοιες εφαρμογές που εξετάσθηκαν κατά την έρευνα που έγινε πριν την υλοποίηση της εφαρμογής. Ο χρήστης μπορεί ανά πάσα στιγμή να διαγράψει κάποιον καλεσμένο, παίρνοντάς του έτσι και το δικαίωμα να έχει πια πρόσβαση στην ιστοσελίδα του, αλλά και ανά πάσα στιγμή μπορεί να σβήσει φωτογραφίες, να αλλάξει όλα τα πεδία του οδηγού ή ακόμη κα το θέμα στην ιστοσελίδας του αλλά και να επεξεργαστεί τα στοιχεία προφίλ του. Ακόμη ο χρήστης μπορεί να δει τα αποτελέσματα της ψηφοφορίας που δημιούργησε αλλά και το πλήθος αυτών που σκοπεύουν να παρευρεθούν στο γάμο ή την δεξίωση. Ο διαχειριστής μπορεί να προσθέσει πελάτες ή και να διαγράψει χρήστες και ιστοσελίδες. Ακόμη μπορεί να ενεργοποιήσει και να απενεργοποιήσει όλα τα πεδία του οδηγού ανά πάσα στιγμή (και αυτόματα να ενημερωθούν όλες οι υπάρχουσες ιστοσελίδες) αλλά και να ενεργοποιήσει ή απενεργοποιήσει τα θέματα που υπάρχουν. Επιπλέον ο διαχειριστής μπορεί να προσθέσει θέματα, ανεβάζοντας το αρχείο css στον ιστότοπο και μια φωτογραφία προεπισκόπησης ώστε να φαίνεται στον χρήστη κατά την επιλογή θέματος. Ο καλεσμένος εκτός του ότι μπορεί να δει την ιστοσελίδα του γάμου που είναι καλεσμένος, και τις ευχές που έχουν γράψει όλοι οι καλεσμένοι, μπορεί να γράψει τις δικές του ευχές προς το ζευγάρι,

αλλά και να διαγράψει τις προηγούμενες (εάν έχει). Έχει την δυνατότητα να υποβάλλει την απάντησή του στο αν θα παρευρεθεί στον γάμο και την δεξίωση αλλά και να υποβάλλει την ψήφο του στην ψηφοφορία που έχει δημιουργήσει το ζευγάρι, πράγμα που μπορεί να αλλάξει ανά πάσα στιγμή εάν αλλάξει γνώμη. 5.2 Προβλήματα & αντιμετώπιση Κατά τη διάρκεια υλοποίησης της εφαρμογής παρουσιάστηκαν κάποια προβλήματα, τα οποία αντιμετωπίστηκαν με διάφορους χειρισμούς. Πολλές φορές η αντιμετώπισή τους δεν ήταν άμεση, δηλαδή προκειμένου να λυθεί κάποιο πρόβλημα, ο τρόπος αντιμετώπισής του δημιουργούσε ένα άλλο κ.ο.κ. Αρχικά η λειτουργία της εγγραφής εφαρμόστηκε κάνοντας αίτηση εγγραφής από τον χρήστη κατευθείαν. Έπειτα ο διαχειριστής λάμβανε στον ιστότοπου τις αιτήσεις εγγραφής και τις δεχόταν ή τις απέρριπτε. Αυτό όμως δεν διευκολύνει τον διαχειριστή διότι θα έπρεπε να επισκεπτόταν συχνά τον ιστότοπο για να ελέγχει εάν έχει γίνει κάποια αίτηση ή όχι αυτό συμβαίνει καθώς έτσι δεν υπάρχει τρόπος να ειδοποιείται αμέσως ο διαχειριστής για τις αιτήσεις). Κατά αυτό τον τρόπο, δεν θα υπήρχε ο κατάλληλος συγχρονισμός διαχειριστή-πελάτη, τόσο για την έγκριση ή απόρριψη των αιτήσεων εγγραφής, όσο και για την ειδοποίηση του πελάτη για την απάντηση της αίτησης. Γι αυτούς λοιπόν τους λόγους επιλέχθηκε η λειτουργία να γίνει με άλλο τρόπο, δηλαδή αυτόματα από τον ιστότοπο. Ο διαχειριστής εγγράφει κάθε πελάτη του στην λίστα πελατών του ισοτόπου και έτσι ο πελάτης οποιαδήποτε στιγμή θελήσει να κάνει εγγραφή στον ιστότοπο, γίνεται αυτόματα η δημιουργία προφίλ του και παίρνει αυτόματα την απάντηση και τον κωδικό πρόσβασής του μέσω e-mail. Με αυτό τον τρόπο υπάρχει ο καλύτερος δυνατός συγχρονισμός διαχειριστή-πελάτη.

Ένα ακόμη πρόβλημα που υπήρχε στην λειτουργία της εγγραφής νέου χρήστη ήταν τα στοιχεία με τα οποία θα συνδεόταν ο χρήστης στον ιστότοπο. Αρχικά λοιπόν η σύνδεση γινόταν με «όνομα χρήστη» και «συνθηματικό». Για να αποφευχθεί όμως το ενδεχόμενο κάποιοι πελάτες να επιλέξουν ίδιο όνομα χρήστη (πράγμα το οποίο ίσως δημιουργούσε προβλήματα στην εύρεση του πελάτη), το πεδίο αυτό άλλαξε και έγινε «e-mail χρήστη». Το e- mail είναι πάντοτε μοναδικό, οπότε δεν θα υπάρχει ενδεχόμενο να υπάρξουν ίδια στοιχεία προφίλ για παραπάνω από έναν χρήστη. Η λειτουργία αποστολής e-mail λειτούργησε εξ αρχής, με το εξής όμως πρόβλημα: το e-mail στον παραλήπτη εμφανιζόταν στα μηνύματα σκουπίδια (junk e-mail). Για την αποφυγή αυτού του προβλήματος και για να φαίνεται το μήνυμα e-mail στον παραλήπτη στα εισερχόμενα μηνύματα, έγιναν πολλές δοκιμές και τελικά βγήκε το συμπέρασμα πως για το πρόβλημα αυτό ευθύνονταν κάποιες φράσεις που εμπεριέχονταν στο μήνυμα (π.χ. «πατήστε εδώ»), φράσεις οι οποίες ανιχνεύονται από τις μηχανές ανίχνευσης spam του παγκόσμιου ιστού. Με έρευνα που έγινε λοιπόν, βρέθηκαν οι φράσειςκλειδιά που ανιχνεύονται από τις μηχανές αυτές και αποφεύχθηκαν ώστε να μην μεταφέρονται τα e-mail στα junk. Στη λειτουργία ενεργοποίησης και απενεργοποίησης θεμάτων από τον διαχειριστή, επειδή αρχικά δεν υπήρχε η προσθήκη θέματος, υπήρχε ένας πίνακας στην βάση, στον οποίο ενημερωνόταν τα πεδία enable_theme1, enable_theme2, enable_theme3 και αναλόγως εάν ήταν ενεργοποιημένο ή απενεργοποιημένο το καθένα από τα τρία θέματα που υπήρχαν. Αργότερα όμως όταν υλοποιήθηκε η λειτουργία της προσθήκης θέματος, εφόσον δεν υπάρχει δυνατότητα να γνωρίζουμε πόσα θα είναι τα θέματα ανά πάσα στιγμή, ώστε να υπάρχει κάποιο πεδίο για το κάθε θέμα για να τα ενεργοποιεί και να τα απενεργοποιεί ο διαχειριστής, δημιουργήθηκε νέος πίνακας με τα θέματα, στον οποίο σε κάθε εγγραφή υπάρχει το πεδίο

enable ώστε όσες εγγραφές και αν υπάρχουν, να εμπεριέχεται και το πεδίο ενεργοποίησης-απενεργοποίησης του κάθε θέματος. Στο ανέβασμα φωτογραφίας, εφόσον ο φάκελος προορισμού είναι ο ίδιος για κάθε χρήστη, υπήρξε πρόβλημα με την ονομασία των αρχείων, καθώς δεν μπορεί να αποθηκευτεί πάνω από ένα αρχείο με την ίδια ονομασία στον ίδιο φάκελο. Για να αποφευχθεί αυτή η περίπτωση (κάποιος να ανεβάσει πάνω από μία φωτογραφίες με την ίδια ονομασία, πράγμα που δημιουργεί πρόβλημα στην αποθήκευση του αρχείου), οι φωτογραφίες των χρηστών αποθηκεύονται με τυχαία ονομασία 13ών χαρακτήρων. Με τον τρόπο αυτό είναι σχεδόν απίθανο να δημιουργηθεί πάνω από μία φορά η ίδια ονομασία για το αρχείο, αλλά ακόμη κ αν γίνει αυτό, την δεύτερη φορά που θα προσπαθήσει ο χρήστης να ανεβάσει την φωτογραφία, η ονομασία που θα δημιουργηθεί (μέσω κατάλληλης συνάρτησης) θα είναι διαφορετική. Στην προσθήκη για παράδειγμα των κουμπάρων, εφόσον δεν μπορούμε να γνωρίζουμε πόσους κουμπάρους μπορεί να έχει ο κάθε γάμος, έπρεπε να βρεθεί ένας τρόπος η προσθήκη κουμπάρου να είναι εύκολη και για τον χρήστη αλλά και για την επεξεργασία από τον ιστότοπο. Αρχικά λοιπόν, χρησιμοποιήθηκε μία περιοχή text, στην οποία δίνονταν οι οδηγίες στον χρήστη, να γράψει τα ονόματα των κουμπάρων χωρίζοντάς τα με κόμμα (,). Με αυτό τον τρόπο όμως, εάν ο χρήστης δεν είχε διαβάσει τις οδηγίες, ή εάν από λάθος είχε προσθέσει κάποιο επιπλέον κόμμα (,) μέσα στο κείμενο των ονομάτων, τότε εμφανίζονταν προβλήματα στην εμφάνιση των κουμπάρων στην τελική ιστοσελίδα του χρήστη. Αυτό συνέβαινε διότι προγραμματιστικά, ο διαχωρισμός των ονομάτων γινόταν χωρίζοντας το κείμενο με βάση τα κόμματα (,) που υπάρχουν σε αυτό. Για την αποφυγή τέτοιων προβλημάτων, χρησιμοποιήθηκε η τεχνολογία της jquery, η οποία δημιουργεί νέα περιοχή text για κάθε κουμπάρο/α (δυναμικά από την πλευρά του πελάτη-client side) και έτσι ανάλογα με το πόσες περιοχές text έχει συμπληρώσει ο χρήστης, γνωρίζει το πρόγραμμα και πόσοι κουμπάροι

προστέθηκαν ώστε να τους εμφανίσει κατάλληλα σε κείμενο στην τελική ιστοσελίδα του χρήστη. Η τεχνολογία της JQuery χρησιμοποιήθηκε και στην επιλογή ημερομηνίας και ώρας γάμου στον οδηγό. Στα πεδία αυτά υπήρχε και πάλι το πρόβλημα της μορφής συμπλήρωσης. Επειδή ο τρόπος γραφής ημερομηνίας και ώρα ποικίλει, και για να παίρνει το πρόγραμμα τα στοιχεία πάντα στην ίδια μορφή, ώστε να μπορεί να τα χρησιμοποιήσει, εμφανίζεται στον χρήστη ένα παράθυρο για την κάθε περίπτωση στο οποίο ο χρήστης «επιλέγει» την ώρα και την ημερομηνία ανάλογα. Με αυτό τον τρόπο, και εφόσον η συγκεκριμένη φόρμα επιστρέφει τα στοιχεία σε συγκεκριμένη μορφή, δεν υπάρχει πρόβλημα στην αποθήκευση και στην επεξεργασία της ημερομηνίας και της ώρας γάμου. 5.3 Προτάσεις μελλοντικής εξέλιξης ή βελτίωσης Η εφαρμογή θα πρέπει να συνοδεύεται και από το κατάλληλο service, κατά το οποίο η εφαρμογή ενημερώνεται και διορθώνεται κατά καιρούς από τον δημιουργό της. Για παράδειγμα κάποιες μελλοντικές βελτιώσεις θα μπορούσαν να είναι οι εξής: Οι ιστοσελίδες των χρηστών, εφόσον το επιλέξουν, θα μπορούσαν να είναι και ανοιχτές προς προβολή για όλους. Εάν λοιπόν κάποιος χρήστης επιθυμεί η ιστοσελίδα του να επιτρέπει την πρόσβαση σε οποιονδήποτε, αψηφώντας τους κινδύνους που μπορεί να υπάρχουν, θα μπορούσε να του δίνεται και αυτή η δυνατότητα. Αυτή η επιλογή είναι πιο απλή από αυτή που υλοποιήθηκε στην εφαρμογή, όμως δεν χρησιμοποιήθηκε για λόγους που έχουν αναφερθεί προηγουμένως (βλ. Κεφάλαιο 3). Ακόμη θα μπορούσε να υπάρχει δυνατότητα στον χρήστη να δημιουργεί τα δικά του πεδία για την ιστοσελίδα του. Θα μπορούσε να προσθέτει κάποιο

πεδίο που έχει σκεφτεί το ζευγάρι και δε συμπεριλαμβάνεται στον οδηγό του ιστότοπου. Μία ακόμη μελλοντική εξέλιξη θα μπορούσε να είναι το ανέβασμα βίντεο, λειτουργία που δεν συμπεριλαμβάνεται στην υπάρχουσα εφαρμογή για λόγους χωρητικότητας. Ο χρήστης θα μπορούσε να ανεβάσει βίντεο για την κεντρική σελίδα του γάμου του αλλά και για κάποια ακόμη από τα επιπλέον πεδία της ιστοσελίδας του όμως είναι οι γονείς, οι κουμπάροι, τα bachelor parties. Τέλος, η εφαρμογή θα βελτιωνόταν, εάν σε περίπτωση αλλαγής ημερομηνίας ή ώρας γάμου, η εφαρμογή εντόπιζε την αλλαγή και έστελνε αυτόματα e-mail στους υπάρχοντες καλεσμένους της ιστοσελίδας, λέγοντάς τους να ελέγξουν ξανά τα στοιχεία γάμου διότι υπάρχουν αλλαγές στα στοιχεία.

Παράρτημα 1: ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Αρχική σελίδα Πρώτη επιλογή: Η ΕΠΙΧΕΙΡΗΣΗ Σε αυτή τη σελίδα εμφανίζονται γενικές πληροφορίες για το τυπογραφείο (φωτογραφίες, στοιχεία επικοινωνίας κ.λπ.).

Δεύτερη επιλογή: ΦΤΙΑΞΕ ΤΗΝ ΙΣΤΟΣΕΛΙΔΑ ΤΟΥ ΓΑΜΟΥ ΣΟΥ Εδώ μπορεί ο χρήστης να συνδεθεί στον ιστότοπο, να κάνει αίτηση εγγραφής εφόσον δεν έχει δημιουργήσει ακόμα προφίλ αλλά είναι πελάτης του τυπογραφείου, αλλά ακόμη και να κάνει αίτηση για υπενθύμιση του κωδικού του στο e-mail του εφόσον έχει ήδη λογαριασμό. Σε αυτή τη σελίδα εμφανίζεται η φόρμα για σύνδεση στον ιστότοπο. Σε περίπτωση που ο χρήστης δεν έχει δημιουργήσει ακόμα λογαριασμό, υπάρχει η επιλογή «Κάνε αίτηση εγγραφής». ΑΙΤΗΣΗ ΕΓΓΡΑΦΗΣ Εδώ ο πελάτης συμπληρώνει το όνομα που θέλει να εμφανίζεται στο προφίλ του και το e-mail που ήδη έχει δώσει στο τυπογραφείο για να τον προσθέσει ο διαχειριστής στη λίστα πελατών. Τέλος πατάει το πλήκτρο «Εγγραφή».

Η εφαρμογή εδώ ελέγχει αυτόματα εάν ο χρήστης είναι πελάτης και εφόσον είναι στέλνεται αυτόματα μήνυμα στο e-mail του με έναν τυχαίο κωδικό τον οποίο και θα χρησιμοποιεί ο χρήστης από την επόμενη φορά για να συνδεθεί. (Τον κωδικό αυτό μπορεί αργότερα να τον αλλάξει). Επίσης σε περίπτωση εύρεσης αλλά και μη εύρεσης του πελάτη εμφανίζεται το ανάλογο μήνυμα. ΥΠΕΝΘΥΜΙΣΗ ΚΩΔΙΚΟΥ Εδώ ο χρήστης εφόσον έχει ήδη λογαριασμό μπορεί να αιτηθεί για υπενθύμιση του κωδικού πρόσβασής του. Συμπληρώνει στο e-mail του στην φόρμα (το e-mail πρέπει να είναι το ίδιο με το οποίο έχει κάνει την εγγραφή του) και πατάει το κουμπί «Υπενθύμιση». Σε αυτό το σημείο η εφαρμογή αυτόματα βρίσκει τα στοιχεία προφίλ του συγκεκριμένου χρήστη και στέλνει e-mail στον χρήστη με τον κωδικό πρόσβασής του. Σε περίπτωση που βρεθεί ή που δε βρεθεί ο πελάτης εμφανίζεται το κατάλληλο μήνυμα.

ΕΠΙΛΟΓΕΣ ΕΓΓΕΓΡΑΜΕΝΟΥ ΧΡΗΣΤΗ ΕΙΣΟΔΟΣ Εφόσον ο χρήστης είναι ήδη εγγεγραμμένος στον ιστότοπο έχει το δικαίωμα να συνδεθεί σε αυτόν. Ο χρήστης σε αυτή τη σελίδα συμπληρώνει το e-mail του και τον κωδικό πρόσβασης που έχει και πατάει το κουμπί «Είσοδος». Εάν το χρήστης βρεθεί και τα στοιχεία του είναι σωστά μεταβαίνει στον οδηγό κατασκευής της ιστοσελίδας του.. Σε διαφορετική περίπτωση εμφανίζεται το κατάλληλο μήνυμα.

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

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

ΟΙ ΚΟΥΜΠΑΡΟΙ Εδώ ο χρήστης μπορεί να προσθέσει από έναν έως πέντε κουμπάρους. Πατώντας το κουμπί «προσθήκη» εμφανίζεται μια επιπλέον σειρά για να προσθέσει και άλλον κουμπάρο. Πατώντας το κουμπί «Αφαίρεση» διαγράφεται η συγκεκριμένη σειρά. ΔΕΞΙΩΣΗ Συμπλήρωση ή επιλογή μηνύματος πρόσκλησης προς την δεξίωση, τοποθεσία και τυχόν σχόλια για την δεξίωση που θα ακολουθήσει μετά τον γάμο. Τα σχόλια μπορεί να είναι κάτι που ίσως χρειαστεί να προσέξει ο καλεσμένος για την δεξίωση (για παράδειγμα να ντυθεί ζεστά γιατί η περιοχή έχει ιδιαίτερα χαμηλή θερμοκρασία) ή ακόμη και κάτι χιουμοριστικό.

ΛΙΣΤΑ ΓΑΜΟΥ Ο χρήστης έχει τη δυνατότητα να προσθέσει μέχρι πέντε λογαριασμούς σε τράπεζες και μέχρι πέντε καταστήματα για την λίστα γάμου. Με το κουμπί «Προσθήκη» μπορεί να προσθέσει καινούρια σειρά προς συμπλήρωση και με τα κουμπιά «Αφαίρεση» να διαγράψει όποια θέλει. Έπειτα πρέπει να πατήσει το κουμπί «Αποθήκευση».

ΠΩΣ ΓΝΩΡΙΣΤΗΚΑΜΕ Εδώ ο χρήστης γράφει ένα κείμενο για το πως γνωρίστηκε το μελλοντικό ανδρόγυνο. ΠΡΟΤΑΣΗ ΓΑΜΟΥ Εδώ ο χρήστης γράφει ένα κείμενο για την πρόταση γάμου.

BACHELOR PARTIES Ο χρήστης συμπληρώνει κείμενα πρόσκλησης για τα bachelor parties. ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ Επιλογή φωτογραφίας από τα αρχεία του υπολογιστή του χρήστη, συμπλήρωση σχόλιου φωτογραφίας και ανέβασμα αρχείου.

(συνέχεια από άλμπουμ φωτογραφιών) ΨΗΦΟΦΟΡΙΑ Ο χρήστης επιλέγει την ψηφοφορία που επιθυμεί (Ερώτηση και από 2 έως 4 απαντήσεις). Εδώ υπάρχει η δυνατότητα αναδιάταξης των απαντήσεων δηλαδή αν θέλει ως πρώτη επιλογή την τέταρτη, απλά την σέρνει με το ποντίκι και αλλάζει η σειρά. Ακόμη μπορεί να διαγράψει κάποια επιλογή απλά αφήνοντας το πεδίο της κενό.

ΒΙΒΛΙΟ ΚΑΛΕΣΜΕΝΩΝ Ο χρήστης επιλέγει εάν θα υπάρχει βιβλίο καλεσμένων στην ιστοσελίδα του ή όχι και κάνει κλικ στο κουμπί «Αποθήκευση». Σε περίπτωση που ο χρήστης επιλέξει να μην υπάρχει βιβλίο καλεσμένων, το συγκεκριμένο πεδίο δεν θα εμφανίζεται καθόλου στην ιστοσελίδα του. Διαφορετικά το βιβλίο καλεσμένων θα υπάρχει και όλοι οι καλεσμένοι του θα έχουν το δικαίωμα να γράψουν σε αυτό.

ΠΑΡΑΚΑΛΩ ΑΠΑΝΤΗΣΤΕ Ο χρήστης επιλέγει εάν θα υπάρχει Π.Α. καλεσμένων στην ιστοσελίδα του ή όχι. Το Π.Α. (Παρακαλώ απαντήστε) αναφέρεται στους καλεσμένους και τους δίνει την δυνατότητα να απαντήσουν για το αν θα παρευρεθούν ή όχι στην δεξίωση και στον γάμο.

ΕΠΙΚΟΙΝΩΝΙΑ Συμπλήρωση στοιχείων επικοινωνίας για τους καλεσμένους. Εκτός από τα πεδία που θα εμφανίζονται στην ιστοσελίδα γάμου. Οι υπόλοιπες δυνατότητες που έχει ο χρήστης παρουσιάζονται στη συνέχεια. ΣΤΟΙΧΕΙΑ ΠΡΟΦΙΛ Επεξεργασία των στοιχείων προφίλ του χρήστη. Εδώ εμφανίζονται τα στοιχεία του χρήστη (το όνομα, ο κωδικός και το e-mail που ισχύουν), για οποιαδήποτε αλλαγή, απλά ο χρήστης αλλάζει το πεδίο που επιθυμεί και κάνει κλικ στο κουμπί «Αποθήκευση».

ΘΕΜΑ Επιλογή εμφάνισης της ιστοσελίδας του χρήστη

ΚΑΛΕΣΜΕΝΟΙ Αρχικά ο χρήστης πρέπει να εισάγει έναν κωδικό για την ιστοσελίδα του κα να πατήσει το κουμπί «Αποθήκευση». Έπειτα πατώντας το κουμπί «Προσθήκη» εμφανίζεται νέα σειρά για εισαγωγή επιπλέον καλεσμένου και πατώντας το κουμπί «Αποστολή» στέλνεται e-mail στον καλεσμένο με τον κωδικό της ιστοσελίδας. Από κάτω εμφανίζονται οι ήδη υπάρχοντες καλεσμένοι. Πατώντας το κουμπί «Διαγραφή» διαγράφεται ο συγκεκριμένος πελάτης.

ΑΠΟΤΕΛΕΣΜΑΤΑ Εδώ ο χρήστης μπορεί ανά πάσα στιγμή να δει τα αποτελέσματα της ψηφοφορίας που έχει δημιουργήσει (φαίνεται ο τίτλος ψηφοφορίας και η κάθε επιλογή ξεχωριστά με τους ψήφους που έχει). Σε περίπτωση που ο χρήστης θέλει να κάνει αλλαγές στη ψηφοφορία του πρέπει να μεταφερθεί στο πεδίο «Ψηφοφορία» του οδηγού που εμφανίζεται αριστερά της σελίδας. Ακόμη σε αυτή τη σελίδα φαίνονται τα αποτελέσματα των Π.Α., δηλαδή πόσα άτομα μέχρι στιγμής έχουν υποβάλει απάντηση στο αν θα παρευρεθούν στον γάμο ή την δεξίωση.

Η ΙΣΤΟΣΕΛΙΔΑ ΜΟΥ Εδώ ο χρήστης βλέπει το αποτέλεσμα της ιστοσελίδας του ανά πάσα στιγμή ανάλογα με το θέμα που έχει επιλέξει. 1 ο θέμα 2 ο θέμα

3 ο θέμα Επάνω υπάρχει η επιλογή «επεξεργασία» η οποία γυρνά τον χρήστη πίσω στον «οδηγό». Αριστερά υπάρχουν οι καρτέλες που υπήρχαν και στον οδηγό οι οποίες εμφανίζουν το αποτέλεσμα με τα στοιχεία που έχει συμπληρώσει ο χρήστης, εφόσον τα έχει συμπληρώσει. Εάν κάποιο πεδίο δεν έχει συμπληρωθεί δεν εμφανίζεται καθόλου. Σημείωση: Για τις υπόλοιπες καρτέλες βλ. ΕΙΣΟΔΟΣ ΩΣ ΚΑΛΕΣΜΕΝΟΣ.

Τέλος σε κάθε περίπτωση εμφανίζονται οι επιλογές «Αρχική» και «Αποσύνδεση». «Αρχική»: Η εφαρμογή μεταβιβάζει τον χρήστη στην αρχική σελίδα. «Αποσύνδεση»: Έξοδος του χρήστη από το σύστημα. Τον μεταφέρει πάλι στην αρχική σελίδα χωρίς όμως πλέον να είσαι συνδεδεμένος στον ιστότοπο. ΕΠΙΛΟΓΕΣ ΔΙΑΧΕΙΡΙΣΤΗ

ΣΥΝΔΕΣΗ ΔΙΑΧΕΙΡΙΣΤΗ Ο διαχειριστής συνδέεται από το url που του έχει δοθεί από τον κατασκευαστή της εφαρμογής για λόγους ασφαλείας. Αφού έχει συμπληρώσει το όνομα και τον κωδικό πρόσβασης που του έχουν δοθεί από τον κατασκευαστή, πατώντας το κουμπί «είσοδος» μεταβαίνει στο προφίλ του διαχειριστή. Ο διαχειριστής μπορεί να κάνει οποιαδήποτε αλλαγή στα στοιχεία προφίλ του, σε ανάλογη σελίδα που φαίνεται παρακάτω. ΙΣΤΟΣΕΛΙΔΕΣ

Κάνοντας κλικ πάνω στο όνομα ζευγαριού κάποιου χρήστη, ο διαχειριστής μεταβαίνει στην συγκεκριμένη ιστοσελίδα γάμου χωρίς να χρειαστεί να υποβάλει επιπλέον στοιχεία. Κάνοντας κλικ στο κουμπί «Διαγραφή» που εμφανίζεται δίπλα από κάθε ιστοσελίδα, ο διαχειριστής διαγράφει ανενεργές ή ακατάλληλες ιστοσελίδες. ΧΡΗΣΤΕΣ Προσθήκη χρηστών. Πατώντας το κουμπί «προσθήκη» εμφανίζεται νέα σειρά για προσθήκη πελάτη. Ο διαχειριστής μπορεί να προσθέσει όσους πελάτες επιθυμεί και να τους αποθηκεύσει όλους μαζί. Κάτω από την προσθήκη πελατών, εμφανίζονται οι ήδη υπάρχοντες πελάτες. Σε κάθε αποθηκευμένο πελάτη εμφανίζεται το κουμπί «Αφαίρεση», με το οποίο ο διαχειριστής μπορεί να διαγράψει οποιονδήποτε χρήστη επιθυμεί.

ΡΥΘΜΙΣΕΙΣ Εδώ ο βρίσκεται η διαχείριση των πεδίων της εφαρμογής. Κάνοντας κλικ στο κουμπί «Αλλαγή» εάν το συγκεκριμένο πεδίο εμφανίζεται αυτή τη στιγμή στους πελάτες και τους καλεσμένους το διαγράφει, ενώ εάν είναι ήδη διαγραμμένο το επαναφέρει. Το ίδιο συμβαίνει και με τα θέματα που έχει την δυνατότητα να επιλέξει ο πελάτης.

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

Τρίτη επιλογή: ΙΣΤΟΣΕΛΙΔΕΣ ΓΑΜΟΥ Εδώ οποιοσδήποτε χρήστης μπορεί να δει την λίστα με τις ήδη υπάρχουσες ιστοσελίδες γάμου χρηστών. Δεν μπορεί όμως να εμφανίσει τις ιστοσελίδες οποιοσδήποτε παρά μόνο αν είναι καλεσμένος τους. Από την κεντρική σελίδα ο καλεσμένος κάνει κλικ στην 3 η επιλογή (ΙΣΤΟΣΕΛΙΔΕΣ ΓΑΜΟΥ). Κάνοντας κλικ σε κάποια ιστοσελίδα μεταβαίνει στην είσοδο καλεσμένου.

ΕΙΣΟΔΟΣ ΚΑΛΕΣΜΕΝΟΥ Εάν τα στοιχεία που συμπληρώθηκαν είναι σωστά και ο χρήστης που προσπαθεί να μεταβεί σε κάποια ιστοσελίδα είναι καλεσμένος της συγκεκριμένης ιστοσελίδας γάμου, τότε εισέρχεται στον ιστότοπο και μπορεί πλέον να δει την ιστοσελίδα του γάμου που προσκαλέστηκε. Διαφορετικά εμφανίζεται κατάλληλο μήνυμα

Κεντρική σελίδα γάμου ΚΑΡΤΕΛΕΣ Ο ΓΑΜΟΣ

ΓΟΝΕΙΣ & ΚΟΥΜΠΑΡΟΙ ΔΕΞΙΩΣΗ

ΟΔΗΓΙΕΣ ΛΙΣΤΑ ΓΑΜΟΥ

ΠΩΣ ΓΝΩΡΙΣΤΗΚΑΜΕ ΠΡΟΤΑΣΗ ΓΑΜΟΥ