ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΔΙΑΚΥΒΕΡΝΗΣΗΣ ΓΙΑ ΤΗΝ ΔΙΑΔΙΚΤΥΑΚΗ ΣΥΝΕΔΡΙΑΣΗ ΣΥΛΛΟΓΙΚΩΝ ΟΡΓΑΝΩΝ, ΜΕ ΧΡΗΣΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ MYSQL ΚΑΙ ΤΩΝ ΓΛΩΣΣΩΝ HTML ΚΑΙ PHP. Στυρινού Γιώργος Δεκέμβριος 2007 ΕΠΟΠΤΗΣ ΚΑΘΗΓΗΤΗΣ Βσίλειος Χτζής
Πρόλογος Ολοκληρώνοντς τις σπουδές μου στο τμήμ Διχείρισης Πληροφοριών κι συγκεκριμέν πρκολουθώντς τ μθήμτ διχείριση πληροφοριών στο διδίκτυο, διχείριση βάσεων δεδομένων στο διδίκτυο κι τ μθήμτ προγρμμτισμού προέκυψε το ενδιφέρον μου γι τέτοιου είδους εφρμογές. Θέλω ν ευχριστήσω τον κθηγητή μου κ. Βσίλειο Χτζή που εισηγήθηκε το θέμ της πτυχικής μου εργσίς κι γι την πολύ κλή συνεργσί που είχμε όλο υτό το διάστημ. Επίσης θέλω ν ευχριστήσω την γρμμτεί γι τις πληροφορίες που μου έδωσε σχετικά με την πτυχική εργσί. Έν μεγάλο ευχριστώ στους γονείς μου που με βοήθησ κι με στήριξν γι ν φτάσω σε υτό το σημείο.
Περιεχόμεν 1 Εργλεί κι γλώσσες...1 Εισγωγή...1 1.1 Τι είνι η PHP...1 1.1.1 Επεκτάσεις ρχείων κι δικομιστές.1 1.1.2 Ιστορί της PHP 2 1.1.3 Πλεονεκτήμτ PHP.3 1.1.4 Πράδειγμ κώδικ PHP.3 1.1.5 Μετβλητές...4 1.2 MySQL.5 1.2.1 Πλεονεκτήμτ MySQL 5 1.3 MySQL Query Browser..6 1.3.1 Το κεντρικό πράθυρο των ιτημάτων κι οι διάφοροι τομείς..6 1.4 Apache Http server..9 1.4.1 Ιστορί Apache 9 2 Ανάλυση εφρμογής.....11 Εισγωγή..11 2.1 Αντικείμεν.11 2.1.1 Όργν..11 2.1.2 Πράξη..12 2.1.3 Θέμ 12 2.1.4 Σχετικό 12 2.1.5 Χρηστές..12 2.2 Αρμοδιότητες χρηστών.13 2.2.1 Πρόεδρος... 13 2.2.2 Μέλη 13 2.2.3 Πρτηρητές..13 2.2.4 Γρμμτεί.14 3 Σχεδισμός βάσης δεδομένων...15 3.1 Τι είνι βάση δεδομένων..15 3.2 Σχέσεις Δεδομένων (Έν-Προς-Έν κι Έν-Προς-Πολλά)..15 3.3 Σχέσεις πινάκων της εφρμογής...17
3.4 Ανάλυση Πινάκων. 18 3.4.1 Πίνκς members.18 3.4.2 Πίνκς vathmos..19 3.4.3 Πίνκς secretaries..19 3.4.4 Πίνκς coyncil_type...20 3.4.5 Πίνκς act....20 3.4.6 Πίνκς subjects...21 3.4.7 Πίνκς relevant_doc...22 3.4.8 Πίνκς standar_relevant....22 3.4.9 Πίνκς sub_relevant_doc..23 3.4.10 Πίνκς council_members 23 3.4.11 Πίνκς council...24 3.4.12 Πίνκς sub_mem.24 3.4.13 Πίνκς proposals..25 3.4.14 Πίνκς forum_proposals..25 3.4.15 Πίνκς votes..26 4 Περιγρφή εφρμογής..27 4.1 Είσοδος στην εφρμογή...27 4.2 Είσοδος γρμμτείς....27 4.2.1 Εγγρφή χρηστών 28 4.2.3 Δημιουργί οργάνου.29 4.2.4 Δημιουργί πράξης...30 4.2.5 Εισγωγή θεμάτων...31 4.2.6 Εισγωγή σχετικού...32 4.2.7 Εκτύπωση πρκτικών..34 4.2.8 Εκτύπωση πρόσκλησης.35 4.2.9 Εκτύπωση ποσπάσμτος. 37 4.2.10 Εκτύπωση άλλων πρκτικών... 39 4.2.11 Προεπισκόπηση πράξης... 39 4.2.12 Άλλες εργσίες...41 4.3 Είσοδος χρηστών εφρμογής (πρόεδρος, μέλος, πρτηρητής).42 4.3.1 Ένρξη της πράξης...... 42
4.3.2 Συζήτηση.45 4.3.3 Κτάθεση πρότσης.46 4.3.4 Ένρξη της ψηφοφορίς..46 4.3.5 Ψηφοφορί.47 Συμπεράσμτ. 48 Βιβλιογρφί...49
Εισγωγή Γνωρίζοντς γι τις πολλές δυντότητες που προσφέρουν ο συνδυσμός της γλώσσς PHP, το σύστημ διχείρισης βάσεων δεδομένων Mysql, κι ο Apache web server θ τ χρησιμοποιήσουμε γι ν σχεδιάσουμε κι ν νπτύξουμε μι εφρμογή ηλεκτρονικής δικυβέρνησης των συλλογικών οργάνων της Διχείρισης Πληροφοριών. Ανλυτική περιγρφή των εργλείων κι γλωσσών που χρησιμοποιούντι γίνετι στο κεφλίο 1. Στο κεφλίο 2 γίνετι νάλυση της εφρμογής κι πως έγινε ο σχεδισμός της. Στην ρχή βρήκμε ποι είνι τ συλλογικά όργν του τμήμτος διχείρισης πληροφοριών κι στην συνεχεί τ άτομ που συμμετέχουν σε κάθε όργνο. Χωρίσμε τ άτομ σε κτηγορίες το πρόεδρο, τ μέλη κι τους πρτηρητές. Μετά βρήκμε τις ρμοδιότητες κάθε κτηγορίς. Τ άτομ υτά όπως κι η γρμμτεί είνι οι χρηστές της εφρμογής. Στο κεφλίο 3 έχουμε τον σχεδισμό της βάσης δεδομένων που θ χρειστούμε γι ν κρτάμε τ δεδομέν κι ν νκτούμε πληροφορίες κάνοντς ερωτήμτ κι τις σχέσεις που υπάρχουν νάμεσ στους πίνκες. Επίσης γίνετι περιγρφή του κάθε πίνκ κι γιτί έχει δημιουργηθεί. Στο τελευτίο κεφάλιο έχουμε περιγρφή της εφρμογής κι του τρόπου που χρησιμοποιείτι. Επίσης προυσιάζοντι κάποι πρδείγμτ.
Κεφάλιο 1 Εργλεί κι γλώσσες Εισγωγή Τ εργλεί κι οι γλώσσες που χρησιμοποιήθηκν γι τη νάπτυξη της πτυχικής εργσίς είνι o Apache Http Server, η mysql γι την δημιουργί της βάσης δεδομένων, η Php κι έν βοηθητικό εργλείο το MySQL Query Browser. Στην συνέχει γίνετι περιγρφή των εργλείων κι γλωσσών. 1.1 Τι είνι η PHP; Η PHP είνι μι γλώσσ προγρμμτισμού που σχεδιάστηκε γι τη δημιουργί δυνμικών σελίδων στο διδίκτυο κι είνι επισήμως γνωστή ως: Hypertext preprocessor. Είνι μι server-side (εκτελείτε στον δικομιστή ) scripting γλώσσ που γράφετι συνήθως πλισιωμένη πό HTML, γι μορφοποίηση των ποτελεσμάτων. Αντίθετ πό μι συνηθισμένη HTML σελίδ η σελίδ PHP δεν στέλνετι άμεσ σε ένν πελάτη (client), ντ' υτού πρώτ νλύετι κι μετά ποστέλλετι το πργόμενο ποτέλεσμ. Τ στοιχεί HTML στον πηγίο κώδικ μένουν ως έχουν, λλά ο PHP κώδικς ερμηνεύετι κι εκτελείτι. Ο κώδικς PHP μπορεί ν θέσει ερωτήμτ σε βάσεις δεδομένων, ν δημιουργήσει εικόνες, ν διβάσει κι ν γράψει ρχεί, ν συνδεθεί με πομκρυσμένους υπολογιστές, κ.ο.κ. Σε γενικές γρμμές οι δυντότητες που μς δίνει είνι περιόριστες (1). 1.1.1 Επεκτάσεις ρχείων κι δικομιστές Έν ρχείο με κώδικ PHP θ πρέπει ν έχει την κτάλληλη επέκτση (π.χ. *.php, *.php4, *.phtml κ.ά.). Η ενσωμάτωση κώδικ σε έν ρχείο επέκτσης.html δεν θ λειτουργήσει κι θ εμφνίσει στον browser τον κώδικ χωρίς κμί επεξεργσί, εκτός ν έχει γίνει η κτάλληλη ρύθμιση στ MIME types του server. Επίσης κόμη κι ότν έν ρχείο έχει την επέκτση.php, θ πρέπει ο server ν είνι ρυθμισμένος γι ν επεξεργάζετι κώδικ PHP. Ο δικομιστής Apache, που χρησιμοποιείτι Σελίδ 1 πό 49
σήμερ ευρέως σε συστήμτ με τ λειτουργικά συστήμτ Linux κι Microsoft Windows, υποστηρίζει εξ ορισμού επεξεργσί κώδικ PHP.(2) 1.1.2 Ιστορί της PHP Η ιστορί της PHP ξεκινά πό το 1995, ότν ένς φοιτητής, ο Rasmus Lerdorf δημιούργησε χρησιμοποιώντς τη γλώσσ προγρμμτισμού Perl έν πλό script με όνομ php.cgi, γι προσωπική χρήση. Το script υτό είχε σν σκοπό ν διτηρεί μι λίστ σττιστικών γι τ άτομ που έβλεπν το online βιογρφικό του σημείωμ. Αργότερ υτό το script το διέθεσε κι σε φίλους του, οι οποίοι άρχισν ν του ζητούν ν προσθέσει περισσότερες δυντότητες. Η γλώσσ τότε ονομζότν PHP/FI πό τ ρχικά Personal Home Page/Form Interpreter. Το 1997 η PHP/FI έφθσε στην έκδοση 2.0, βσιζόμενη υτή τη φορά στη γλώσσ C κι ριθμώντς περισσότερους πό 50.000 ιστότοπους που τη χρησιμοποιούσν, ενώ ργότερ την ίδι χρονιά οι Andi Gutmans κι Zeev Suraski ξνέγρψν τη γλώσσ πό την ρχή, βσιζόμενοι όμως ρκετά στην PHP/FI 2.0. Έτσι η PHP έφθσε στην έκδοση 3.0 η οποί θύμιζε περισσότερο τη σημερινή μορφή της. Στη συνέχει, οι Zeev κι Andi δημιούργησν την ετιρεί Zend (πό τ ρχικά των ονομάτων τους), η οποί συνεχίζει μέχρι κι σήμερ την νάπτυξη κι εξέλιξη της γλώσσς PHP. Ακολούθησε το 1998 η έκδοση 4 της PHP, τον Ιούλιο του 2004 διτέθηκε η έκδοση 5, ενώ υτή τη στιγμή έχουν ήδη διτεθεί κι οι πρώτες δοκιμστικές εκδόσεις της επερχόμενης PHP 6, γι οποιονδήποτε προγρμμτιστή θέλει ν τη χρησιμοποιήσει. Οι περισσότεροι ιστότοποι επί του πρόντος χρησιμοποιούν κυρίως τις εκδόσεις 4 κι 5 της PHP Σήμερ περισσότερ πό 16.000.000 web sites, ποσοστό μεγλύτερο πό το 35% των ιστοσελίδων του Διδικτύου, χρησιμοποιούν scripts γρμμέν με τη γλώσσ PHP, ενώ το υπόλοιπο 65% το μοιράζοντι σττικές σελίδες HTML κι όλες οι άλλες γλώσσες προγρμμτισμού. Πρόκειτι γι μι εξέλιξη που ο ίδιος ο Rasmus Lerdorf σε πρόσφτη συνέντευξή του δήλωσε ότι δεν περίμενε ότν, πριν πό 10 χρόνι, δημιουργούσε τις πρώτες γρμμές κώδικ PHP. Τόνισε όμως ότι η PHP Σελίδ 2 πό 49
δεν θ είχε γίνει τόσο δημοφιλής ν η εξέλιξή της είχε πρμείνει προσωπική του προσπάθει κι δεν είχε βοηθηθεί πό τους Andi Gutmans, Zeev Suraski κι την εθελοντική συμμετοχή προγρμμτιστών πό ολόκληρο τον κόσμο. Τ περισσότερ web sites επί του πρόντος χρησιμοποιούν κυρίως τις εκδόσεις 4 κι 5 της PHP.(2) 1.1.3 Πλεονεκτήμτ PHP Υψηλή πόδοση Δισυνδέσεις με πολλά διφορετικά συστήμτ βάσεων δεδομένων Ενσωμτωμένες βιβλιοθήκες γι πολλές συνηθισμένες Web διδικσίες Χμηλό κόστος Ευκολί μάθησης κι χρήσης Μετφερσιμότητ Διθεσιμότητ του κώδικ προέλευσης (Γκιουρδς, 2002: 4-6). 1.1.4 Πράδειγμ κώδικ PHP Ο κώδικς PHP μις ιστοσελίδς περικλείετι πό τ tags <?php κι?> Την πεικόνιση κειμένου νλμβάνουν οι εντολές print ή echo. Γι πράδειγμ, ο κόλουθος κώδικς PHP: <?php print "Hello world!";?> Θ εμφνίσει στο πρόγρμμ περιήγησης των επισκεπτών τη φράση: Hello world! Σελίδ 3 πό 49
Μερικοί κόμη τρόποι γι ν εμφνίσετε τη φράση "Hello world" είνι οι εξής: <?php echo("hello world!");?> ή <?php echo "Hello world!";?> Επίσης, ντί γι διπλά εισγωγικά, μπορούμε ν χρησιμοποιήσουμε μονά. <?php print 'Hello world!';?> 1.1.5 Μετβλητές Όπως οι περισσότερες γλώσσες προγρμμτισμού, έτσι κι η PHP υποστηρίζει μετβλητές. Στην PHP οι μετβλητές φέρουν ως πρόθεμ τον χρκτήρ του δολρίου ($). Έν πολύ πλό πράδειγμ όπου ορίζετι η τιμή μις μετβλητής κι στη συνέχει πεικονίζετι στον browser των επισκεπτών, είνι το εξής: <?php $text = "Κλημέρ!"; print $text;?> Σελίδ 4 πό 49
Η εκτέλεση του πρπάνω κώδικ θ εμφνίσει το περιεχόμενο της μετβλητής $text, δηλδή τη φράση: Κλημέρ! (4) 1.2 MySQL Η MySQL είνι έν πολύ γρήγορο κι δυντό, σύστημ διχείρισης βάσεων δεδομένων. Μι βάση δεδομένων σς επιτρέπει ν ποθηκεύετε, ν νζητάτε, ν τξινομείτε κι ν νκλείτε τ δεδομέν ποτελεσμτικά. Ο MySQL δικομιστής ελέγχει την πρόσβση στ δεδομέν σς, γι ν μπορούν ν δουλεύουν πολλοί χρήστες τυτόχρον, γι ν πρέχει γρήγορη πρόσβση κι ν δισφλίζει ότι μόνο πιστοποιημένοι χρήστες μπορούν ν έχουν πρόσβση. Συνεπώς η MySQL είνι ένς πολυνημτικός δικομιστής πολλπλών χρηστών. Χρησιμοποιεί την SQL ( Structured Query Language ) την τυπική γλώσσ ερωτημάτων γι βάσεις δεδομένων, πγκόσμι (4). 1.2.1 Πλεονεκτήμτ MySQL Απόδοση. Η MySQL είνι χωρίς μφιβολί γρήγορη. Μπορείτε ν δείτε την σελίδ δοκιμών στο http://web.mysql.com/benchmark.html. Πολλές πό υτές τις δοκιμές δείχνουν ότι η Mysql είνι ρκετά πιο γρήγορη πό τον ντγωνισμό. Χμηλό κόστος. Η Mysql είνι διθέσιμη δωρεάν, με άδει νοικτού κώδικ ή με χμηλό κόστος, ν πάρετε εμπορική άδει, ν πιτείτι πό την εφρμογή σς. Ευκολί χρήσης Οι περισσότερες μοντέρνες βάσεις δεδομένων χρησιμοποιούν SQL. Αν έχετε χρησιμοποιήσει έν άλλο σύστημ διχείρισης βάσεων δεδομένων, δεν θ πρέπει ν έχετε πρόβλημ Σελίδ 5 πό 49
ν προσρμοστείτε σε υτό. Η Mysql είνι επίσης ευκολότερη πό πρόμοι προϊόντ. Μετφερσιμότητ H Mysql μπορεί ν χρησιμοποιηθεί σε πολλά διφορετικά συστήμτ UNIX, όπως επίσης κι στ Windows. Κώδικς Προέλευσης. Όπως κι με την PHP, μπορείτε ν πάρετε κι ν τροποποιήσετε τον κώδικ προέλευσης της Mysql (4). 1.3 MySQL Query Browser Ο MySQL Query Browser είνι έν γρφικό εργλείο, το οποίο πρέχετι πό την MySQL AB, γι την δημιουργί, εκτέλεση κι βελτιστοποίηση ιτημάτων σε γρφικό περιβάλλον. Ενώ ο MySQL Administrator έχει σχεδιστεί γι την διχείριση ενός MySQL εξυπηρετητή, ο MySQL Query Browser έχει σχεδιστεί γι ν σς βοηθήσει ν θέτετε ιτήμτ κι ν νλύετε δεδομέν, τ οποί είνι ποθηκευμέν στην MySQL βάση δεδομένων σς. Ενώ όλ τ ιτήμτ, που μπορούν ν εκτελεστούν με τον MySQL Query Browser, μπορούν επίσης ν εκτελεστούν με την εφρμογή γρμμής εντολών mysql, ο MySQL Query Browser επιτρέπει την υποβολή ιτημάτων κι την επεξεργσί των δεδομένων με έν πιο διισθητικό, γρφικό τρόπο. Ο MySQL Query Browser είνι σχεδισμένος, ώστε ν συνεργάζετι με τις εκδόσεις 4.0 κι άνω της MySQL(5). 1.3.1 Το κεντρικό πράθυρο των ιτημάτων κι οι διάφοροι τομείς Ότν συνδεθείτε επιτυχώς με ένν MySQL εξυπηρετητή, εμφνίζετι το κεντρικό πράθυρο ιτημάτων του MySQL Query Browser. Όλες οι λειτουργίες της εφρμογής είνι προσβάσιμες πό υτό το πράθυρο, όπως φίνετι στην εικόν 1. Σελίδ 6 πό 49
Η Γρμμή Εργλείων των Αιτημάτων: Η Γρμμή Εργλείων των Αιτημάτων είνι το μέρος όπου δημιουργείτε κι εκτελείτε τ ιτήμτ. Αποτελείτι πό τρί κουμπιά πλοήγησης (Προηγούμ., Επόμενο, Αννέωση), την περιοχή του ιτήμτος, δύο κουμπιά ενεργειών (Εκτέλεση κι Δικοπή), κι μι ένδειξη της τρέχουσς κτάστσης. Η Γρμμή Εργλείων Ειδικών Επιλογών: Η Γρμμή Εργλείων Ειδικών Επιλογών περιέχει τρί σύνολ κουμπιών: τ κουμπιά Συνλλγών (Start, Commit, Rollback), τ κουμπιά διχείρισης των ιτημάτων (Επεξήγηση, Σύγκριση), κι τ κουμπιά κτσκευής ιτημάτων (Select, From, Where, κτλ.) Η Περιοχή των Αποτελεσμάτων: Όλ τ ποτελέσμτ των ιτημάτων εμφνίζοντι στην Περιοχή των Αποτελεσμάτων. Πολλές κρτέλες μπορούν ν είνι ενεργές τυτόχρον, δίνοντς σς έτσι την ευκιρί ν εργάζεστε σε πολλά ιτήμτ. Η περιοχή των ποτελεσμάτων μπορεί ν χωριστεί οριζοντίως κι κθέτως, γι ν προβείτε σε συγκρίσεις. Επίσης τ ιτήμτ, τ οποί βρίσκοντι στην ίδι διχωρισμένη περιοχή, μπορούν ν συνδεθούν μετξύ τους γι νάλυση κυρίου/υποκείμενου συνδεδεμένων ιτημάτων (master/detail). Το Ευρετήριο των Αντικειμένων: Το Ευρετήριο των Αντικειμένων είνι μέρος της πλευρικής στήλης κι επιτρέπει την διχείριση των βάσεων δεδομένων, σελιδοδεικτών (bookmarks), κι του ιστορικού. Μπορείτε ν επιλέξετε σε ποι βάση δεδομένων κι πίνκ ν θέσετε ιτήμτ, ν προσθέσετε τ ιτήμτ που χρησιμοποιείτε συνήθως σε μι συλλογή πό σελιδοδείκτες, ν δείτε τ προηγούμεν ιτήμτ, τ οποί είχτε θέσει, κι ν τ χρησιμοποιήσετε πάλι. Το Ευρετήριο των Πληροφοριών: Το Ευρετήριο Πληροφοριών είνι μέρος της πλευρικής στήλης κι χρησιμοποιείτι γι ν βρίσκετε Σελίδ 7 πό 49
built-in functions κι γι την διχείριση ιτημάτων, τ οποί περιέχουν πρμέτρους. Έν πράδειγμ είνι έν ζεύγος κύριου/υποκείμενου συνδεδεμένων ιτημάτων (master/detail). Τ δεδομέν στο κύριο ίτημ είνι διθέσιμ ως πράμετροι στο υποκείμενο ίτημ. Οι περισσότεροι πό υτούς τους τομείς μπορούν ν εμφνίζοντι κι ν ποκρύπτοντι, χρησιμοποιώντς το μενού Προβολή, τσεκάροντς κι ξετσεκάροντς τ στοιχεί τ οποί θέλετε ν εμφνίζοντι (5). Εικόν 1 Το κεντρικό πράθυρο των ιτημάτων Σελίδ 8 πό 49
1.4 Apache Http server Ο Apache HTTP server, συνήθως κλούμενος πλά Apache, είνι ένς κεντρικός υπολογιστής δικτύου που διδρμάτισε έν ξεχωριστό ρόλο στην ρχική ύξηση του World Wide Web. Ο Apache ήτν η πρώτη ενλλκτική λύση server γι την ετιρεί επικοινωνιών Netscape (υτήν την περίοδο είνι γνωστός ως Sun Java System Web Server ), κι έχει εξελιχθεί βθμιί πό τότε γι ν ντγωνιστεί άλλους εξυπηρετητές βσισμένους σε Unix πό άποψη πόδοσης κι λειτουργικότητς. Από το Απρίλιο 1996 ο Apache έχει κθιερωθεί ο πιο δημοφιλής HTTP εξυπηρετητής στο διάδικο, εντούτοις πό το Μάρτιο του 2006 χάνει έν μερίδιο γοράς πένντι στην υπηρεσί της Microsoft Internet Information Services κι της πλτφόρμς.νετ. Από το Οκτώβριο του 2007 o Apache εξυπηρετεί το 47,5% όλων των ιστοσελίδων. Το όνομ της μελέτη επιλέχθηκε γι 2 λογούς : πό σεβσμό της εγγενούς φυλής της Αμερικής την Ινδική φυλή των Apache, που ήτν γνωστοί γι την ντοχή κι τις ικνότητες τους σε διμάχες κι λόγω του ότι οι ρίζες της μελέτης που ήτν έν τετ διορθώσεων του βσικού κώδικ του NCSA Http 1.3. δημιουργήθηκε ο εξυπηρετητής "a patchy". Ο Apache νπτύσσετι κι διτηρείτι πό μι νοικτή κοινότητ προγρμμτιστών κάτω πό την ιγίδ του ιδρύμτος Apache Software Foundation. Η εφρμογή είνι διθέσιμη γι ποικιλί λειτουργικών συστημάτων συμπεριλμβνομένων των Microsoft Windows, Novell NetWare and Unix συστημάτων όπως FreeBSD, Linux, Solaris and Mac OS X. Διτίθετι κάτω πό την άδει Apache, είνι ελεύθερο λογισμικό/ λογισμικό νοικτού κώδικ. 1.4.1 Ιστορί Apache Η πρώτη έκδοση του Apache web server έχει δημιουργηθεί πό το Robert McCool που είχε νμιχθεί με το Διεθνές κέντρο γι Supercomputing Applications web server γνωστή ως NCSA Http. Ότν ο Rob άφησε την NCSA στ μέσ το 1994 η νάπτυξη του http χρονοτριβείτε, φήνει Σελίδ 9 πό 49
ποικιλί μπλωμάτων γι την νάπτυξη του που κυκλοφορούν μέσω emails. Η έκδοση 2 του Apache ήτν πργμτικά μι νεγράφη ενός μεγάλου μέρους του κώδικ Apache 1.x, με μι ισχυρή εστίση στην περιτέρω ρύθμιση κι την νάπτυξη ενός στρώμτος φορητότητς, Apache Portable Runtime. Ο 2.x πυρήνς Apache έχει διάφορες σημντικές υξήσεις πέρ πό τον Apache 1.x. Αυτή περιλμβάνει Unix threading, γι την κλύτερη υποστήριξη πό πλτφόρμες όχι Unix (όπως Microsoft Windows), έν νέο Apache API, κι υποστήριξη IPv6. H πρώτη άλφ έκδοση Apache 2 ήτν Μρτίου 2000, με την πρώτη κνονική έκδοση στις 6 Απριλίου 2002. Η εκδοση 2,2 εισήγγε μι νέ εξουσιοδότηση API που επιτρέπει περισσότερη ευελιξί. Χρκτηρίζετι πό βελτιωμενες cache modules κι proxy modules Σελίδ 10 πό 49
Κεφλίο 2 Ανάλυση εφρμογής Εισγωγή Το πρόβλημ που είχμε ν ντιμετωπίσουμε ήτν η νπράστση/πεικόνιση της συνεδρίσης των συλλογικών οργάνων της Διχείρισης Πληροφοριών στο διάδικτυο. Θ προσπθήσουμε ν νπτύξουμε μι εφρμογή που θ δίνει την δυντότητ στ μέλη των συλλογικών οργάνων ν συμμετέχουν στην συζήτηση, ν κτθέτουν προτάσεις κι ν ψηφίζουν. Δηλδή ν έχουν όλες τις δυντότητες που θ είχν ν συνεδρίζν σε μι ίθουσ. Η μι διφορά είνι ότι θ γίνοντι ηλεκτρονικά οι πρπάνω ενέργειες κι θ έχουν μεγλύτερη διάρκει η συνεδριάσεις γι ν δίνετι η ευκιρί στ μέλη ν συμμετέχουν. Με υτό το τρόπο θ έχουμε συμμετοχή όλων των μελών κι δεν θ υπάρχουν πόντες λόγω άλλων εργσιών φού θ μπορούν ν συμμετέχουν κι πό το σπίτι τους. Γι ν προχωρήσουμε στην νάπτυξη υτής της εφρμογής χρειάζετι ν βρούμε τ ντικείμεν που εμπλέκοντι σε μι συνεδρίση πριν κτά την διάρκει κι μετά κι ν βρούμε τις ιδιότητες γι το κθέν. 2.1 Αντικείμεν Τ ντικείμεν που συμμετέχουν σε μι συνεδρίση είνι οι χρηστές της εφρμογής που είνι τ μέλη της συνεδρίσης, η γρμμτεί, οι πράξεις, τ θέμτ, τ σχετικά κι τ όργν. Οι χρηστές χωρίζοντι σε 4 κτηγορίες το πρόεδρο, τ μέλη, τους πρτηρητές που είνι κτά μέλη κάθε συνεδρίσης κι έχουμε κι την γρμμτεί. 2.1.1 Όργν Τ συλλογικά όργν της Διχείρισης Πληροφοριών είνι τέσσερ, το συμβούλιο τμήμτος, η γενική συνέλευση τομές πληροφορικής, η γενική συνέλευση τομές διοίκησης κι συνφούς υποδομής κι η γενική συνέλευση. Στο συμβούλιο τμήμτος συμμετέχουν οι προϊστάμενοι των Σελίδ 11 πό 49
τομέων, εκπρόσωποι σπουδστών κι ο προϊστάμενος του τμήμτος. Στην γενική συνέλευση τομές συμμετέχουν μέλη του εκπιδευτικού προσωπικού, ο προϊστάμενος του τομές κι εκπρόσωποι σπουδστών. Στην γενική συνέλευση συμμετέχει ο προϊστάμενος του τμήμτος, μέλη του εκπιδευτικού προσωπικού κι εκπρόσωποι σπουδστών. Η ιδιότητ που έχει το κάθε όργνο είνι η περιγρφή του που θ την έχουμε σε έν πίνκ κι με έν id θ γίνετι συσχέτιση με άλλους πίνκες. 2.1.2 Πράξη H Πράξη είνι Επίσης έν ντικείμενο που έχει τις εξής Ιδιότητες: ριθμό πράξης, ημερομηνί ένρξης, ν είνι έκτκτη ή τκτική συνεδρίση κι το όργνο που νήκει η Πράξη. Επίσης περιέχει τ θέμτ που είνι κι υτά με την σειρά τους ντικείμεν. 2.1.3 Θέμ Tο θέμ έχει τις εξής Ιδιότητες ριθμό θέμτος, τίτλο κι έν κείμενο. Ο ριθμός θέμτος ρχίζει πό το έν γι κάθε κινούρι Πράξη. Το κείμενο που μπορεί ν είνι μι διευκρίνηση γι το τίτλο. Κάθε θέμ έχει σχετικά που είνι κι υτά ντικείμεν. 2.1.4 Σχετικό Το σχετικό έχει τίτλο κι έν κείμενο που θ περιέχει το κείμενο του σχετικού. 2.1.5 Χρηστές Ο χρηστές είνι ντικείμενο γι την εφρμογή. Ιδιότητες τους είνι το όνομ, επίθετο, η βθμίδ τους, το τηλέφωνο, έν email,το username κι το password γι ν έχουν πρόσβση. Γι ν μπορείς ν κνείς χρήση της εφρμογής κι ν λάβεις μέρος σε μι συνεδρίση πρέπει ν επικοινωνήσεις με την γρμμτεί γι ν γίνει εγγρφή του. Σελίδ 12 πό 49
2.2 Αρμοδιότητες χρηστών Οι χρήστες της εφρμογής έχουν διφορετικές ρμοδιότητες σε κάθε όργνο που νήκουν, εκτός πό την γρμμτεί που δεν λλάζουν οι εργσίες της κι δεν νήκει σε κάποιο όργνο. 2.2.1 Πρόεδρος Ο πρόεδρος του οργάνου είνι κι υτός ένς χρηστής που έχει περισσότερες ρμοδιότητες πό τ υπόλοιπ μέλη. Μι κυρί ρμοδιότητ του είνι ν κάνει ένρξη κι λήξη της πράξης. Ότν γίνει ένρξη τότε τ υπόλοιπ μέλη μπορούν ν δουν τ θέμτ προς συζήτηση. Επίσης θ κθορίσει το διάστημ που θ δοθεί γι συζήτηση των θεμάτων κι γι ν κτθέσουν τ μέλη τις προτάσεις τους. Άλλη μι ρμοδιότητ του προέδρου είνι ν κάνει την ένρξη της ψηφοφορίς κι λήξη της γι το κάθε θέμ. Έχει την δυντότητ ν λάβει μέρος στην συζήτηση κι ν κτάθεση μι πρότση γι κάθε θέμ. Επίσης ψηφίζει μι πρότση γι κάθε θέμ 2.2.2 Μέλη Το μέλη του οργάνου έχουν λιγότερες δυντότητες πό τον πρόεδρο. Έχουν την δυντότητ ν λάβουν μέρος στην συζήτηση πριν την ένρξη της ψηφοφορίς λλά κι κτά την διάρκει. Μπορούν ν κτθέσουν μι μονό πρότση γι κάθε θέμ κι ν ψηφίσουν μι πρότση μονό. 2.2.3 Πρτηρητές Οι Πρτηρητές είνι μι άλλη ομάδ χρηστών που μπορούν λάβουν μέρος σε μι συνεδρίση με μι μονό δυντότητ την συζήτηση γι έν θέμ. Πρτηρητής μπορεί ν είνι οποιοσδήποτε το ζητήσει πό την γρμμτεί, συνήθως εκπρόσωποι σπουδστών. Λόγος ύπρξης του είνι η ντλλγή πόψεων με τ υπόλοιπ μέλη. Σελίδ 13 πό 49
2.2.4 Γρμμτεί Η γρμμτεί έχει την περισσότερη δουλειά ν κάνει πριν πό την κάθε Πράξη. Είνι κι υτή χρηστής της εφρμογής λλά με πολύ διφορετικές δυντότητες κι ρμοδιότητες. Μι πό της πιο σημντικές ρμοδιότητες της είνι η προετοιμσί της πράξης που υτό προϋποθέτει μι σειρά άλλων εργσιών. Πρώτ πρέπει ν κάνει εγγρφή των χρηστών που θ είνι βεβί τ μέλη γι την συνεδρίση. Ότν γίνει εγγρφή τους πρέπει δημιουργήσει το όργνο το οποίο θ συνεδρίση. Η δημιουργί του οργάνου γίνετι στην ρχή κάθε κδημϊκού έτους. Μετά πρέπει ν δημιουργήσει την πράξη του οργάνου κι ν εισάγει τ θέμτ. Αφού γίνει κι η εισγωγή θεμάτων θ πρέπει ν εισάγει κι τ κτάλληλ σχετικά γι κάθε θέμ. Μετά την προετοιμσί της πράξης πρέπει ν εκτύπωση κι την πρόσκληση γι ν ενημερωθούν τ μέλη γι την πράξη, είνι πολύ εύκολο ν γίνει μέσω της εφρμογής. Ότν γίνει ένρξη της πράξης πό το πρόεδρο κι λήξη τότε η γρμμτεί μπορεί ν εκτυπώσει κι τ υπόλοιπ πρκτικά. Σελίδ 14 πό 49
Κεφάλιο 3 Σχεδισμός βάσης δεδομένων 3.1 Τι είνι βάση δεδομένων Βάση δεδομένων είνι έν σύνολο δεδομένων τ οποί έχουν εντχθεί σε μι δομή ώστε ν μπορούν ν χρησιμοποιηθούν πό διάφορους χρήστες κι εφρμογές. Τ δεδομέν που κλούντι ν πντήσουν σε ερωτήσεις γίνοντι πληροφορίες που μπορούν ν χρησιμοποιηθούν γι ν πρθούν ποφάσεις. Το βσικότερο στοιχειό μις βάσης είνι ο πινάκς, ενώ τ διάφορ χρκτηριστικά της κτχωρούντι στις στήλες της γρμμής. Οι βάσεις δεδομένων χρησιμοποιούντι γι την κτχώρηση, οργάνωση κι τξινόμηση μεγάλου όγκου στοιχείων ώστε ν διευκολύνετι η συνεχής ενημέρωση με νέ κι η νζήτηση συγκεκριμένων πληροφοριών με συγκεκριμέν κριτήρι ή συνδυσμών κριτηρίων. Γενικά υστερούν σε θέμτ γρφικών πεικονίσεων κι επεξεργσίς κειμένου. Οι βάσεις δεδομένων μπορούν ν είνι πολύ μικρές (λιγότεροι πό 1 ΜΒ) ή εξιρετικά μεγάλες κι περίπλοκες (terabyte όπως σε πολλές κυβερνητικές βάσεις δεδομένων), εντούτοις όλες οι βάσεις δεδομένων ποθηκεύοντι συνήθως κι τοποθετημένος σε σκληρό δίσκο ή άλλους τύπους συσκευών ποθήκευσης κι προσεγγίζοντι μέσω του υπολογιστή. Οι μεγάλες βάσεις δεδομένων μπορούν ν πιτήσουν τους χωριστούς κεντρικούς υπολογιστές κι τις θέσεις, εντούτοις πολλές μικρές βάσεις δεδομένων μπορούν ν εγκτστήσουν εύκολ ως ρχεί που βρίσκοντι στο σκληρό δίσκο του υπολογιστή σς. 3.2 Σχέσεις Δεδομένων (Έν-Προς-Έν κι Έν-Προς-Πολλά) Το κλύτερο είδος διάτξης βάσης δεδομένων (database layout) γι μι δεδομένη κτάστση κθορίζετι συνήθως πό τον τύπο της σχέσης που υπάρχει νάμεσ στ δεδομέν με τ οποί δουλεύουμε. Θ δούμε τους Σελίδ 15 πό 49
συνηθέστερους τύπους σχέσεων κι πώς μπορούμε ν τους πρσιτήσουμε σε μι σχεσική βάση δεδομένων (relational database). Στην περίπτωση μις πλής έν-προς-έν σχέσης, υτό που χρειάζετι είνι ένς μόνον πίνκς. Έν πράδειγμ μις σχέσης έν-προς-έν είνι η e-mail διεύθυνση του κάθε συγγρφέ στη βάση δεδομένων joke. Εφόσον υπάρχει μι διεύθυνση e-mail γι τον κάθε συγγρφέ κι ένς συγγρφές γι την κάθε e-mail διεύθυνση, δεν υπάρχει κνένς λόγος ν κτχωρήσουμε τις διευθύνσεις σ ένν ξεχωριστό πίνκ. Μι σχέση έν-προς-πολλά είνι λίγο περισσότερο πολύπλοκη, λλά έχουμε ήδη συνντήσει μι τέτοι περίπτωση. Το κάθε joke στη βάση δεδομένων συσχετίζετι μ ένν μόνον συγγρφέ, λλά πολλά jokes μπορεί ν έχουν γρφεί πό τον ίδιο συγγρφέ. Αυτή η σχέση jokeσυγγρφέ είνι έν-προς-πολλά (many-to-one). Έχουμε ήδη περιγράψει τ προβλήμτ που προκύπτουν πό την ποθήκευση των πληροφοριών που συσχετίζοντι με τον συγγρφέ ενός joke στον ίδιο πίνκ με το joke. Σν σύνοψη, το ποτέλεσμ είνι ότι έχουμε πολλπλά ντίγρφ των ίδιων δεδομένων που είνι δύσκολο ν τ κρτήσουμε συγχρονισμέν κι που σπτλούν χώρο. Χωρίζοντς τ δεδομέν σε δύο πίνκες κι χρησιμοποιώντς μι στήλη ID γι ν τ συνδέσουμε, ντιμετωπίζοντι όλ τ πρπάνω προβλήμτ. Στην περίπτωση που μερικοί συγγρφείς διθέτουν περισσότερ πό έν e-mail, μπορούμε ν δημιουργήσουμε ένν πίνκ Emails κι ν τον συσχετίσουμε με τον πίνκ Authors με τη στήλη ID(6). Σελίδ 16 πό 49
3.3 Σχέσεις πινάκων της εφρμογής Σελίδ 17 πό 49
3.4 Ανάλυση Πινάκων Στο συνέχει θ γίνει νάλυση των πινάκων της εφρμογής ηλεκτρονικής δικυβέρνησης των συλλογικών οργάνων της διχείρισης πληροφοριών. Θ νφερθούμε στο λόγω ύπρξης κάθε πεδίου στους πίνκες. 3.4.1 Πίνκς members Στον πίνκ members κρτάμε τους χρήστες που θ χρησιμοποιούν την εφρμογή. Έχουμε τις ιδιότητες τους που είνι το firstname, lastname, phone, email κι την βθμίδ/ιδιότητά τους. Επίσης έχουμε το username κι το password κάθε χρήστη που χρησιμοποίει γι ν έχει πρόσβση στην εφρμογή. Το id_member του πίνκ συσχετίζετι με πολλούς πίνκες της βάσης όπως το sub_mem, council_member, votes, proposals, forum_proposals. Επίσης στο πίνκ υτό έχουμε κι δυο εγγρφές που κρτάμε τ username κι το password της γρμμτείς. Οι δυο εγγρφές υτές είνι μόνιμες στο πίνκ κι δεν μπορούν ν διγρφούν πρά μόνο ν γίνει λλγή των στοιχείων τους. Σελίδ 18 πό 49
3.4.2 Πίνκς vathmos Στον πίνκ vathmos έχουμε τις κτηγορίες χρηστών κι την περιγρφή τους. Έχουμε τρεις κτηγορίες χρηστών τον πρόεδρο που έχει το id_vathmos 1, το μέλος έχει το 2 κι ο πρτηρητής το 3. Ανάλογ με το βθμό που έχει το κάθε μέλος στο όργνο έτσι κθορίζοντι κι τ δικιώμτ του σε κάθε συνεδρίση. 3.4.3 Πίνκς secretaries Στον πίνκ secretaries έχουμε τις γρμμτείες με τις ιδιότητες τους firstname, lastname, phone, email, eidikotita. Μι γρμμτέ θ χρειάζετι γι κάθε πράξη του οργάνου. O πίνκς υτός συσχετίζετι με τον πίνκ act κι η συσχέτιση πετυχίνετε με το id_secretary. Σελίδ 19 πό 49
3.4.4 Πίνκς coyncil_type Στον πίνκ council_type έχουμε την περιγρφή του οργάνου. Στην περίπτωση μς έχουμε 4 όργν. Το id_coyncil_type είνι το πρωτεύον κλειδί κι πίρνει τιμές πό 1-4. Το id 1 νήκει στο συμβούλιο τμήμτος, το 2 στην γενική συνέλευση τομέ πληροφορικής, το 3 στην γενική συνέλευση κι το 4 στην γενική συνέλευση διοίκησης κι συνφούς υποδομής. Είνι ένς πίνκς που πίρνει πό την δημιουργί της βάσης κι δεν μετβάλλετι εκτός κι ν υπάρξει δημιουργί άλλου οργάνου. Συσχετίζετι μόνο με ένν πίνκ τον council. 3.4.5 Πίνκς act. Στον πίνκ act ποθηκεύοντι οι πράξεις των συλλογικών οργάνων. Κάθε πράξη έχει τις πρκάτω ιδιότητες έχει έν πρωτεύον κλειδί το id_act που είνι ένς κέριος που υξάνετι υτόμτ με κάθε κινούρι Σελίδ 20 πό 49
πράξη. Επίσης την κάνει μονδική στον πίνκ κι θ βοηθήσει στις συσχετίσεις με άλλους πίνκες. Έχει ένν ριθμό (act_num), την ημερομηνί ένρξης που ποθηκεύετι στο πεδίο date_start κι την ημερομηνί λήξης στο date_stop. Έχουμε το id_secretary που είνι ξένο κλειδί γι τον πίνκ κι μς κθορίζει ποι είνι η γρμμτές γι την συγκεκριμένη πράξη. Έχουμε το πεδίο status που κρτάμε την κτάστση στην οποί βρίσκετι η πράξη δλδ ν βρίσκετι στο στάδιο προετοιμσίς πό την γρμμτεί είνι σε κτάστση 0 ν έχει γίνει ένρξη σε 1 κι ν έχει λήξει σε 2. Mε το id_council που είνι ξένο κλειδί γι τον πίνκ κι μς λέει σε ποιο όργνο νήκει η πράξη. Επίσης το πεδίο ektakto πίρνει τιμές 0 ν είνι τκτική συνεδρίση κι 1 ν είνι έκτκτη συνεδρίση. Ο πίνκς συσχετίζετι με τον πίνκ subjects με το id_act γιτί μι πράξη έχει πολλά θέμτ. 3.4.6 Πινκς subjects Στον πίνκ subjects έχουμε τ θέμτ της κάθε πράξης. Οι ιδιότητες του θέμτος είνι ο ριθμός (subject_num), ο τίτλος (title) κι έν κείμενο (text) που μπορεί ν είνι διευκρινιστικό γι το τίτλο. Έχουμε πρωτεύον κλειδί το id_subject κι ξένο κλειδί το id_act που συσχετίζετι με τον πίνκ act γι ν ξέρουμε σε ποι πράξη νήκει το κάθε θέμ. Επίσης συσχετίζετι με τους πρκάτω πίνκες τον πίνκ sub_mem, τον votes, τον forum_proposals, τον proposals κι τον sub_relevant_doc. Το πεδίο vote_date_start κρτάει την ημερομηνί ένρξης της ψηφοφορίς γι το θέμ κι το vote_date_stop γι την ημερομηνί λήξης της ψηφοφορίς. Σελίδ 21 πό 49
3.4.7 Πίνκς relevant_doc Στον πίνκ relevant_doc έχουμε τ σχετικά έγγρφ γι κάθε θέμ. Το title που είνι ο τίτλος του σχετικού, το text ν υπάρχει κάποιο κείμενο που ν συνοδεύει το σχετικό κι στο link κρτάμε την διεύθυνση όπου είνι ποθηκευμένο κάποιο έγγρφο που υτό θ είνι το σχετικό. Επίσης το id_relevant_doc που βοηθάει στην μονδική σχέση του με τον πίνκ sub_relevant_doc. 3.4.8 Πίνκς standar_relevant. Στον πίνκ standar_relevant υπάρχουν ποθηκευμέν κάποι σχετικά που χρησιμοποιούντι περισσότερο. Έτσι δεν χρειάζετι η γρμμτεί ν γράφει τ ίδι συνεχώς, πλά τ επιλέγει πό υτό τον πίνκ κι πλά τους κάνει μι μικρή τροποποίηση Ο standar_relevant δεν συσχετίζετι με κνέν πίνκ είνι πλά ένς πίνκς με στθερά δεδομέν που πίρνουμε κάθε φορά υτά που θέλουμε πό μέσ. Σελίδ 22 πό 49
3.4.9 Πίνκς sub_relevant_doc Ο sub_relevant_doc είνι πίνκς που βρίσκετι ενδιάμεσ του πίνκ subjects κι relevant_doc γιτί υπάρχει μι σχέση πολλά προς πολλά, δηλδή μπορεί έν θέμ ν έχει πολλά θέμτ κι έν σχετικό ν νήκει σε πολλά θέμτ. Έτσι οδηγούμστε στο σπάσιμο υτής της σχέσης με τον πίνκ sub_relevant_doc. 3.4.10 Πίνκς council_members Στον πίνκ council_members κρτάμε τ μέλη κάθε οργάνου. Δεν έχουμε πρωτεύον κλειδί λλά μόνο 3 ξέν κλειδιά. Το id_council συσχετίζετι με τον πίνκ council γι ν ξέρουμε σε ποιο όργνο νήκει το μέλος. Το ιd_vathmos που κρτάει το βθμό του μέλους που έχει στο κάθε όργνο κι συσχετίζετι με τον πίνκ vathmos κι το id_member που συσχετίζετι με τον πίνκ members γι ν ξέρουμε ποιο μέλος είνι. Σελίδ 23 πό 49
3.4.11 Πίνκς council Στον πίνκ council κρτάμε το όργνο που δημιουργείτι στην ρχή κάθε κδημϊκού έτους. Έχουμε το id_coyncil που το κάνει ξεχωριστό, είνι ένς κέριος ριθμός που υξάνετι υτόμτ με την δημιουργί νέου οργάνου. Με το id_council_type συσχετίζετι με τον πίνκ council_type κι μς βοηθάει ν βρούμε την περιγρφή του οργάνου. Στο πεδίο date κρτάμε την ημερομηνί δημιουργίς του οργάνου. 3.4.12 Πίνκς sub_mem Στον πίνκ sub_mem κρτάμε το id_member κι το id_subject δλδ έχουμε τ μέλη που νήκουν στο κάθε θέμ. Είνι ένς πίνκς που σπάει την σχέση νάμεσ στον πίνκ subject κι members γιτί έχουμε μι σχέση πολλά προς πολλά που σημίνει ότι έν θέμ έχει πολλά μέλη λλά κι έν μέλος νήκει σε πολλά θέμτ. Σελίδ 24 πό 49
3.4.13 Πίνκς proposals Στον πίνκ proposals κρτάμε τις προτάσεις που κττίθεντι γι κάθε θέμ. Με id_subject ξέρουμε γι ποιο θέμ είνι η πρότση, το id_member ξέρουμε ποιο μέλος κτέθεσε την πρότση, στο text έχουμε το κείμενο της πρότσης κι το date_time την ώρ που έγινε η κτάθεση της πρότσης. 3.4.14 Πίνκς forum_proposals Στον πίνκ forum_proposals έχουμε τ σχόλι του κάθε μέλους που γίνοντι κτά την συζήτηση πριν ρχίσει η ψηφοφορί γι το θέμ. Έχουμε το id_subject γι ν ξέρουμε γι ποιο θέμ είνι το σχόλιο, το id_member του μέλους που έκνε το σχόλιο κι το text που είνι το κείμενο. Σελίδ 25 πό 49
3.4.15 Πίνκς votes Στον πίνκ votes έχουμε τις ψήφους που πίρνει μι πρότση. Με το id_member έχουμε το μέλος που ψήφισε με το id_proposal ξέρουμε ποι πρότση ψήφισε. Το id_subject δείχνει γι ποιο θέμ ήτν η ψήφος του μέλους, το vote τη ψήφο που είνι 0 ν διφώνησε με όλες τις προτάσεις κι 1 ν ψήφισε μι πρότση. Επίσης στο comment μς δείχνει κάποιο σχόλιο του μέλους που μπορεί ν διφώνησε κι στο date_vote έχουμε την ημερομηνί που ψήφισε. Σελίδ 26 πό 49
Κεφάλιο 4 Περιγρφή εφρμογής Εισγωγή Στο κεφάλιο υτό θ γίνει νλυτική περιγρφή της εφρμογής κι το πώς χρησιμοποιείτι. Ο σχεδισμός της είνι πλός κι γι υτό το λόγω είνι πολύ εύκολη στην χρήση κι δεν χρειάζετι ν έχεις ιδιίτερες γνώσεις. 4.1 Είσοδος στην εφρμογή Στην εικόν 1 έχουμε το πράθυρο εισόδου που θ συνντήσου όλοι οι χρηστές στην προσπάθειά τους ν συνδεθούν στην εφρμογή. Γι ν υπάρξει είσοδος πρέπει ο χρήστης ν έχει ένν κωδικό πρόσβσης κι έν username. Τo username κι το password το δίνει η γρμμτεί μετά πό επικοινωνί μζί της. Γι την είσοδο της γρμμτείς στην εφρμογή την πρώτη φορά υπάρχουν δυο λογρισμοί που είνι ήδη κτχωρημένοι πό την ρχή κι δεν μπορούν ν διγρφούν, λλά με την πρώτη είσοδο της μπορεί ν λλάξει το username κι password γι περισσότερη σφάλει. Εικόν 1 Σελίδ εισόδου Σελίδ 27 πό 49
4.2 Είσοδος γρμμτείς Αν γίνει επιτυχής είσοδος πό την γρμμτεί το επόμενο πράθυρο που θ εμφνιστεί είνι στην εικόν 2. Εδώ υπάρχει έν μενού με τις διάφορες εργσίες που έχει η γρμμτεί ν κάνει πριν, κτά την διάρκει της συνεδρίσης του οργάνου κι μετά την λήξη της συνεδρίσης. Περιγρφή των ρμοδιοτήτων της γρμμτείς θ γίνει πρκάτω. Εικόν 2 Πρώτη σελίδ γρμμτείς 4.2.1 Εγγρφή χρηστών Το πρώτο βήμ που πρέπει ν γίνει είνι η εγγρφή των χρηστών της εφρμογής. Συμπληρώνουμε τ στοιχεί του νέου μέλους όνομ, επίθετο, ειδικότητ, τηλέφωνο, email κι το username κι password που με υτά θ έχει πρόσβση στην εφρμογή όπως φίνοντι στην εικόν 3. Πτάμε εγγρφή γι ν κτχωρηθεί. Στο κάτω μέρος της σελίδς υπάρχει ένς πίνκς με τ στοιχεί των χρηστών όπου έχουμε την δυντότητ ν διγράψουμε έν έως κι όλ τ μέλη τυτόχρον επιλέγοντς υτό που θέλουμε πτώντς «διγρφή μέλους». Επίσης σε περίπτωση που έχει κτχωρηθεί έν στοιχείο λάθος μπορούμε ν επιλέξουμε το μέλος κι ν πτήσουμε λλγή στοιχείων κι ν κάνουμε την λλγή. Οι δυο πρώτες εγγρφές του πίνκ είνι μόνιμες εγγρφές Σελίδ 28 πό 49
κι δεν μπορούν ν διγρφούν, είνι τo username κι το password της γρμμτείς κι πό εδώ μπορεί ν το λλάξει γι περισσότερη σφάλει. Εικόν 3 Εγγρφή χρηστών 4.2.3 Δημιουργί οργάνου Αφού έχει γίνει η εγγρφή των μελών, το επόμενο βήμ είνι η δημιουργί οργάνου. Πτάμε στον πρώτο σύνδεσμο με το όνομ «Δημιουργί οργάνου». Στην ρχή κάθε κδημϊκού έτους πρέπει ν γίνετι δημιουργί νέου οργάνου με τ κινούρι μέλη. Στο πρώτο πεδίο επιλεγούμε τ μέλη μετά επιλεγούμε τον πρόεδρο του οργάνου κι τους πρτηρητές ν υπάρχουν. Στο τελευτίο πεδίο επιλεγούμε το όργνο κι Σελίδ 29 πό 49
πτάμε δημιουργί. Στο κάτω μέρος της σελίδς βλέπουμε ένν πίνκ με τ μέλη κάθε οργάνου. Εικόν 4 Δημιουργί οργάνου 4.2.4 Δημιουργί πράξης Στην εικόν 5 προυσιάζετι το επόμενο βήμ που είνι η δημιουργί της πράξης κι το βλέπουμε φού επιλέξουμε το σύνδεσμο «Δημιουργί πράξης». Στην ρχή υπάρχει ένς πίνκς με όλες τις πράξεις. Στον πίνκ υπάρχει ο ριθμός της πράξης, σε ποιο όργνο νήκει, η κτάστση στην όποι βρίσκετι, κι την ημερομηνί που έγινε η ένρξη της πό τον πρόεδρο του οργάνου. Γι ν δημιουργήσουμε μι κινούρι πράξη επιλέγουμε το όργνο γι στο όποιο θ νήκει η πράξη, επιλέγουμε ν θ είνι τκτική ή έκτκτη συνεδρίση. Μετά επιλέγουμε την γρμμτεί Σελίδ 30 πό 49
γι υτή την πράξη κι τον ριθμό της πράξης που εμφνίζετι υτόμτ. Τέλος πτάμε δημιουργί κι θ έχουμε μι νέ εγγρφή στον πίνκ σε κτάστση νμονής. Εικόν 5 Δημιουργί Πράξης 4.2.5 Εισγωγή θεμάτων Στην εικόν 6 είνι το επόμενο βήμ φού έχουμε δημιουργήσει την πράξη πρέπει ν εισάγουμε κι θέμτ που θ συζητηθούν κι θ πρθεί κάποι πόφση. Πτάμε στο σύνδεσμο «Εισγωγή θέμτος» γι ν εισάγουμε έν νέο θέμ. Στο πρώτο πεδίο συμπληρώνουμε τον τίτλο του θέμτος κι στη συνεχεί έν κείμενο που μπορεί ν είνι έν διευκρινιστικό κείμενο γι το τίτλο. Μετά επιλέγουμε τ μέλη που θ συνεδριάσουν γι το συγκεκριμένο θέμ. Με το κουμπί «check all» επιλέγοντι όλ τ μέλη κι με το «uncheck all» διγράφοντι. Προσοχή επιλέγουμε τ μέλη πό το Σελίδ 31 πό 49
όργνο που θέλουμε ν εισάγουμε θέμ στην πράξη του. Μετά επιλέγουμε την πράξη που θ νήκει το θέμ πό το drop down μενού κι τέλος πτάμε δημιουργί Εικόν 6 Εισγωγή θέμτος 4.2.6 Εισγωγή σχετικού Στην εικόν 7 είνι το επόμενο βήμ μετά την εισγωγή των θεμάτων που είνι η εισγωγή των σχετικών γι κάθε θέμ. Επιλέγουμε το σύνδεσμο «Εισγωγή σχετικού» γι ν εισάγουμε σχετικό. Στο πρώτο πεδίο έχουμε έν drop down μενού όπου υπάρχουν τίτλοι των πιο συχνά χρησιμοποιούμενων σχετικών. Επιλέγουμε πό το μενού το σχετικό που θέλουμε κι υτόμτ περνάει στο κάτω πεδίο όπου μπορούμε ν κάνουμε κάποι λλγή στον τίτλο ν χρειάζετι. Αν δεν υπάρχει ο τίτλος που Σελίδ 32 πό 49
θέλουμε στ υπάρχοντ σχετικά πληκτρολογούμε τον τίτλο στο δεύτερο πεδίο. Στο κείμενο πληκτρολογούμε το κείμενο του σχετικού ν υπάρχει. Επιλέγουμε τον ριθμό θέμτος που θέλουμε ν κτχωρήσουμε σχετικό κι στο πεδίο link γράφουμε την διεύθυνση που μπορεί ν βρίσκετι έν σχετικό. Αν το σχετικό είνι σε ρχείο το κάνουμε upload πρώτ κι το Link θ συμπληρωθεί υτόμτ με την διεύθυνση όπου βρίσκετι ποθηκευμένο το ρχείο. Τέλος πτάμε εισγωγή σχετικού. Εικόν 7 Εισγωγή σχετικού Σελίδ 33 πό 49
4.2.7 Εκτύπωση πρκτικών Στην εικόν 8 έχουμε τις εκτυπώσεις. Από το πράθυρο εκτυπώσεις μπορούμε ν επιλέξουμε ποι πράξη κι ποιου οργάνου θέλουμε ν εκτυπώσουμε κάποιο πρκτικό. Εικόν 8 Εκτυπώσεις Σελίδ 34 πό 49
4.2.8 Εκτύπωση πρόσκλησης Αν επιλέξουμε μι πράξη η όποι έχει προετοιμστεί κι είνι σε κτάστση νμονής μπορούμε ν εκτυπώσουμε την πρόσκληση γι ν ενημερωθούν τ μέλη κι ο πρόεδρος γι την πράξη. Πληκτρολογούμε την ημερομηνί που πρέπει ν γίνει ένρξη πό τον πρόεδρο κι πτάμε εκτύπωση. Εικόν 9 Εκτύπωση πρόσκλησης Σελίδ 35 πό 49
Πρόσκληση πράδειγμ Σελίδ 36 πό 49
4.2.9 Εκτύπωση ποσπάσμτος Αν έχει γίνει ένρξη της πράξης πό τον πρόεδρο μπορούμε ν εκτυπώσουμε το πόσπσμ γι το θέμ που θέλουμε. Μπορούμε ν το εκτυπώσουμε φού έχει λήξει η ψηφοφορί γι το συγκεκριμένο θέμ. Επιλέγουμε το θέμ κι πτάμε εκτύπωση. Εικόν 10 Εκτύπωση ποσπάσμτος Σελίδ 37 πό 49
Πράδειγμ ποσπάσμτος Σελίδ 38 πό 49
4.2.10 Εκτύπωση άλλων πρκτικών Αν η πράξη έχει λήξει κι τότε μπορούμε ν εκτυπώσουμε την πράξη με όλ τ θέμτ κι το πόσπσμ γι κάθε θέμ. Ακόμ μπορούμε ν έχουμε κι έν έγγρφο με τους τίτλους των θεμάτων της πράξης. Εικόν 11 Εκτύπωση όλων των πρκτικών 4.2.11 Προεπισκόπηση πράξης Στην προεπισκόπηση μπορούμε ν έχουμε μι συνοπτική εικόν κάθε πράξης. Μπορούμε ν δούμε τ θέμτ της πράξης που θ επιλέξουμε, τ σχετικά του κάθε θέμτος κι τ μέλη γι κάθε θέμ. Επιλέγουμε την Σελίδ 39 πό 49
πράξη, τον ριθμό πράξης που θέλουμε κι πτάμε submit. Το ποτέλεσμ φίνετι στην εικόν 13. Εικόν 12 Προεπισκόπηση πράξης Εικόν 13 Πράδειγμ προεπισκόπησης Σελίδ 40 πό 49
4.2.12 Άλλες εργσίες Στην εικόν 14 βλέπουμε κάποιες άλλες εργσίες που δεν χρειάζετι ν γίνοντι συχνά. Στο σημείο υτό η γρμμτεί μπορεί ν εισάγει την γρμμτέ που θ επιλέγετι κτά την δημιουργί της πράξης κι ν γίνετι διγρφή ότν λλάζει. Αυτό θ γίνετι μι φορά στην ρχή κάθε κδημϊκού έτους ή ότν υπάρχει λλγή γρμμτέ. Επίσης πό εδώ γίνετι η κτχώρηση των σχετικών που εμφνίζοντι στο drop down μενού στο στάδιο εισγωγή σχετικού. Εικόν 14 Άλλες εργσίες Σελίδ 41 πό 49
4.3 Είσοδος χρηστών εφρμογής (πρόεδρος, μέλος, πρτηρητής) Στην εικόν 15 βλέπουμε το κυρίως μενού που θ έχουν όλοι οι χρήστες ότν κάνουν login. Ανάλογ σε ποιο όργνο είνι ο χρήστης μέλος, πρόεδρος, ή πρτηρητής επιλέγει το ντίστοιχο σύνδεσμο. Οι δυντότητες του κάθε χρήστη στην εφρμογή εξρτώντι πό το βθμό που έχει στο κάθε όργνο. Εικόν 15 Κυρίως μενού χρήστη 4.3.1 Ένρξη της πράξης Αν ο χρήστης είνι ο πρόεδρος του συμβουλίου τότε φού επιλέξει το σύνδεσμο «Συμβούλιο τμήμτος» θ έχει το πράθυρο που προυσιάζετι στην εικόν 16. Είνι υτός που θ κάνει ένρξη της πράξης σύμφων με την ημερομηνί που νγράφοντν στην πρόσκληση που πήρε πό την γρμμτεί. Αφού πτήσει ένρξη τότε τ μέλη κι ο πρτηρητής θ μπορούν ν δουν τ θέμτ. Εικόν 16 Ένρξη πράξης Σελίδ 42 πό 49
Ότν γίνει ένρξη πό τον πρόεδρο θ έχουμε την εικόν 17. Όπως νφέρμε σε προηγούμενο κεφάλιο οι ρμοδιότητες του πρόεδρου εκτός πό την ένρξη της πράξης είνι υτός που θ κάνει την ένρξη ψηφοφορίς κι την λήξη της γι κάθε θέμ. Επίσης μπορεί ν κτθέσει κάποι πρότση ν έχει πτώντς στην κτάθεση πρότσης κι ν λβει μερος στην συζήτηση γι ν ντλλάξει τις πόψεις του με τ λλά μέλη πτώντς στην συζήτηση Εικόν 17 Μετά την ένρξη Σελίδ 43 πό 49
Στην εικόν 18 έχουμε το ντίστοιχο πράθυρο που θ έχει το μέλος μετά την ένρξη της πράξης κι την εικόν 19 γι το πρτηρητή. Εικόν 18 Πράθυρο μελους Εικόν 19 Πράθυρο πρτηρητή Σελίδ 44 πό 49
4.3.2 Συζήτηση Στην εικόν 20 έχουμε την συζήτηση που γίνετι γι κάθε θέμ. Το κάθε μέλος μπορεί ν κάνει το σχόλιο του κι ν το βλέπουν τ άλλ μέλη. Λειτούργει περίπου σν έν forum, γρφούμε το σχόλιο στο πεδίο text κι πτάμε κτχώρηση. Στην συζήτηση έχουν την δυντότητ ν λάβουν όλοι οι χρήστες μέρος. Εικόν 20 Συζήτηση Σελίδ 45 πό 49
4.3.3 Κτάθεση πρότσης Γι ν κτθέσουμε πρότση είνι πολύ εύκολο. Γράφουμε την πρότση στο πεδίο text κι πτάμε κτχώρηση κι κάτω κριβώς εμφνίζετι η πρότση μς. Δεν μπορούμε ν κτθέσουμε πάνω πό μι πρότση. Επίσης φού κτθέσουμε την πρότση μπορούμε ν την διγράψουμε ή ν κάνουμε τροποποίηση της. Την δυντότητ υτή την έχει ο πρόεδρος κι το μέλος του οργάνου. Εικόν 21 Κτάθεση πρότσης 4.3.4 Ένρξη της ψηφοφορίς. Ότν κττεθούν οι προτάσεις πό τ μέλη ο πρόεδρος κάνει την ένρξη ψηφοφορίς κι οι επιλογές γι κάθε θέμ λλάζουν. Όπως θ δούμε η Σελίδ 46 πό 49
κτάθεση πρότσης φεύγει κι έχουμε έν κουμπί ψηφοφορί όπως φίνετι στην εικόν 22. Εικόν 22 Ένρξη ψηφοφορίς 4.3.5 Ψηφοφορί Ότν πτήσουμε το κουμπί ψηφοφορί έχουμε την εικόν 23. Εδώ πρέπει τ μέλη ν ψηφίσουν μι πρότση μόνο επιλέγοντς την κι πτώντς ψηφίζω. Αν διφωνούν με τις προτάσεις δεν επιλέγουν κμί άλλ γράφουν το λόγο που διφωνούν κι πτάνε διφωνώ. Ν ψηφίσουν μπορούν ο πρόεδρος κι τ μέλη. Εικόν 23 Ψηφοφορί Σελίδ 47 πό 49
Συμπεράσμτ Φτάνοντς στο τέλος της πτυχικής εργσίς πιστέυω οτι έγινε μι κλή προσπάθει γι την νάπτυξη υτής της εφρμογής. Οι στοχοι κι τ ποτελέσμτ που βάλμε πο την ρχή εκληρωθηκν σχεδον ολοι. Θ μπορούσε ν γίνει λίγο κλύτερος σχεδισμός της διεπιφάνεις. Υπάρχουν ορισμέν σημεί που πιστεύω ν βελτιωθούν λίγο θ είνι μι πολύ κλή εφρμογή. Έχει ρκετές προοπτικές νάπτυξης ν κάποιος θελήσει ν τις προσθέσει κι άλλες δυντότητες. Σελίδ 48 πό 49
Βιβλιογρφί 1. http://www.freestuff.gr/forums/viewtopic.php?t=18943 2. http://el.wikipedia.org/wiki/php 3. Thomson L. T, Luke L.W. (2002), Ανάπτυξη Web Εφρμογών με PHP κι Μysql, Αθήν, εκδόσεις Μ. Γκιούρδς. 4. http://www.techteam.gr/wiki/php#πράδειγμ κώδικ PHP 5. http://dev.mysql.com/doc/query-browser/el/mysql-query-browserintroduction.html 6. http://dide.flo.sch.gr/plinet/tutorials/tutorials-php-mysql.html Σελίδ 49 πό 49