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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ"

Transcript

1 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΤΙΤΛΟΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΔΙΑΔΙΚΤΥΟΥ ΓΙΑ ΤΗ ΓΡΑΜΜΑΤΕΙΑΚΗ ΥΠΟΣΤΗΡΙΞΗ ΤΩΝ ΕΚΤΑΚΤΩΝ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΤΟΥ ΤΜΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ TCL ΣΠΟΥΔΑΣΤΗΣ : ΛΙΑΠΗΣ ΝΙΚΟΛΑΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ : ΜΑΡΔΥΡΗΣ ΒΑΣΙΛΕΙΟΣ ΚΑΒΑΛΑ 2007

2 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΔΙΑΔΙΚΤΥΟΥ ΓΙΑ ΤΗ ΓΡΑΜΜΑΤΕΙΑΚΗ ΥΠΟΣΤΗΡΙΞΗ ΤΩΝ ΕΚΤΑΚΤΩΝ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΤΟΥ ΤΜΗΜΑΤΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ TCL Πτυχιακή εργασία του Λιάπη Νικόλαου Σχολή Διοίκησης και Οικονομίας Τμήμα Διαχείρισης Πληροφοριών Τ.Ε.Ι. Καβάλας Εγκρίνεται για παρουσίαση από τον Πρόεδρο της εποπτεύουσας επιτροπής

3 Ευχαριστώ την οικογένειά μου για την υποστήριξή και την συμπαράστασή της. Ευχαριστώ τον κύριο Μαρδύρη Βασίλειο για την καθοδήγηση και τη βοήθειά του κατά τη διάρκεια της ανάπτυξης της εφαρμογής. Ευχαριστώ τον καλό μου φίλο Βαγγέλη για την πολύτιμη βοήθειά του. Λιάπης Νικόλαος ΚΑΒΑΛΑ 2007

4 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1 ο 1 Εισαγωγή σελ.3 ΚΕΦΑΛΑΙΟ 2 ο 2 Εργαλεία που χρησιμοποιήθηκαν για την υλοποίηση αυτής της εφαρμογής σελ Γενικά σελ Εγκατάσταση των εργαλείων αυτών σελ Apache Server σελ MySQL Server σελ Edit Plus σελ HTML, APACHE Server, CGI σελ HTML σελ Apache Server σελ CGI (Common Gateway Interface) σελ TCL σελ MySQL, βιβλιοθήκη fbsql σελ Παράρτημα 1 ο σελ.9 ΚΕΦΑΛΑΙΟ 3 ο 3 Ανάπτυξη της εφαρμογής σελ Ανάλυση της βάσης δεδομένων σελ Παρουσίαση και σχέσεις πινάκων σελ Ανάλυση πινάκων σελ Ανάπτυξη του κώδικα σελ ο Μέρος σελ ο Μέρος σελ Παράρτημα 2 ο σελ.73 ΚΕΦΑΛΑΙΟ 4 ο 4 USERS MANUAL σελ Γενικά σελ Ανάλυση της εφαρμογής σελ Αιτήσεις καθηγητών σελ Κατατάξεις καθηγητών σελ Παράρτημα 3 ο σελ112 1

5 ΚΕΦΑΛΑΙΟ 5 ο 5 Συμπεράσματα και προοπτικές σελ Συμπεράσματα σελ Προοπτικές σελ.130 ΒΙΒΛΙΟΓΡΑΦΙΑ Παράρτημα Κώδικα σελ.131 σελ.132 2

6 ΚΕΦΑΛΑΙΟ 1 ο 1. ΕΙΣΑΓΩΓΗ Η εφαρμογή με την οποία ασχολήθηκα και θα παρουσιάσω σε αυτό το εγχειρίδιο είναι μία Web εφαρμογή. Σκοπός αυτής της εφαρμογής είναι η γραμματειακή υποστήριξη σε θέματα που αφορούν τους έκτακτους καθηγητές του Τμήματος Διαχείρισης Πληροφοριών όπως είναι οι αιτήσεις αυτών των καθηγητών προς το Τμήμα, εκδηλώνοντας το ενδιαφέρον τους να διδάξουν σε αυτό, και η κατάταξη των καθηγητών αυτών ανά μάθημα με βάση τα προσόντα τους. Η εφαρμογή αποτελείτε από μία σελίδα σχεδιασμένη με την γλώσσα HTML, η οποία αποτελεί την είσοδο στην εφαρμογή. Επίσης υπάρχουν 19 script προγραμματισμένα σε γλώσσα TCL τα οποία πραγματοποιούν όλες τις απαιτούμενες λειτουργίες της εφαρμογής. 3

7 ΚΕΦΑΛΑΙΟ 2 ο 2. ΕΡΓΑΛΕΙΑ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΗΘΗΚΑΝ ΓΙΑ ΤΗΝ ΥΛΟΠΟΙΗΣΗ ΑΥΤΗΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ 2.1 ΓΕΝΙΚΑ Για την ανάπτυξη και υλοποίηση της εν λόγω εφαρμογής χρειάστηκε να εγκαταστήσω στον προσωπικό μου υπολογιστή τον MySQL server ως σύστημα διαχείρισης βάσεων δεδομένων, τον Apache HTTP server για την δημιουργία εικονικού διακομιστή στον υπολογιστή μου και τέλος το Edit Plus, έναν editor, με τον οποίο συνέταξα τον κώδικα της εφαρμογής σε γλώσσα προγραμματισμού TCL. 2.2 ΕΓΚΑΤΑΣΤΑΣΗ ΤΩΝ ΕΡΓΑΛΕΙΩΝ ΑΥΤΩΝ APACHE Server Για την εγκατάσταση του APACHE Server ακολουθούμε τα παρακάτω βήματα: 1. Τρέχουμε το αρχείο εγκατάστασης του Apache [apache_ win32-x86-no_ssl.exe]. 2. Πατάμε next σε όλες τις προτροπές, έως ότου φτάσουμε στην παρακάτω οθόνη. Εικόνα 1: Εγκατάσταση Apache Server 4

8 3. Στα πρώτα δύο πεδία γράφουμε localhost και στο τρίτο γράφουμε το μας. 4. Επίσης σημαντικό είναι να επιλέξουμε το "for all users, on port 80, as a service", οπότε και το επιλέγουμε. 5. Προχωράμε και πατάμε install. 6. Αφού τελειώσει η εγκατάσταση του Αpache και έχει ανοίξει το Αpache monitor στο system tray, κάνουμε την εξής επιβεβαίωση : ανοίγουμε τον browser μας και γράφουμε localhost. 7. Τώρα θα δούμε τον browser μας να εμφανίζει μια σελίδα του apache που θα μας πληροφορεί ότι εφ' όσον βλέπουμε αυτή τη σελίδα η εγκατάσταση ήταν επιτυχής.[5] MySQL server Για την εγκατάσταση του MySQL server ακολουθούμε τα παρακάτω βήματα: 1. Ανοίγουμε τον φάκελο mysql d-win και τρέχουμε το αρχείο εγκατάστασης SETUP.EXE. 2. Πατάμε next σε όλες τις προτροπές, έως ότου φτάσουμε στην παρακάτω οθόνη. 5

9 Εικόνα 2: Εγκατάσταση MySql Server 3. Τσεκάρουμε την επιλογή Typical και στη συνέχεια πατάμε next 4. Τέλος πατάμε finish και η εγκατάσταση ολοκληρώθηκε Edit Plus Για την εγκατάσταση του Edit Plus ακολουθούμε τα παρακάτω βήματα: 1. Τρέχουμε το αρχείο εγκατάστασης του Edit Plus [epp211a_en.exe]. 2. Πατάμε το κουμπί setup 3. Στη συνέχεια πατάμε next μέχρι το τέλος της εγκατάστασης. Σημείωση : Θα πρέπει να πω εδώ πως δεν είναι αρκετό να εγκαταστήσουμε μόνο τα ανωτέρω εργαλεία. Για την σωστή λειτουργία όλων αυτών θα πρέπει να τρέξουμε το [ActiveTcl win32-ix86.exe] μέσα στο C:\ καθώς επίσης να βάλουμε στον φάκελο C:\Program Files\Apache Group\Apache2\cgi-bin την βιβλιοθήκη fbsql.dll και την βιβλιοθήκη libmysql.dll που βρίσκεται μέσα στον φάκελο C:\mysql\lib\opt. 6

10 2.3 HTML, APACHE Server, CGI HTML Τα αρχικά HTML προέρχονται από τις λέξεις HyperText MarkupLanguage. Η HTML δεν είναι μια γλώσσα προγραμματισμού. Είναι μια περιγραφική γλώσσα, δηλαδή ένας ειδικός τρόπος γραφής κειμένου. Ο browser αναγνωρίζει αυτόν τον τρόπο γραφής και εκτελεί τις εντολές που περιέχονται σε αυτόν. Αξίζει να σημειωθεί ότι η HTML είναι η πρώτη και πιο διαδεδομένη γλώσσα περιγραφής της δομής μιας ιστοσελίδας. Η HTML χρησιμοποιεί τις ειδικές ετικέτες (τα tags) για να δώσει τις απαραίτητες οδηγίες στον browser. Τα tags βρίσκονται πάντα μεταξύ των συμβόλων < και >. Π.χ. <BODY>. Οι οδηγίες είναι case insensitive, δεν επηρεάζονται από το αν έχουν γραφτεί με μικρά η κεφαλαία.[4] APACHE Server Με τον Apache server δημιούργησα έναν εικονικό διακομιστή (server), έναν τοπικό server στον προσωπικό μου υπολογιστή, με σκοπό να μπορώ να ελέγχω τη λειτουργία των κομματιών(scripts) του κώδικα που ανέπτυσσα, γιατί ο Apache server παρέχει στους χρήστες του το αρχείο CGI το οποίο είναι απαραίτητο για την σύνδεση των εφαρμογών με την βάση δεδομένων, καθώς και τον φάκελο cgi-bin στον οποίο τοποθετούσα τα κομμάτια κώδικα. Έτσι με έναν απλό Browser όπως είναι ο internet explorer μπορούσα να εκτελώ και να βλέπω τα tcl αρχεία που δημιουργούσα σε πραγματικό χρόνο.[5] CGI (Common Gateway Interface) Τα CGI scripts επιτρέπουν τη δυναμική παραγωγή ή καλύτερα την δημιουργία σελίδων HTML Τα CGI scripts είναι ιδιαίτερα σημαντικά στο χειρισμό των φορμών στο Web. Οι φόρμες επιτρέπουν στους χρήστες να εισαγάγουν τα στοιχεία σε μια σελίδα τα οποία στέλνονται σε έναν κεντρικό υπολογιστή δικτύου για την επεξεργασία. Οι φόρμες στο Web δεν είναι απαραίτητο να παραχθούν από τα CGI scripts. Εντούτοις, τα στοιχεία που εισάγονται από έναν χρήστη μπορεί να απαιτούν μια προσαρμοσμένη απάντηση. Επομένως, η παραγόμενη απάντηση μέσω ενός CGI script είναι κατάλληλη. Δεδομένου ότι η απάντηση μπορεί να παράγει μια άλλη φόρμα ή τύπο αρχείου, τα CGI scripts πρέπει να παράγουν τις φόρμες 7

11 δυναμικά, τόσο καλά όσο καλά παράγουν και τις απαντήσεις. Τα CGI scripts είναι μια ειδική περίπτωση παραγωγής σελίδων HTML και μπορούν να αναπτυχθούν σε πολλές γλώσσες προγραμματισμού. Παρόλα αυτά υπάρχει και η Tcl που η χρήση της για τα CGI scripts έχει αυξηθεί σημαντικά. Μέρος αυτού οφείλεται απλά στο σύνολο των ανθρώπων που ξέρουν ήδη TCL. [3] 2.4 TCL Η TCL (Tool Command Language) είναι μια γλώσσα προγραμματισμού η οποία μας παρέχει ένα προγραμματιστικό περιβάλλον και ένα σύνολο προγραμματιστικών εργαλείων όπως μεταβλητές και επαναλήψεις που μας διευκολύνουν στην δημιουργία προγραμμάτων ανοιχτού κώδικα τα οποία στο σύνολό τους αποτελούν μια ολοκληρωμένη εφαρμογή η οποία με την βοήθεια του πρωτοκόλλου CGI θα λειτουργεί, θα επεξεργάζεται και θα επιστρέφει πληροφορίες στον χρήστη σε πραγματικό χρόνο. Στην γλώσσα TCL μπορούμε να αναμείξουμε κομμάτια κώδικα και εντολές άλλων γλωσσών προγραμματισμού όπως εντολές για την διαχείριση βάσεων δεδομένων όπως για παράδειγμα εντολών για την διαχείριση SQL βάσεων δεδομένων και κομμάτια κώδικα γραμμένο στην γλώσσα HTML με σκοπό τον σχεδιασμό ενός εύχρηστου περιβάλλοντος το οποίο θα απευθύνεται στους χρήστες της εφαρμογής.[6] 2.5 MySQL, βιβλιοθήκη fbsql H MySQL είναι ένα σύστημα διαχείρισης βάσεων δεδομένων που ελέγχει την πρόσβαση στα δεδομένα ώστε πολλοί χρήστες να μπορούν να δουλέψουν σε αυτήν ταυτόχρονα. Η MySQL μας δίνει τη δυνατότητα να αποθηκεύουμε, να αναζητούμε, να διαγράφουμε, να ταξινομούμε, να ανακτούμε, και να διαχωριζόμαστε δεδομένα σε πολλούς πίνακες παρά σε έναν. Αυτό προσδίδει ταχύτητα και ευελιξία στη βάση δεδομένων μας. Επίσης είναι αξιόπιστη και εύκολη στη χρήση της. Η SQL είναι η πιο διαδεδομένη γλώσσα που χρησιμοποιείτε για την πρόσβαση στη βάση δεδομένων της MySQL γι αυτόν το λόγο τη χρησιμοποίησα και εγώ για τις ανάγκες της δικής μου βάσης δεδομένων. Όμως επειδή το μεγαλύτερο μέρος της υλοποίησης της εφαρμογής το έκανα σε τοπικό επίπεδο (χρησιμοποιώντας τον Apache Server) χρησιμοποίησα την βιβλιοθήκη fbsql.dll η οποία διαχειρίζεται την MySQL μέσα από tcl scripts.[1] [2]. 8

12 2.6 ΠΑΡΑΡΤΗΜΑ 1 ο Εικόνα 3: Εγκατάσταση Apache Server 9

13 Εικόνα 4: Εγκατάσταση MySql Server 10

14 ΚΕΦΑΛΑΙΟ 3 ο 3 ΑΝΑΠΤΥΞΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ 3.1 ΑΝΑΛΥΣΗ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΟΥΣΙΑΣΗ ΚΑΙ ΣΧΕΣΕΙΣ ΜΕΤΑΞΥ ΠΙΝΑΚΩΝ Οι πίνακες που απεικονίζονται παρακάτω αφορούν το κομμάτι της εφαρμογής που ανέλαβα εγώ να υλοποιήσω. Η βάση δεδομένων που δημιούργησα, για να καλύπτει τις ανάγκες τις εφαρμογής, αποτελείται από 30 συνολικά πίνακες εκ των οποίων οι 10 χρησιμοποιούνται κατά κάποιο τρόπο ως backup κάποιων άλλων όπως θα δείτε παρακάτω. Οι δύο εικόνες που ακολουθούν δείχνουν τους πίνακες από το κομμάτι της βάσης που αντιστοιχεί στην εισαγωγή δεδομένων από τους χρήστες (υποψήφιους καθηγητές του Τμήματος Διαχείρισης Πληροφοριών) της εφαρμογής. Εικόνα 5: Σχέσεις πινάκων1 11

15 Εικόνα 6 : Σχέσεις Πινάκων2 Υπάρχουν άλλοι τρεις πίνακες που αφορούν το κομμάτι της κατάταξης των καθηγητών ανά μάθημα, η οποία θα γίνετε από συγκριμένα πρόσωπα, και είναι οι παρακάτω: Εικόνα 7 : Πίνακες που αφορούν την κατάταξη των καθηγητών 12

16 3.1.2 ΑΝΑΛΥΣΗ ΤΩΝ ΠΙΝΑΚΩΝ Στη συνέχεια θα αναλύσω τους πίνακες της εφαρμογής που υλοποίησα τονίζοντας ότι από τους πίνακες aitisi, teacher, simvoulnum θα αναφερθώ μόνο στα πεδία εκείνα που αφορούν το δικό μου μέρος της εφαρμογής. 1 ος Πίνακας aitisi : Ο πίνακας aitisi αποτελείτε από ένδεκα πεδία. Από αυτά θα αναλύσω τα id, id_teacher και tomeas. Το πεδίο id είναι το πρωτεύων κλειδί του πίνακα, το id_teacher είναι το πρωτεύων κλειδί του πίνακα teacher και είναι το πεδίο σύνδεσης του πίνακα teacher με τον πίνακα aitisi και το πεδίο tomeas όπου αποθηκεύονται οι τιμές Πληροφορική ή Διοίκησης και συναφούς Υποδομής ανάλογα με την επιλογή που θα κάνει ο χρήστης κατά την συμπλήρωση της αίτησης (Εικόνα 8). Εικόνα 8 : Πίνακας aitisi 2 ος Πίνακας biblia : Ο πίνακας biblia αποτελείτε από 6 πεδία. Τα πεδία του πίνακα είναι : το id που είναι και το πρωτεύων κλειδί αυτού του πίνακα, το id_teacher που όπως αναφέρθηκε παραπάνω είναι το πρωτεύων κλειδί του πίνακα teacher και είναι το πεδίο σύνδεσης του πίνακα biblia με τον πίνακα teacher, το πεδίο syggrafeis όπου αποθηκεύονται το ή τα ονοματεπώνυμα των συγγραφέων του βιβλίου, το πεδίο titlos_bibliou όπου αποθηκεύονται ο ή οι τίτλοι του βιβλίου, το πεδίο ekdotikos_oikos όπου αποθηκεύονται το ή 13

17 τα ονόματα των εκδοτικών οίκων των βιβλίων, και το πεδίο imerominia όπου αποθηκεύεται η ημερομηνία έκδοσης του βιβλίου (Εικόνα 9). Να επισημάνω εδώ ότι το πεδίο id αυξάνεται με κάθε νέα καταχώρηση στον πίνακα biblio, το πεδίο id_teacher παίρνει την τιμή του από τον πίνακα teacher και όλα τα υπόλοιπα πεδία παίρνουν τιμές οι οποίες προκύπτουν από τις τιμές που εισάγει ο χρήστης στη φόρμα της αίτησης. Με ανάλογο τρόπο λειτουργούν και οι υπόλοιποι πίνακες της βάσεις δεδομένων πλην κάποιων λεπτομερειών που θα αναφέρω στη συνέχεις. Εικόνα 9 : Πίνακας biblia 3 ος Πίνακας biblia_aitisi : Ο πίνακας biblia_aitisi έχει ακριβώς τα ίδια πεδία με τον πίνακα biblia με την διαφορά ότι αντί του πεδίου id_teacher υπάρχει το πεδίο id_aitisi. Ο πίνακας αυτός δημιουργήθηκε για να είναι το «backup» του πίνακα biblia (Εικόνα 10). Ο σκοπός αυτού του πίνακα, και κάθε άλλου πίνακα με την κατάληξη ***_aitisi είναι να αποθηκεύει τις τιμές που εισάγει ο χρήστης την πρώτη φορά που θα συμπληρώσει την φόρμα της αίτησης. Η διαδικασία αυτή θα αναλυθεί στο επόμενο κεφάλαιο. Έτσι λοιπόν ο πίνακας biblia_aitisi αποτελείτε από 6 πεδία τα οποία είναι τα εξής : το πεδίο id, syggrafeis, titlos_bibliou, ekdotikos_oikos και imerominia. Οι τιμές και η διαδικασία εισαγωγής αυτών είναι ίδια με τα πεδία του πίνακα biblia. To πεδίο id_aitisi συνδέετε με το πεδίο id του πίνακα aitisi. Όπως είδαμε πιο πάνω ο πίνακας aitisi περιέχει το πεδίο id_teacher το οποίο συνδέετε με το πεδίο id του πίνακα teacher και κατ 14

18 επέκταση ο πίνακας biblia_aitisi συνδέετε μέσω του πίνακα aitisi και με τον πίνακα teacher, εφόσον η τιμή του πεδίου id του πίνακα teacher υπάρχει ήδη αποθηκευμένη στο πεδίο id_teacher του πίνακα aitisi. Όλοι οι πίνακες με την κατάληξη ***_aitisi συνδέονται με τον teacher με τον ίδιο ακριβώς τρόπο που συνδέετε ο biblia_aitisi με αυτόν. Εικόνα 10 : Πίνακας biblia_aitisi 4 ος Πίνακας course : Ο πίνακας course υπάρχει ήδη στη βάση δεδομένων του ΤΕΙ για την κάλυψη αναγκών κάποιων άλλων εφαρμογών. Ωστόσο θα τον χρησιμοποιήσω και εγώ στη δική μου εφαρμογή καθώς περιέχει πεδία που αναφέρονται στα μαθήματα της σχολής μας τα οποία πρέπει να εμφανίζονται στη φόρμα που θα συμπληρώνει ο χρήστης αφού του ζητείτε να δηλώσει τα μαθήματα που επιθυμεί να διδάξει στη σχολή. Πιο συγκεκριμένα θα χρησιμοποιήσω τo πεδίο id που περιέχει τον αύξοντα αριθμό του μαθήματος, ο οποίος αριθμός θα είναι και αυτός που θα αποθηκεύετε στους πίνακες teacher_mathimata και teacher_mathimata_aitisi με βάση την επιλογή που θα κάνει ο καθηγητής, και το πεδίο name που περιέχει το όνομα του μαθήματος (Εικόνα 11). 15

19 Εικόνα 11: Πίνακας course 5 ος Πίνακας diathesimotita : Ο πίνακας diathesimotita αποτελείτε από 3 πεδία. Το πρώτο είναι το id που είναι ο αύξων αριθμός και το πρωτεύων κλειδί του πίνακα. Το δεύτερο πεδίο είναι το id_teacher το οποίο συνδέει τον πίνακα diathesimotita με τον πίνακα teacher και το τρίτο πεδίο είναι το πεδίο id_wres_aitisis το οποίο συνδέει τον πίνακα diathesimotita με τον πίνακα wres_aitisis που θα αναλύσω παρακάτω. Το πεδίο id_teacher παίρνει την τιμή που έχει το πεδίο id στον πίνακα teacher και το πεδίο id_wres_aitisis παίρνει την τιμή του πεδίου id από τον πίνακα wres_aitisis. Στην ουσία ο πίνακας diathesimotita είναι ένας ενδιάμεσος πίνακας μεταξύ των δύο τελευταίων που μας δίνει τη δυνατότητα να δούμε ποιες ώρες δήλωσε ένας συγκεκριμένος καθηγητής ότι επιθυμεί να διδάξει στο Τμήμα (Εικόνα 12). Εικόνα 12 : Πίνακας diathesimotita 6 ος Πίνακας diathesimotita_aitisi : Ο πίνακας diathesimotita_aitisi είναι ίδιος στη δομή του με τον πίνακα diathesimotita. Ο πίνακας αυτός διατηρεί τις συνδέσεις που έχει ο πίνακας diathesimotita. Διαφοροποιείτε σε 16

20 σχέση με τον προηγούμενο μόνο στο γεγονός ότι προστίθεται το πεδίο id_aitisi το οποίο συνδέει τον πίνακα αυτόν και με τον πίνακα aitisi. (Εικόνα 13). Εικόνα 13 : Πίνακας diathesimotita_aitisi 7 ος Πίνακας didaktempir : Ο πίνακας didaktempir αναφέρετε στην διδακτική εμπειρία του καθηγητή με βάση τα πεδία της φόρμας της αίτησης που συμπληρώνει ο ίδιος. Αποτελείτε από 11 πεδία. Το πεδίο id είναι το πρωτεύων κλειδί αυτού του πίνακα και ο αύξων αριθμός του. Το πεδίο id_teacher το οποίο συνδέει τον πίνακα didaktempir με τον πίνακα teacher και παίρνει την τιμή του πεδίου id του πίνακα teacher. Το πεδίο paneptei που δηλώνει το ή τα ιδρύματα στα οποία εργάστηκε ο καθηγητής που συμπληρώνει τη φόρμα (πανεπιστήμιο ή ΤΕΙ). Το πεδίο math που δηλώνει το ή τα μαθήματα που δίδαξε. Το πεδίο ores που δηλώνει τις ώρες που δίδαξε. Το πεδίο idiotita που αναφέρετε στην ιδιότητα που είχε ο καθηγητής στο ίδρυμα που εργαζόταν. Το πεδίο diarkia που δηλώνει την συνολική διάρκεια απασχόλησής του στο ίδρυμα. Το πεδίο ar_diakiol που δηλώνει τον αριθμό δικαιολογητικού. Τέλος τα πεδία sumyears, summonths, sumdays τα οποία δηλώνουν αναλυτικά τη συνολική διάρκεια απασχόλησης του καθηγητή σε χρόνια, μήνες και μέρες αντίστοιχα. (Εικόνα 14). 17

21 Εικόνα 14 : Πίνακας didaktempir 8 ος Πίνακας didaktempir_aitisi : Για τον πίνακα didaktempir_aitisi ισχύει ότι είχα αναφέρει παραπάνω για τους πίνακες με κατάληξη ***_aitisi. Είναι ίδιος με τον πίνακα didaktempir μόνο που το πεδίο id_aitisi αντικαταστεί το πεδίο id_teacher του προηγούμενου πίνακα. Εδώ υπάρχει η απευθείας σύνδεση με τον πίνακα aitisi, αφού το πεδίο id_aitisi αυτού του πίνακα συνδέετε με το πεδίο id του πίνακα aitisi, αλλά και μέσω αυτού με τον πίνακα teacher με τον ίδιο ακριβώς τρόπο που είχα αναφέρει στον πίνακα biblia_aitisi (Εικόνα 15). 18

22 Εικόνα 15 : Πίνακας didaktempir_aitisi 9 ος Πίνακας dimosiefseis : Ο πίνακας dimosiefseis δημιουργήθηκε για να αποθηκεύονται σε αυτόν όλα τα στοιχεία που αφορούν στις δημοσιεύσεις που πιθανόν να έχει κάνει ο καθηγητής που συμπληρώνει την αίτηση. Με τα δεδομένα αυτά ο πίνακας αποτελείτε από 8 συνολικά πεδία που είναι τα παρακάτω : πεδίο id το οποίο και σε αυτόν τον πίνακα είναι το πρωτεύων κλειδί και ο αύξων αριθμός. Πεδίο id_teacher που συνδέει αυτόν τον πίνακα με τον πίνακα teacher και παίρνει την τιμή του από το πεδίο id του πίνακα teacher. Πεδίο syggrafeis που δηλώνει το όνομα του συγγραφέα της δημοσίευσης. Πεδίο titlos_ergasias που δηλώνει το όνομα της εργασίας. Πεδίο titlos_periodikou που δηλώνει τον τίτλο του περιοδικού στο οποίο έγινε η δημοσίευση. Πεδίο teyxos που δηλώνει το αριθμό του τεύχους του περιοδικού. Πεδίο selida που δηλώνει τον αριθμό της σελίδας που υπάρχει η εργασία. Πεδίο imerominia που δηλώνει την ημερομηνία έκδοσης του περιοδικού (Εικόνα 16). 19

23 Εικόνα 16 : Πίνακας dimosiefseis 10 ος Πίνακας dimosiefseis_aitisi : Ο πίνακας dimosiefseis_aitisi είναι το «backup» του πίνακα dimosiefseis, κατ επέκταση έχει και την ίδια δομή με αυτόν. Η μόνη αλλαγή που παρουσιάζεται είναι ότι αφαιρείτε το πεδίο id_teacher και προστίθεται το πεδίο id_aitisi. Ότι έχει αναφερθεί στους υπόλοιπους πίνακες με την κατάληξη ***_ aitisi ισχύει και γι αυτόν τον πίνακα. (Εικόνα 17). Εικόνα 17 : Πίνακας dimosiefseis_aitisi 11 ος Πίνακας diploma_euresitexnias : Ο πίνακας αυτός δημιουργήθηκε για να αποθηκεύει τις πληροφορίες που αφορούν στα διπλώματα ευρεσιτεχνίας που έλαβε ο συγκεκριμένος καθηγητής. Αποτελείτε από τα ακόλουθα 5 πεδία : το id που και εδώ είναι ο αύξων αριθμός και το πρωτεύων κλειδί, το id_teacher που συνδέει τον πίνακα αυτόν με τον πίνακα teacher αφού παίρνει την τιμή που έχει το πεδίο id του teacher, το kwdikos που αντιστοιχεί στον κωδικό του συγκεκριμένου διπλώματος, το πεδίο arxi_ekdosis που δηλώνει την υπηρεσία που εξέδωσε το δίπλωμα 20

24 ευρεσιτεχνίας και τέλος το πεδίο imerominia που δηλώνει την ημερομηνία που εγκρίθηκε το δίπλωμα ευρεσιτεχνίας του καθηγητή αυτού. (Εικόνα 18). Εικόνα 18 : Πίνακας diploma_euresitexnias 12 ος Πίνακας diploma_euresitexnias_aitisi : Ο πίνακας αυτός είναι ίδιος με τον προηγούμενο. Η μόνη διαφορά τους είναι ότι σε αυτόν υπάρχει το πεδίο id_aitisi αντί για το πεδίο id_teacher που υπήρχε στον προηγούμενο πίνακα. Το πεδίο id_aitisi αυτού του πίνακα συνδέετε με το πεδίο id του πίνακα aitisi. Εάν η τιμή του πεδίου id του πίνακα teacher υπάρχει αποθηκευμένη στο πεδίο id_teacher του πίνακα aitisi τότε ο τελευταίος αποτελεί τον ενδιάμεσο πίνακα που συνδέει τον πίνακα diploma_euresitexnias_aitisi με τον πίνακα teacher (Εικόνα 19). Εικόνα 19 : Πίνακας diploma_euresitexnias_aitisi 13 ος Πίνακας epagempir : Ο πίνακας epagempir προσδιορίζει την επαγγελματική εμπειρία του καθηγητή, δηλαδή την επιχείρηση στην οποία εργάστηκε, τα καθήκοντα που εκτελούσε, την διάρκεια που εργάστηκε κ.ά. Έτσι λοιπόν έχουμε τα ακόλουθα πεδία : το πεδίο id το οποίο είναι το πρωτεύων κλειδί και ο αύξων αριθμός του πίνακα, το πεδίο id_teacher που συνδέει αυτόν τον πίνακα με τον πίνακα teacher, όπως συμβαίνει και με τους υπόλοιπους πίνακες, το πεδίο ep το οποίο δηλώνει την επωνυμία της επιχείρησης, του ιδρύματος, της εταιρίας κτλ που εργάστηκε ο συγκεκριμένος 21

25 καθηγητής, το πεδίο kathikonta το οποίο αναφέρετε στα καθήκοντα που είχε ο καθηγητής εκεί όπου εργαζόταν, το πεδίο diarkia που δηλώνει την χρονική περίοδο κατά την οποία εργαζόταν ο καθηγητής στην επιχείρηση, ίδρυμα κτλ, το πεδίο dikeologitiko που αναφέρετε στον αριθμό δικαιολογητικού, και τα πεδία sumyears, summonths, sumdays που δηλώνουν αναλυτικά τα χρόνια, τους μήνες και τις μέρες που απασχολήθηκε ο συγκεκριμένος καθηγητής στην επιχείρηση, ίδρυμα κτλ (Εικόνα 20). Εικόνα 20 : πίνακας epagempir 14 ος Πίνακας epagempir_aitisi : Ο πίνακας epagempir_aitisi είναι, όπως έχω αναφέρει παραπάνω για του πίνακες αυτούς, ο «backup» πίνακας του epagempir. Αποτελείτε και αυτός από τα ίδια πεδία με τον προηγούμενο μόνο που εδώ υπάρχει το πεδίο id_aitisi αντί του πεδίου id_teacher. Συνδέετε με τον πίνακα aitisi, και αν πληρούνται οι προϋποθέσεις που ανέφερα στον πίνακα biblia_aitisi συνδέετε και με τον πίνακα teacher (Εικόνα 21). 22

26 Εικόνα 21 : Πίνακας epagempir_aitisi 15 ος Πίνακας ksenes_glwsses : Δημιούργησα τον πίνακα ksenes_glwsses με σκοπό να αποθηκεύω σε αυτόν την ξένη γλώσσα που γνωρίζει ο καθηγητής και τον τίτλο πτυχίου της γλώσσας αυτής. Έχει 5 πεδία. Πρώτο πεδίο το id, ο αύξων αριθμός και το πρωτεύων κλειδί του πίνακα αυτού, δεύτερο το πεδίο id_teacher που συνδέει αυτόν τον πίνακα με τον πίνακα teacher, τρίτο πεδίο το glwssa που δηλώνει τη γλώσσα που γνωρίζει ο καθηγητής, τέταρτο πεδίο το ptyxio που δηλώνει τον τίτλο του πτυχίο της γλώσσας, και τελευταίο πεδίο το πεδίο arithm_dikaiol που δηλώνει τον αριθμό δικαιολογητικού (Εικόνα 22). Εικόνα 22 : Πίνακας ksenes_glwsses 16 ος Πίνακας ksenes_glwsses_aitisi : Είναι και αυτός ίδιος με τον προηγούμενό του με τη διαφορά να είναι στο πεδίο id_aitisi αντί του id_teacher. Οι συνδέσεις που δημιουργούνται και εδώ είναι ίδιες με αυτές που δημιουργούνται και με τους υπόλοιπους ***_aitisi πίνακες. (Εικόνα 23). 23

27 Εικόνα 23 : Πίνακας ksenes_glwsses_aitisi 17 ος Πίνακας simvoulnum : Ο πίνακας αυτός δεν ανήκει στο δικό μου κομμάτι της εφαρμογής, παρ όλα υτά χρησιμοποιώ 3 πεδία. Το πεδίο id_teacher που συνδέει τον πίνακα αυτόν με τον πίνακα teacher, το πεδίο akadetos που δηλώνει το ακαδημαϊκό έτος που συμπληρώνεται η αίτηση και το πεδίο ar_prok_tei που αναφέρετε στον αριθμό προκήρυξης του ΤΕΙ. (Εικόνα 24). Εικόνα 24 : Πίνακας simvoulnum 18 ος Πίνακας eidos_spoudwn : Ο πίνακας eidos_spoudwn είναι ένας βοηθητικός πίνακας για τον πίνακα spoudes που θα αναλύσω αμέσως μετά. Τα πεδία αυτού του πίνακα είναι id και το eidos.( Εικόνα 25). 24

28 Εικόνα 25 : Πίνακας eidos_spoudwn Αυτός ο πίνακας έχει προκαθορισμένες τιμές στα πεδία του οι οποίες παρουσιάζονται στην ακόλουθη εικόνα : Εικόνα 26: Τιμές του πίνακα eidos_spoudwn Στη φόρμα εισαγωγής στοιχείων ο καθηγητής καλείτε να συμπληρώσει στον πίνακα Σπουδές τον τίτλο του Βασικού Τίτλου Σπουδών(ΒΤΣ), τον τίτλο του Μεταπτυχιακού του και τον τίτλο του Διδακτορικού του. Για να διευκολυνθώ εγώ στον τρόπο αποθήκευσης και επεξεργασίας αυτών των τριών πεδίων και για την αποφυγή μπερδεμάτων δημιούργησα τον πίνακα eidos_spoudwn. Έτσι λοιπόν όταν ο καθηγητής συμπληρώσει τον Β.Τ.Σ. εγώ εισάγω στον πίνακα spoudes και στο πεδίο eidos την τιμή του πεδίου id από τον πίνακα eidos_spoudwn δηλαδή την τιμή 1. Αντίστοιχες εισαγωγές τιμών γίνονται και για τις άλλες δύο περιπτώσεις, δηλαδή 2 για το μεταπτυχιακό και 3 για το διδακτορικό. 19 ος Πίνακας spoudes : Ο πίνακας spoudes δημιουργήθηκε με σκοπό να αποθηκεύονται οι πληροφορίες σχετικά με τις σπουδές που έχει κάνει ο καθηγητής που θα συμπληρώσει την αίτηση. Έχουμε 8 πεδία που είναι : το πεδίο id, αύξων αριθμός και πρωτεύων κλειδί του πίνακα, το id_teacher τον που συνδέει με τον πίνακα teacher, το eidos όπου όπως είπα πιο πάνω αποθηκεύονται οι τιμές 1,2,3, ανάλογα με την επιλογή του καθηγητή, το πεδίο τίτλος όπου αποθηκεύεται ο τίτλος σπουδών του πτυχίου που έχει ο καθηγητής, το πεδίο idrima το οποίο αναφέρετε στο ίδρυμα από το οποίο αποφοίτησε ο συγκεκριμένος καθηγητής, το πεδίο im_dikatsa όπου αποθηκεύεται ο αριθμός ΔΙΚΑΤΣΑ, το πεδίο arithm_dikaiologitikou όπου εισάγετε ο αριθμός δικαιολογητικού και το πεδίο etosktisis όπου αποθηκεύετε το έτος κτήσης του πτυχίου από τον καθηγητή (Εικόνα 27). 25

29 Εικόνα 27 : Πίνακας spoudes 20 ος Πίνακας spoudes_aitisi : Ο πίνακας spoudes_aitisi είναι «backup» του πίνακα spoudes. Αλλάζει το πεδίο id_teacher σε id_aitisi. Το πεδίο eidos και εδώ παίρνει τις ανάλογες τιμές από το πεδίο id του πίνακα eidos_spoudwn. Το πεδίο id_aitisi συνδέει αυτόν τον πίνακα με τον πίνακα aitisi. Η σύνδεση με τον πίνακα teacher γίνετε όπως ακριβώς και με τους υπόλοιπους ***_ aitisi πίνακες (Εικόνα 28). Εικόνα 28 : Πίνακας spoudes_aitisi 21 ος Πίνακας synedria : Ο πίνακας αυτός αποθηκεύει πληροφορίες σχετικά με τις ανακοινώσεις που έχει πραγματοποιήσει ο καθηγητής σε διάφορα συνέδρια. Οι πληροφορίες αυτές εισάγονται στα ακόλουθα πεδία: το πεδίο id και εδώ ο αύξων αριθμός και το πρωτεύων κλειδί του πίνακα, το πεδίο id_teacher συνδέει, όπως και στους υπόλοιπους πίνακες, αυτόν τον πίνακα με τον πίνακα teacher παίρνοντας την τιμή του πεδίου id, το πεδίο 26

30 syggrafeis όπου αποθηκεύονται τα ονόματα του καθηγητή και όσων έλαβαν μέρος μαζί του στο ανάλογο συνέδριο, το πεδίο titlos_ergasias που αναφέρετε στον τίτλο της εργασίας με την οποία έλαβαν μέρος στο συνέδριο, το πεδίο titlos_synedriou όπου εισάγεται ο τίτλος του συνεδρίου που έλαβε μέρος ο καθηγητής, το πεδίο poli_xwra όπου εισάγεται το όνομα της χώρας και της πόλης διεξαγωγής του συνεδρίου και τέλος το πεδίο imerominia όπου εισάγεται η ημερομηνία διεξαγωγής του συνεδρίου (Εικόνα 29). Εικόνα 29 : Πίνακας synedria 22 ος Πίνακας synedria_aitisi : Ο πίνακας synedria_aitisi είναι ίδιος με τον προηγούμενο. Η μόνη διαφοροποίηση που παρουσιάζεται και εδώ σε σχέση με τον πίνακα synedria είναι το πεδίο id_aitisi. Τα υπόλοιπα πεδία παραμένουν ίδια. Οι συνδέσεις αυτόυ του είναι όμοιες με τους υπόλοιπους «backup» πίνακες (Εικόνα 30). Εικόνα 30 : Πίνακας synedria_aitisi 27

31 23 ος Πίνακας teacher : Ο πίνακας teacher είναι ο μεγαλύτερος πίνακας που υπάρχει στη βάση δεδομένων μου και αυτό γιατί αποτελείτε από 40 πεδία. Βέβαια οι ανάγκες του δικού μου μέρους της εφαρμογής καλύπτονται από τα 26 πεδία αυτού του πίνακα. Τα πεδία αυτά είναι : το id το οποίο είναι το πρωτεύων κλειδί και ο αύξων αριθμός του πίνακα καθώς επίσης και το πεδίο σύνδεσης του πίνακα teacher με όλους τους υπόλοιπους πίνακες της βάσης, το πεδίο f_name το οποίο περιέχει το όνομα του καθηγητή, το l_name το οποίο περιέχει το επίθετο του καθηγητή, το fathername το οποίο περιέχει το όνομα του πατέρα του, το birthdate που περιέχει την ημερομηνία γέννησης, το family που περιέχει την οικογενειακή κατάσταση του καθηγητή (έγγαμος ή άγαμος), eforia που περιέχει την ΔΟΥ στην οποία ανήκει ο χρήστης, το afm που περιέχει τον αριθμό φορολογικού μητρώου του χρήστη, το address που περιέχει την διεύθυνση κατοικίας του, το tk που περιέχει τον ταχυδρομικό κώδικα, το mail όπου αποθηκεύεται η διεύθυνση του του χρήστη, τα phone1 και mobilephone που αποθηκεύονται οι αριθμοί τηλεφώνου του, το primaryjob που αποθηκεύεται η κύρια εργασία του χρήστη, το childrennumber που περιέχει τον αριθμό παιδιών, το dateoftaftotita που περιέχει την ημερομηνία έκδοσης της ταυτότητάς του, το jobaddress που περιέχει την διεύθυνση της εργασίας του χρήστη, το jobphone το οποίο περιέχει τον αριθμό τηλεφώνου στον εργασιακό χώρο του χρήστη, το password όπου αποθηκεύεται ο προσωπικός αριθμός του χρήστη με τον οποίο θα μπαίνει στην εφαρμογή, το πεδίο sxolia όπου θα μπορεί να συμπληρώσει κάποια σχόλια, το adt που είναι ο αριθμός δελτίου ταυτότητας του χρήστη, το kindofasfalisi όπου αποθηκεύεται το είδος της ασφάλισης του χρήστη, οι τιμές σε αυτό το πεδίο είναι δημοσίου, ιδιωτικού ή ανασφάλιστος, το πεδίο ikanumber όπου αποθηκεύεται ο αριθμός μητρώου ΙΚΑ, το ptyxio_eidikotita όπου αποθηκεύεται το πτυχίο και η ειδικότητα του χρήστη, το πεδίο kindofhelptous όπου αποθηκεύονται οι τιμές Επιστημονικός συνεργάτης, Εργαστηριακός συνεργάτης ή Εκπαιδευτικός Ειδικών μαθημάτων ανάλογα με την επιλογή που θα κάνει ο χρήστης στη φόρμα, και το πεδίο epidomapaidionfromjob όπου παίρνει τις τιμές ΝΑΙ ή ΟΧΙ ανάλογα με την επιλογή του χρήστη (Εικόνα 31). 28

32 Εικόνα 31 : Πίνακας teacher 29

33 24 ος Πίνακας teacher_aitisi : Ο πίνακας teacher_aitisi είναι ίδιος στη δομή με τον teacher μόνο που εδώ προστίθεται και το πεδίο id_aitisi. Άρα λοιπόν εδώ τα πεδία είναι 27 με το πεδίο id_aitisi συνδέει τον teacher_aitisi με τον aitisi. (Εικόνα 32). 30

34 Εικόνα 32 : Πίνακας teacher_aitisi 31

35 25 ος Πίνακας teacher_mathimata : Ο πίνακας teacher_mathimata είναι ένας ενδιάμεσος πίνακας μεταξύ του πίνακα teacher και του πίνακα course. Αποτελείτε από 3 πεδία, το id_teacher όπου αποθηκεύεται η τιμή του πεδίου id από τον πίνακα teacher, το id_mathima όπου αποθηκεύεται η τιμή του πεδίου id από τον πίνακα course και το πεδίο tomeas όπου δηλώνετε ο τομέας του μαθήματος που επιλέγει ο καθηγητής. Σκοπός του πίνακα αυτού είναι να μας δείχνει γρήγορα και εύκολα τα μαθήματα που δήλωσε ο κάθε καθηγητής. (Εικόνα 33). Εικόνα 33 : Πίνακας teacher_mathimata 26 ος Πίνακας teacher_mathimata_aitisi : Όπως οι υπόλοιποι παρόμοιοι με αυτών πίνακες έτσι και αυτός είναι ίδιος με τον προηγούμενό του κα προστίθεται το πεδίο id_aitisi. Τα πεδία παίρνουν τιμές όπως τα πεδία στον teacher_mathimata και οι συνδέσεις παραμένουν οι ίδιες. Το πεδίο id_aitisi παίρνει την τιμή του από το πεδίο id του πίνακα aitisi. (Εικόνα 34) Εικόνα 34 : Πίνακας teacher_mathimata_aitisi 27 ος Πίνακας wres_aitisis : Ο πίνακας wres_aitisis είναι ένας πίνακας με προκαθορισμένες τιμές στα πεδία του, που είναι το id και το perigrafi (Εικόνα 35). 32

36 Εικόνα 35 : Πίνακας wres_aitisis Για παράδειγμα (βλέπε Εικόνα 12) εάν στο πεδίο id_wres_aitisis του πίνακα diathesimotita αποθηκευτεί η τιμή 2,3,5 και 10 (με την τιμή του πεδίου id_teacher=3) από το πεδίο id του πίνακα wres_aitisis θα σημαίνει ότι ο καθηγητής 3 έχει δηλώσει ότι επιθυμεί να διδάξει στο Τμήμα την Δευτέρα το απόγευμα(2), την Τρίτη το πρωί(3), την Τετάρτη το πρωί(5) και την Παρασκευή το απόγευμα(10). Οι επόμενοι τρεις πίνακες που ακολουθούν αφορούν στο δεύτερο μέρος του κομματιού της εφαρμογής που ανέλαβα να υλοποιήσω και είναι το κομμάτι της κατάταξης των καθηγητών ανά μάθημα χρησιμοποιώντας κάποια συγκεκριμένα κριτήρια, τα οποία θα αναφέρω σε επόμενο κεφάλαιο. 28 ος Πίνακας katataksi : Ο πίνακας katataksi, όπως φανερώνει και το όνομά του χρησιμοποιείτε για την αποθήκευση της κατάταξης των ονομάτων των καθηγητών και περιέχει τα εξής 5 πεδία : το id που είναι το πρωτεύων κλειδί και ο αύξων αριθμός του πίνακα, το id_teacher που παίρνει την τιμή του id από τον teacher, το id_mathimata που παίρνει την τιμή από το id του course, το type που παίρνει τις τιμές 1,2 και 3 και το orderlist το οποίο ρυθμίζει την σειρά κατάταξης των ονομάτων. (Εικόνα 36). Για τα δύο τελευταία πεδία θα υπάρξουν διευκρινήσεις σε επόμενο κεφάλαιο. 33

37 Εικόνα 36 : Πίνακας katataksi 29 ος Πίνακας users : Ο πίνακας users χρησιμοποιείτε για λόγους έλεγχου της εισόδου στους πίνακες της κατάταξης. Αποτελείτε από 3 πεδία και είναι : το πεδίο username, password και το πεδίο id_mathimata όπου δηλώνετε ένα όνομα και ένας κωδικός πρόσβασης στους χρήστες καθώς επίσης και τα id των μαθημάτων που έχουν δηλώσει οι χρήστες. (Εικόνα 37). Εικόνα 37 : Πίνακας users 30 ος Πίνακας tempteacherid : Ο πίνακας δημιουργήθηκε καθαρά για βοηθητικούς λόγους. Αποτελείτε από ένα πεδίο, το teacherid, και σκοπός του είναι να ελέγχει τα id από τον teacher κατά την διαδικασία της κατάταξης αυτών στους τρεις πίνακες που θα εμφανίζονται τα αποτελέσματα. Η λειτουργία αυτού του πίνακα θα διευκρινιστεί σε επόμενο κεφάλαιο. (Εικόνα 39). Εικόνα 38 : Πίνακας tempteacherid 34

38 3.2 ΑΝΑΠΤΥΞΗ ΤΟΥ ΚΩΔΙΚΑ Όπως ανέφερα και στην εισαγωγή, το κομμάτι της εφαρμογής που ανέλαβα να υλοποιήσω χωρίζετε σε δύο μέρη. Το πρώτο μέρος αφορά τους χρήστες της εφαρμογής, δηλαδή τους καθηγητές που θα συμπληρώσουν την αίτηση με την οποία δηλώνουν την επιθυμία τους να διδάξουν στο Τμήμα Διαχείρισης Πληροφοριών. Το δεύτερο μέρος αφορά στην κατάταξη αυτών των καθηγητών ανά μάθημα. Η κατάταξη αυτή θα γίνετε από τον προϊστάμενο του Τμήματος και κάποιους χρήστες που θα ορίζει ο ίδιος. Έτσι ο κώδικας θα αναλυθεί σε δύο μέρη ο ΜΕΡΟΣ Το πρώτο μέρος της εφαρμογής ξεκινά με την ιστοσελίδα eisοdos.html που είναι και η είσοδος στην εφαρμογή. Ο κώδικάς της είναι: 1 <HTML> 2 <HEAD> 3 <TITLE>ΕΙΣΟΔΟΣ ΣΤΗΝ ΕΦΑΡΜΟΓΗ</TITLE> 4 < /HEAD> 5 <BODY bgcolor="#6ec6f1"> 6 <FORM action="cgi-bin/call_aitisi.tcl" method="post"> 7 <TABLE align="center" width="%" height="%"> 8 <TR> 9 <TD align="center"><h3>είσοδος Στις Αιτήσεις</H3> 10 <INPUT type="submit" value="αιτησεισ"> 11 </TABLE> 12 </FORM> 13 <FORM action="cgi-bin/katataksi_login.tcl" method="post"> 14 <TABLE align="center" width="%" height="%"> 15 <TR> 16 <TD align="center"><h3>είσοδος Στις Κατατάξεις</H3> 17 <INPUT type="submit" value="καταταξεισ"> 18 </TABLE> 19 </FORM> 20 </BODY> 21 </HTML> Όπως βλέπετε είναι μία απλή σελίδα γραμμένη σε γλώσσα HTML. Η ετικέτα HEAD δηλώνει το όνομα της επικεφαλίδας και η τιμή της ετικέτας TITLE θα αναγράφετε πάνω στο παράθυρο. Στην ετικέτα BODY δηλώνω το χρώμα (#6EC6F1) του φόντου της εφαρμογής. Στη συνέχεια με την ετικέτα TABLE δημιουργούμε έναν πίνακα ο οποίος δεν θα είναι ορατός στη σελίδα γιατί δεν έχει δηλωθεί 35

39 η ετικέτα BORDER, η οποία εμφανίζει τις γραμμές του πίνακα. Υπάρχουν δύο ετικέτες FORM στον κώδικα αυτό, που περιέχουν δύο διαφορετικά κουμπιά. Η πρώτη ξεκινά από την γραμμή 6 και τελειώνει στη γραμμή 12 και περιέχει ένα κουμπί το οποίο πατώντας το πηγαίνουμε στη σελίδα call_aitisi.tcl, όπως δηλώνει η ετικέτα action στην 6 η γραμμή. Το κουμπί αυτό θα στείλει όποιες πληροφορίες υπάρχουν στη σελίδα αυτή με την μέθοδο POST. Αυτό το κουμπί δηλώνετε από την ετικέτα INPUT με type = submit. Η δεύτερη FORM, που έχει ίδια δομή με την πρώτη, ξεκινά από τη γραμμή 13 και τελειώνει στη γραμμή 19, ορίζει ένα κουμπί το οποίο μας πάει στη σελίδα katataksi_login.tcl. Τέλος κλείνουν όλες οι ετικέτες από τη γραμμή 8 μέχρι την γραμμή 11. Ερχόμαστε στην δεύτερη σελίδα, την call_aitisi.tcl. Η σελίδα αυτή περιέχει μέσα στον κώδικα της HTML και κώδικα TCL. Ας δούμε τον κώδικα: 1 #!c:\tcl\bin\tclsh.exe 2 # 3 puts "Content-type: text/html\n\n" 4 5 load fbsql.dll 6 sql connect localhost root 7 sql "use ptyxiaki" 8 9 puts <HTML> 10 puts <BODY\ bgcolor=\"#6ec6f1\"> 11 puts <FORM\ action=\"/cgi-bin/aitisi.tcl\"\ method=\"post\"> 12 puts <TABLE\ width=\"%\"\ height=\"%\"> 13 puts <TR> 14 puts <TD><H3>Εάν\ θέλετε\ να\ κάνετε\ αίτηση\ για\ πρώτη\ φορά\ πατήστε\ εδώ : 15 puts <INPUT\ type=\"submit\"\ value=\"νεα\ ΑΙΤΗΣΗ\"> 16 puts </TABLE> 17 puts </FORM> 18 puts <BR> 19 puts <BR> 20 puts <FORM\ action=\"/cgi-bin/password.tcl\"\ method=\"post\"> 21 puts <TABLE\ width=\"%\"\ height=\"%\"> 22 puts <TR> 23 puts <TD><H3> Εάν\ έχετε\ ξανακάνει\ αίτηση\ στο\ παρελθόν\ πατήστε\ εδώ: 24 puts <INPUT\ type=\"submit\"\ value=\"παλια\ ΑΙΤΗΣΗ\"> 25 puts </TABLE> 26 puts </FORM> 27 puts </BODY> 28 puts </HTML> 36

40 Ξεκινώντας αυτός ο κώδικας μας δίνει την πληροφορία ότι είναι γραμμένος σε γλώσσα TCL που εμπεριέχετε στην HTML. Στη γραμμή 5 φορτώνετε η βιβλιοθήκη fbsql.dll, που όπως είχα αναφέρει και στο δεύτερο κεφάλαιο, διαχειρίζεται την MySQL μέσα από tcl scripts. Στη γραμμή 6 γίνετε σύνδεση της σελίδας με τον τοπικό server, στη δική μου περίπτωση είναι οapache, και στην γραμμή 7 γίνετε σύνδεση με τη βάση δεδομένων που εγώ ονόμασα ptyxiaki. Οι 7 πρώτες γραμμές θα εμφανίζονται σε όλα τα υπόλοιπα κομμάτια κώδικα που θα αναλύσω στη συνέχεια. Ο κώδικας της TCL απαιτεί κάθε γραμμή κώδικα να ξεκινά με το puts. Επίσης πριν από κάθε κενό ( ) ή πριν από κάθε σημείο στίξης (, :, κτλ) θα πρέπει να εισάγεται το ( \ ). Σε αυτό το κομμάτι του κώδικα υπάρχουν δύο φόρμες, η μία ξεκινά από τη γραμμή 11 και τελειώνει 17 και η άλλη από τη γραμμή 20 μέχρι τη γραμμή 26. Η κάθε μία περιέχει ένα κουμπί. Στην πρώτη το πάτημα του κουμπιού μας πηγαίνει στη σελίδα aitisi.tcl ενώ στη δεύτερη μας πηγαίνει στη σελίδα password.tcl. Ο λόγος ύπαρξης δύο κουμπιών στη φόρμα είναι για να διαχωρίζονται οι καθηγητές που θέλουν να κάνουν αίτηση για πρώτη φορά με αυτούς που έχουν ξανακάνει και είναι καταχωρημένοι στη βάση δεδομένων. Ας αναλύσουμε τον κώδικα της πρώτης περίπτωσης. Πηγαίνουμε στη σελίδα aitisi.tcl. Παραθέτω το κομμάτι όπου υπάρχει ο πίνακας στον οποίο ο καθηγητής συμπληρώνει τα προσωπικά του στοιχεία, ακολουθεί ο πίνακας με τα μαθήματα που επιθυμεί να διδάξει και πρέπει να διαλέξει από 1 έως και 5 μαθήματα και τέλος ο πίνακας με τις ημέρες και ώρες που μπορεί να ασχοληθεί. Οι υπόλοιποι πίνακες έχουν την ίδια λειτουργία με τον πίνακα προσωπικών στοιχείων, δηλαδή απλά ο καθηγητής εισάγει τα στοιχεία που κάθε φορά του ζητείτε να εισάγει. Σημείωση: Για λόγους συντομίας δεν θα αναλύσω όλο τον κώδικα της σελίδας αλλά τα πιο ουσιώδη τμήματα. Εξάλλου θα ακολουθήσει στο επόμενο κεφάλαιο παρουσίαση της φόρμας aitisi.tcl και στο τέλος του εγχειριδίου υπάρχει παράρτημα με όλα τα κομμάτια του κώδικα συγκεντρωμένα εκεί. 37

41 1 puts <TABLE\ border=\"1\"> 2 puts <TR> 3 puts <TD>ΕΠΩΝΥΜΟ\:<TD><INPUT\ type=\"text\"\ name=\"eponymo\"> 4 puts <TR> 5 puts <TD>ΟΝΟΜΑ\:<TD><INPUT\ type=\"text\"\ name=\"onoma\"> 6 puts <TR> 7 puts <TD>ΠΑΤΡΩΝΥΜΟ\:<TD><INPUT\ type=\"text\"\ name=\"patronymo\"> 8 puts <TR> 9 puts <TD\ width=\"4%\"\ nowrap>ετοσ\ ΓΕΝ.\:<TD><INPUT\ type=\"text"\ name=\"etos_gen\"> 10 puts μορφή:\ ΕΕΕΕ-ΜΜ-ΗΗ 11 puts <TR> 12 puts <TD>Δ/ΝΣΗ\ ΚΑΤΟΙΚΙΑΣ\:<TD><INPUT\ type=\"text"\ name=\"home_address\"> 13 puts <TR> 14 puts <TD>ΤΑΧ.\ ΚΩΔ.\ ΠΟΛΗ\:<TD><INPUT\ type=\"text"\ name=\"country_code\"> 15 puts <TR> 16 puts <TD>ΤΗΛ.\ ΟΙΚΙΑΣ\:<TD><INPUT\ type=\"text\"\ name=\"home_number\"> 17 puts <TD>ΚΗΝΙΤΟ\ ΤΗΛ\:<TD><INPUT\ type=\"text\"\ name=\"mobile_num\"> 18 puts <TR> 19 puts <TD> \:<TD><INPUT\ type=\"text\"\ name=\"e_mail\"> 20 puts <TR> 21 puts <TD>ΑΡΙΘΜ.\ ΔΕΛΤΙΟΥ\ ΤΑΥΤΟΤΗΤΑΣ\:<TD><INPUT\ type=\"text\"\ name=\"arith_taytotitas\"> 22 puts <TD\ width=\"3%\"\ nowrap>ημερ/νία\ Έκδοσης\/Εκδούσα\ Αρχή\:<TD><INPUT\ type=\"text\"\ name=\"imer_ekdosis\"> 23 puts μορφή:\ ΕΕΕΕ-ΜΜ-ΗΗ 24 puts <TR> 25 puts <TD>Α.Φ.Μ.\:<TD><INPUT\ type=\"text\"\ name=\"afm\"> 26 puts <TD>Δ.Ο.Υ.\:<TD><INPUT\ type=\"text\"\ name=\"doy\"> 27 puts <TR> 28 puts <TD>ΟΙΚΟΓΕΝΕΙΑΚΗ\ ΚΑΤΑΣΤΑΣΗ\: 29 puts <TD>ΕΓΓΑΜΟΣ<INPUT\ type=\"radio\"\ name=\"oik_kat\"\ value=\"engamos\"> 30 puts <TD>ΑΓΑΜΟΣ<INPUT\ type=\"radio\"\ checked=\"checked\"\ name=\"oik_kat\"\ value=\"agamos\"> 31 puts <TD>ΑΡΙΘΜΟΣ\ ΠΑΙΔΙΩΝ\: 32 puts <TD><INPUT\ type=\"text\"\ name=\"paidia\"> 33 puts <TR> 34 puts <TD>ΧΟΡΗΓΗΣΗ\ ΟΙΚΟΓΕΝΙΑΚΟΥ\ ΕΠΙΔΟΜΑΤΟΣ\ ΑΠΟ\ ΤΗΝ \ ΥΠΗΡΕΣΙΑ\ ΣΑΣ\: 35 puts <TD>ΝΑΙ<INPUT\ type=\"radio\"\ checked=\"checked\"\ name=\"oik_epid\"\ value=\"yes\"> 36 puts <TD>ΟΧΙ<INPUT\ type=\"radio\"\ name=\"oik_epid\"\ value=\"no\"> 37 puts </TABLE> 38 puts <TABLE\ border=\"1\"> 39 puts <TR> 40 puts <TD>ΠΤΥΧΙΟ\/ΕΙΔΙΚΟΤΗΤΑ: 41 puts <TD><TEXTAREA\ rows=\"5\"\ cols=\"50\"\ name=\"ptyxio_eidik\"></textarea> 42 puts </TABLE> 43 puts <TABLE\ border=\"1\"> 44 puts <TR> 45 puts <TD>ΕΠΑΓΓΕΛΜΑ\: 46 puts <TD>ΔΗΜ\ ΥΠΑΛΛΗΛΟΣ<INPUT\ type=\"radio\"\ name=\"epaggelma\"\ value=\"dim_ypal\"> 47 puts <BR>ΙΔΙΩΤ\ ΥΠΑΛΛΗΛΟΣ <INPUT\ type=\"radio\"\ name=\"epaggelma\"\ value=\"idiot_ypal\"> 48 puts <BR>ΕΛΕΥΘΕΡΟΣ\ ΕΠΑΓΓΕΛΜΑΤΙΑΣ<INPUT\ type=\"radio\"\ name=\"epaggelma\"\ value=\"eleyth_epag\"\ checked=\"checked\"> 49 puts <BR>ΑΝΕΡΓΟΣ<INPUT\ type=\"radio\"\ name=\"epaggelma\"\ value=\"anergos\"> 50 puts <TR> 51 puts <TD>ΦΟΡΕΑΣ\ ΑΣΦΑΛΙΣΗΣ\: 52 puts <TD> 38

42 53 puts ΔΗΜΟΣΙΟΥ<INPUT\ type=\"radio\"\ checked=\"checked\"\ name=\"asfalisi\"\ value=\"dimosiou\"> 54 puts <BR> 55 puts ΙΔΙΩΤΙΚΗ<INPUT\ type=\"radio\"\ name=\"asfalisi\"\ value=\"idiwtikh\"> 56 puts <BR> 57 puts ΑΝΑΣΦΑΛΙΣΤΟΣ<INPUT\ type=\"radio\"\ name=\"asfalisi\"\ value=\"anasfalistos\"> 58 puts <TR> 59 puts <TD>ΑΡΙΘ. \ ΜΗΤΡΩΟΥ\ ΙΚΑ\:<TD><INPUT\ type=\"text\"\ name=\"ika\"> 60 puts <TR> 61 puts <TD>Δ/ΝΣΗ\ ΕΡΓΑΣΙΑΣ\:<TD><INPUT\ type=\"text\"\ name=\"work_add\"> 62 puts <TD>\ ΤΗΛΕΦΩΝΟ\ ΕΡΓΑΣΙΑΣ:<TD><INPUT\ type=\"text\"\ name=\"work_num\"> 63 puts </TABLE> 64 puts </TABLE> 65 puts <INPUT\ type=\"password\"\ name=\"password\"> Βλέπουμε ότι η ετικέτα INPUT type=text, που σημαίνει ότι έχουμε πεδία εισαγωγής κειμένου, εμφανίζετε σε όλες τις στήλες των πινάκων που δημιουργούνται και αυτό γιατί στη σελίδα aitisi.tcl όπως προείπα γίνετε εισαγωγή στοιχείων στη βάση. Από τη γραμμή 28 και κάτω η ετικέτα INPUT αλλάζει τύπο και γίνετε, σε ορισμένες περιπτώσεις, type=radio δηλαδή έχουμε τα λεγόμενα radiobuttons όπου ομαδοποιούνται, π.χ στις γραμμές έχουνε name=oik_kat. Αυτό σημαίνει πως από την συγκεκριμένη ομάδα radiobuttons μπορώ να επιλέξω μόνο ένα, ανεξάρτητα από τον αριθμό τους. Στην τελευταία γραμμή υπάρχει η ετικέτα INPUT με type=password που σημαίνει ότι η εισαγωγή στοιχείων δεν θα εμφανίζετε με τη μορφή στοιχείων αλλά με τη μορφή *****. Το πεδίο αυτό δίνει τη δυνατότητα στον καθηγητή να εισάγει έναν προσωπικό κωδικό με τον οποίο θα μπορεί να μπει στην εφαρμογή και θα επεξεργάζεται στο μέλλον τις αιτήσεις που έχει κάνει. 1 puts <TABLE\ border=\"1\"> 2 puts <TR> 3 puts <TD>A/A 4 puts <TD\ align="center">τίτλος\ μαθήματος 5 puts <TD>Τομέας\ (\"Πληροφορικής\"\ή\ 6 puts <BR> 7 puts \"Διοίκησης\ και\ συναφούς\ Υποδομής\") 8 puts <TR> 9 puts <TD>1 10 puts <TD><SELECT\ name=\"mathimata1\"> 11 puts <OPTION\ value=\"0\">---</option> foreach row [sql "SELECT id, name FROM course"] { 14 set id_mathimata [lindex $row 0] 15 set name [lindex $row 1] 39

43 16 puts <OPTION\ value=\"$id_mathimata\">$name</option> 17 } 18 puts </SELECT> 19 puts <TD><INPUT\ type=\"text\"\ name=\"tomeas1\"> Το πιο ουσιώδες κομμάτι του παραπάνω κώδικα είναι οι γραμμές 10 μέχρι 18. Είναι το πρώτο σημείο στο οποίο γίνετε άντληση πληροφοριών από τη βάση δεδομένων. Η ετικέτα SELECT εισάγει στη φόρμα ένα listbox. Στη γραμμή 13 βλέπουμε την συνάρτηση foreach η οποία είναι μία συνάρτηση επανάληψης. Μέσα στη συνάρτηση αυτή δηλώνετε η μεταβλητή row και ακολουθεί η εντολή της sql SELECT με την οποία διαβάζουμε όλα τα δεδομένα των πεδίων id και name από τον πίνακα course. Στη γραμμή 14 δηλώνουμε την μεταβλητή id_mathimata που θα πάρει την πρώτη τιμή (id) του string row που θα επιστραφεί από τη foreach ενώ στη γραμμή 15 δηλώνουμε την μεταβλητή name που θα πάρει την δεύτερη τιμή (name) του string row που θα επιστραφεί. Λόγο της επανάληψης της foreach στις δύο μεταβλητές θα αποθηκευτούν όλες τις τιμές που υπάρχουν στα δύο πεδία του πίνακα και θα εμφανιστούν μέσω της ετικέτας OPTION στο listbox της φόρμας. Έτσι ο καθηγητής βλέπει όλα τα διαθέσιμα μαθήματα και επιλέγει εκείνα που τον ενδιαφέρουν. 1 puts <TABLE\ border=\"1\"> 2 puts <TR> 3 puts <TD>ΔΕΥΤΕΡΑ 4 puts <TD>ΠΡΩΙ\ (08:00-14:00) 5 puts <TD><INPUT\ type=\"checkbox\"\ value=\"1\"\ name=\"monday_morning\"> 6 puts <TD>ΑΠΟΓΕΥΜΑ\ (14:00-20:00) 7 puts <TD><INPUT\ type=\"checkbox\"\ value=\"2\"\ name=\"monday_afternoon\"> 8 puts <TR> 9 puts <TD>ΤΡΙΤΗ 10 puts <TD>ΠΡΩΙ\ (08:00-14:00) 11 puts <TD><INPUT\ type=\"checkbox\"\ value=\"3\"\ name=\"tuesday_morning\"> 12 puts <TD>ΑΠΟΓΕΥΜΑ\ (14:00-20:00) 13 puts <TD><INPUT\ type=\"checkbox\"\ value=\"4\"\ name=\"tuesday_afternoon\"> 14 puts <TR> 15 puts <TD>ΤΕΤΑΡΤΗ 16 puts <TD>ΠΡΩΙ\ (08:00-14:00) 17 puts <TD><INPUT\ type=\"checkbox\"\ value=\"5\"\ name=\"wednesday_morning\"> 18 puts <TD>ΑΠΟΓΕΥΜΑ\ (14:00-20:00) 19 puts <TD><INPUT\ type=\"checkbox\"\ value=\"6\"\ name=\"wednesday_afternoon\"> 20 puts <TR> 21 puts <TD>ΠΕΜΠΤΗ 22 puts <TD>ΠΡΩΙ\ (08:00-14:00) 23 puts <TD><INPUT\ type=\"checkbox\"\ value=\"7\"\ name=\"thursday_morning\"> 40

44 24 puts <TD>ΑΠΟΓΕΥΜΑ\ (14:00-20:00) 25 puts <TD><INPUT\ type=\"checkbox\"\ value=\"8\"\ name=\"thursday_afternoon\"> 26 puts <TR> 27 puts <TD>ΠΑΡΑΣΚΕΥΗ 28 puts <TD>ΠΡΩΙ\ (08:00-14:00) 29 puts <TD><INPUT\ type=\"checkbox\"\ value=\"9\"\ name=\"friday_morning\"> 30 puts <TD>ΑΠΟΓΕΥΜΑ\ (14:00-20:00) 31 puts <TD><INPUT\ type=\"checkbox\"\ value=\"10\"\ name=\"friday_afternoon\"> 32 puts </TABLE> Εδώ βλέπουμε έναν άλλον τύπο της ετικέτας INPUT, το type=checkbox. Ο καθηγητής μέσα από 10 επιλογές καλείτε να διαλέξει τις μέρες και ώρες που μπορεί να ασχοληθεί. Ας εξετάσουμε μία τέτοια επιλογή. Υποθέτουμε ότι ο καθηγητής επιλέγει Δευτέρα πρωί, Τετάρτη απόγευμα και Παρασκευή πρωί και απόγευμα. Αυτό σημαίνει πως στον πίνακα diathesimotita (βλέπε εικόνα 12) της βάσης δεδομένων μαζί με την τιμή του id του καθηγητή θα αποθηκευτούν οι τιμές 1, 6, 9 και 10. Στο τέλος της σελίδας aitisi.tcl και αφού έχουν συμπληρωθεί όλα τα πεδία της φόρμας, υπάρχει η γραμμή του κώδικα : puts <INPUT\ type=\"submit\"\ value=\"αποστολη\ ΑΙΤΗΣΗΣ\"> Το κουμπί ΑΠΟΣΤΟΛΗ ΑΙΤΗΣΗΣ στέλνει όλες τις τιμές που έχει δώσει ο καθηγητής στη φόρμα, στη σελίδα apotelesma.tcl. Στη σελίδα αυτή θα γίνουν όλες οι αποθηκεύσεις των τιμών που έδωσε ο καθηγητής στα κατάλληλα πεδία και στους κατάλληλους πίνακες της βάσης δεδομένων. Θα δούμε τις αποθηκεύσεις των παραπάνω τιμών. 1 #!c:\tcl\bin\tclsh.exe 2 # 3 puts "Content-type: text/html\n\n" 4 # Sindesi me ti basi dedomenon 5 load fbsql.dll 6 sql connect localhost root 7 sql "use ptyxiaki" 8 puts <HTML> 9 puts <BODY\ bgcolor="#6ec6f1"> 10 set monday_morning 0 11 set monday_afternoon 0 12 set tuesday_morning 0 13 set tuesday_afternoon 0 41

45 14 set wednesday_morning 0 15 set wednesday_afternoon 0 16 set thursday_morning 0 17 set thursday_afternoon 0 18 set friday_morning 0 19 set friday_afternoon 0 20 set mathimata set mathimata set mathimata set mathimata set mathimata set ltmp [split [read stdin] &] 26 foreach {tmp} $ltmp { 27 regexp (.*)=(.*) $tmp match tmp1 tmp2 28 regsub -all {\+} $tmp2 { } tmp2 29 regsub -all {\%0D\%0A} $tmp2 "\n" tmp2 30 regsub -all {%([A-F0-9][A-F0-9])} $tmp2 {[format %c 0x\1]} tmp2 31 set tmp2 [subst $tmp2] 32 set $tmp1 $tmp2 33 if {$tmp1=="eponymo"} { 34 set eponymo $tmp2 35 } 36 if {$tmp1=="onoma"} { 37 set onoma $tmp2 38 } 39 if {$tmp1=="patronymo"} { 40 set patronymo $tmp2 41} 42 if {$tmp1=="etos_gen"} { 43 set etos_gen $tmp2 44} 45 if {$tmp1=="home_address"} { 46 set home_address $tmp2 47} 48 if {$tmp1=="country_code"} { 49 set country_code $tmp2 50 } 51 if {$tmp1=="home_number"} { 52 set home_number $tmp2 53 } 54 if {$tmp1=="mobile_num"} { 55 set mobile_num $tmp2 56 } 57 if {$tmp1=="e_mail"} { 58 set e_mail $tmp2 59 } 60 if {$tmp1=="arith_taytotitas"} { 61 set arith_taytotitas $tmp2 62 } 63 if {$tmp1=="imer_ekdosis"} { 64 set imer_ekdosis $tmp2 65 } 66 if {$tmp1=="afm"} { 67 set afm $tmp2 68 } 69 if {$tmp1=="doy"} { 42

46 70 set doy $tmp2 71 } 72 if {$tmp1=="oik_kat"} { 73 set oik_kat $tmp2 74 } 75 if {$tmp1=="paidia"} { 76 set paidia $tmp2 77 } 78 if {$tmp1=="oik_epid"} { 79 set oik_epid $tmp2 80 } 81 if {$tmp1=="ptyxio_eidik"} { 82 set ptyxio_eidik $tmp2 83 } 84 if {$tmp1=="epaggelma"} { 85 set epaggelma $tmp2 86 } 87 if {$tmp1=="asfalisi"} { 88 set asfalisi $tmp2 89 } 90 if {$tmp1=="ika"} { 91 set ika $tmp2 92 } 93 if {$tmp1=="work_add"} { 94 set work_add $tmp2 95 } 96 if {$tmp1=="work_num"} { 97 set work_num $tmp2 98 } 99 if {$tmp1=="sxolia"} { 100 set sxolia $tmp2 101} 102 if {$tmp1=="password"} { 103 set password $tmp2 104} 105 if {$tmp1=="mathimata1"} { 106 set mathimata1 $tmp2 107} 108 if {$tmp1=="tomeas1"} { 109 set tomeas1 $tmp2 110 } 111 if {$tmp1=="mathimata2"} { 112 set mathimata2 $tmp2 113 } 114 if {$tmp1=="tomeas2"} { 115 set tomeas2 $tmp2 116 } 117 if {$tmp1=="mathimata3"} { 118 set mathimata3 $tmp2 119} 120 if {$tmp1=="tomeas3"} { 121 set tomeas3 $tmp2 122 } 123 if {$tmp1=="mathimata4"} { 124 set mathimata4 $tmp2 125 } 126 if {$tmp1=="tomeas4"} { 127 set tomeas4 $tmp2 128 } 129 if {$tmp1=="mathimata5"} { 43

47 130 set mathimata5 $tmp2 131} 132 if {$tmp1=="tomeas5"} { 133 set tomeas5 $tmp2 134} 135 if {$tmp1=="monday_morning"} { 136 set $monday_morning } 138 if {$tmp1=="monday_afternoon"} { 139 set $monday_afternoon 2 140} 141 if {$tmp1=="tuesday_morning"} { 142 set $tuesday_morning 3 143} 145 if {$tmp1=="tuesday_afternoon"} { 146 set $tuesday_afternoon } 148 if {$tmp1=="wednesday_morning"} { 149 set $wednesday_morning } 151 if {$tmp1=="wednesday_afternoon"} { 152 set $wednesday_afternoon } 154 if {$tmp1=="thursday_morning"} { 155 set $thursday_morning } 157 if {$tmp1=="thursday_afternoon"} { 158 set $thursday_afternoon } 160 if {$tmp1=="friday_morning"} { 161 set $friday_morning } 163 if {$tmp1=="friday_afternoon"} { 164 set $friday_afternoon 10 Οι γραμμές δίνουν την τιμή 0 στις αντίστοιχες μεταβλητές γιατί αυτές οι μεταβλητές είναι πιθανόν να μην πάρουν τιμή μετά την επιλογή που θα κάνει ο καθηγητής. Έτσι τις ορίζω από την αρχή 0 και αν και στη συνέχεια που θα γίνει η αποθήκευση των τιμών στη βάση, τα πεδία αυτά δεν έχουν πάρει τιμές, είναι δηλαδή 0, δεν θα αποθηκευτούν στη βάση. Στην ουσία αποθηκεύω μόνο τις μεταβλητές που έχουν τιμές ούτως ώστε η βάση να μη γεμίζει με κενές εγγραφές. Στη συνέχεια από τη γραμμή 26 έως 165 υπάρχει η εντολή foreach η οποία παίρνει τις τιμές που στέλνονται από τις μεταβλητές της σελίδας aitisi.tcl. Οι τιμές που βρίσκονται στον παραπάνω κώδικα, από τη γραμμή 33 έως 165, είναι οι τιμές από τις μεταβλητές που ανέφερα πιο πάνω, από τα προσωπικά στοιχεία του καθηγητή, από τα μαθήματα, από τις ημέρες και ώρες που επέλεξε. 44

48 Στο επόμενο κομμάτι κώδικα θα αποθηκευτούν οι τιμές αυτές στους αντίστοιχους πίνακες της βάσης δεδομένων. 1 sql "INSERT INTO teacher (kindofhelptous, f_name, l_name, fathername, 2password, sxolia, birthdate, address, tk, phone1, mobilephone, mail, adt, 3dateoftaftotita, afm, eforia, family, childrennumber, epidomapaidionfromjob, 4ptyxio_eidikotita, primaryjob, kindofasfalisi, ikanumber, jobaddress, jobphone) 5VALUES ('$synergatis', '$onoma', '$eponymo', '$patronymo', '$password', '$sxolia', 6'$etos_gen', '$home_address', '$country_code', '$home_number', '$mobile_num', 7'$e_mail', '$arith_taytotitas', '$imer_ekdosis', '$afm', '$doy', '$oik_kat', '$paidia', 8'$oik_epid', '$ptyxio_eidik', '$epaggelma', '$asfalisi', '$ika', '$work_add', 9'$work_num')" Για την αποθήκευση των τιμών χρησιμοποίησα την εντολή της sql insert. Από τη γραμμή 1 έως τη γραμμή 4 παρουσιάζονται τα πεδία του πίνακα teacher και από τη γραμμή 5 έως τη γραμμή 9 οι αντίστοιχες τιμές τους. Οι τιμές των μεταβλητών έχουν τον συμβολισμό ( $ ). increment Το πεδίο id του πίνακα teacher το έχω δηλώσει ως auto που σημαίνει ότι με κάθε νέα εγγραφή στον πίνακα teacher αυτό θα αυξάνει κατά ένα αυτόματα. Την τιμή αυτή του id θα τη χρειαστώ για όλες τις υπόλοιπες εγγραφές που θα γίνουν, με τις πληροφορίες που θα δώσει ο συγκεκριμένος καθηγητής, στους πίνακες. Πρέπει λοιπόν να πάρω αυτήν την τιμή και να τη χρησιμοποιήσω σαν «συνδετικό κρίκο» μεταξύ όλων των πινάκων. Ο τρόπος για να το κάνω περιγράφετε παρακάτω: foreach row [sql "SELECT MAX(id) FROM teacher LIMIT 0,1 "] { set id_teacher [lindex $row 0] } Χρησιμοποιώντας την συνάρτηση foreach και με την εντολή SELECT της sql θα πάρω την μέγιστη τιμή του id(μαχid) από τον πίνακα teacher. Αυτή η τιμή δηλώνει στην ουσία την τελευταία εγγραφή που έγινε στον πίνακα teacher. Κάθε πεδίο id_teacher όλων των πινάκων θα παίρνει την τιμή που θα έχει αυτό το id. Κάθε νέα εγγραφή στον teacher συνεπάγεται και με μία νέα αίτηση, άρα έχουμε αποθήκευση τιμών και στον πίνακα aitisi. Το πεδίο id του πίνακα aitisi είναι επίσης auto increment. 45

49 sql "INSERT INTO aitisi (id_teacher, tomeas) VALUES ('$id_teacher', '$tomeas')" Στην παραπάνω γραμμή κώδικα βλέπουμε την αποθήκευση αυτή. Τα πεδία στα οποία θα αποθηκευτούν τιμές είναι τα id_teacher το οποίο θα πάρει την τιμή του από το πεδίο id του πίνακα teacher και το πεδίο tomeas που θα πάρει την τιμή που θα δώσει ο καθηγητής από τη φόρμα. Η τιμή του πεδίου id του πίνακα αυτού θα αποτελέσει επίσης «συνδετικό κρίκο» κυρίως μεταξύ των ***_aitisi πινάκων. Κάθε πεδίο id_aitisi των πινάκων αυτών θα παίρνει την τιμή που θα έχει αυτό το id. Για να πάρω αυτήν την τιμή θα χρησιμοποιήσω τον ίδιο τρόπο με τον οποίο πήρα την τιμή του id από τον teacher, δηλαδή: foreach row [sql "SELECT MAX(id) FROM aitisi LIMIT 0,1 "] { set id_aitisi [lindex $row 0] } Βέβαια όπως είχα αναφέρει και στην παράγραφο 3.1.2, κάθε πίνακας στη βάση έχει και τον αντίστοιχο «backup» του, γι αυτό η ίδια αποθήκευση τιμών που γίνετε στον πίνακα teacher θα γίνει και στον πίνακα αποθήκευση: teacher_aitisi ταυτόχρονα. Εδώ έχουμε την εξής 1sql "INSERT INTO teacher_aitisi (kindofhelptous, f_name, l_name, fathername, 2password, id_aitisi, id, sxolia, birthdate, address, tk, phone1, mobilephone, mail, adt, 3dateoftaftotita, afm, eforia, family, childrennumber, epidomapaidionfromjob, 4ptyxio_eidikotita, primaryjob, kindofasfalisi, ikanumber, jobaddress, jobphone) 5VALUES ('$synergatis', '$onoma', '$eponymo', '$patronymo', '$password', 6'$id_aitisi', '$id_teacher', '$sxolia', '$etos_gen', '$home_address', '$country_code', 7'$home_number', '$mobile_num', '$e_mail', '$arith_taytotitas', '$imer_ekdosis', 8'$afm', '$doy', '$oik_kat', '$paidia', '$oik_epid', '$ptyxio_eidik', 9'$epaggelma','$asfalisi', '$ika', '$work_add', '$work_num')" Παρατηρούμε ότι όλα τα πεδία του πίνακα αυτού είναι ίδια με τον προηγούμενο, εκτός των id και id_aitisi, όπως επίσης και οι αντίστοιχες τιμές τους. Αυτά τα δύο πεδία θα πάρουν τις τιμές που προανέφερα. Τα μαθήματα που έχει επιλέξει ο καθηγητής θα αποθηκευτούν ταυτόχρονα στους πίνακες teacher_mathimata και 46

50 teacher_mathimata_aitisi. Η αποθήκευση των μαθημάτων θα γίνει με βάση τις τιμές του πεδίου id του πίνακα course που έχουν τα επιλεχθέντα μαθήματα. Αυτό πρακτικά σημαίνει ότι δεν θα αποθηκευτούν τα ονόματα των μαθημάτων αλλά οι αντίστοιχοί τους αριθμοί. if {$mathimata1!="0"} { sql "INSERT INTO teacher_mathimata (id_mathima, id_teacher, tomeas) VALUES ('$mathimata1', '$id_teacher', '$tomeas1')" sql "INSERT INTO teacher_mathimata_aitisi (id_aitisi, id_mathima, id_teacher, tomeas) VALUES ('$id_aitisi', '$mathimata1', '$id_teacher', '$tomeas1')" } if {$mathimata2!="0"} { sql "INSERT INTO teacher_mathimata (id_mathima, id_teacher, tomeas) VALUES ('$mathimata2', '$id_teacher', '$tomeas2')" sql "INSERT INTO teacher_mathimata_aitisi (id_aitisi, id_mathima, id_teacher, tomeas) VALUES ('$id_aitisi', '$mathimata2', '$id_teacher', '$tomeas2')" } if {$mathimata3!="0"} { sql "INSERT INTO teacher_mathimata (id_mathima, id_teacher, tomeas) VALUES ('$mathimata3', '$id_teacher', '$tomeas3')" sql "INSERT INTO teacher_mathimata_aitisi (id_aitisi, id_mathima, id_teacher, tomeas) VALUES ('$id_aitisi', '$mathimata3', '$id_teacher', '$tomeas3')" } if {$mathimata4!="0"} { sql "INSERT INTO teacher_mathimata (id_mathima, id_teacher, tomeas) VALUES ('$mathimata4', '$id_teacher', '$tomeas4')" sql "INSERT INTO teacher_mathimata_aitisi (id_aitisi, id_mathima, id_teacher, tomeas) VALUES ('$id_aitisi', '$mathimata4', '$id_teacher', '$tomeas4')" } if {$mathimata5!="0"} { sql "INSERT INTO teacher_mathimata (id_mathima, id_teacher, tomeas) VALUES ('$mathimata5', '$id_teacher', '$tomeas5')" sql "INSERT INTO teacher_mathimata_aitisi (id_aitisi, id_mathima, id_teacher, tomeas) VALUES ('$id_aitisi', '$mathimata5', '$id_teacher', '$tomeas5')" } Εδώ βλέπουμε ότι πριν γίνει η αποθήκευση των τιμών πραγματοποιείτε ένας έλεγχος με την εντολή if. Εάν η τιμή των μαθημάτων δεν είναι 0 (π.χ. if {$mathimata3!="0"} ), δηλαδή ο καθηγητής έχει επιλέξει 5 μάθημα, τότε θα γίνει η αποθήκευση 5 φορές, μία για κάθε μάθημα. Εάν όμως ο καθηγητής έχει επιλέξει για παράδειγμα 2 μαθήματα, δεν θα γίνει 5 φορές η αποθήκευση αλλά 47

51 μόνο 2, όσα είναι και τα επιλεγμένα μαθήματα. Ο τρόπος και η διαδικασία αποθήκευσης των τιμών στα αντίστοιχα πεδία των πινάκων είναι ίδιος με τον τρόπο αποθήκευσης στους πίνακες teacher και teacher_aitisi γι αυτό δεν θα γίνει περεταίρω ανάλυση. Οι μέρες και ώρες που έχει επιλέξει ο καθηγητής ότι μπορεί να ασχοληθεί αποθηκεύονται στον πίνακα diathesimotita και diathesimotita_aitisi ταυτόχρονα. if {$monday_morning!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$monday_morning', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$monday_morning', '$id_teacher', '$id_aitisi')" } if {$monday_afternoon!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$monday_afternoon', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$monday_afternoon', '$id_teacher', '$id_aitisi')" } if {$tuesday_morning!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$tuesday_morning', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$tuesday_morning', '$id_teacher', '$id_aitisi')" } if {$tuesday_afternoon!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$tuesday_afternoon', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$tuesday_afternoon', '$id_teacher', '$id_aitisi')" } if {$wednesday_morning!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$wednesday_morning', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$wednesday_morning', '$id_teacher', '$id_aitisi')" } if {$wednesday_afternoon!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$wednesday_afternoon', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$wednesday_afternoon', '$id_teacher', '$id_aitisi')" } 48

52 if {$thursday_morning!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$thursday_morning', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$tuesday_morning', '$id_teacher', '$id_aitisi')" } if {$thursday_afternoon!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$thursday_afternoon', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$thursday_afternoon', '$id_teacher', '$id_aitisi')" } if {$friday_morning!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$friday_morning', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$friday_morning', '$id_teacher', '$id_aitisi')" } if {$friday_afternoon!="0"} { sql "INSERT INTO diathesimotita (id_wres_aitisis, id_teacher) VALUES ('$friday_afternoon', '$id_teacher')" sql "INSERT INTO diathesimotita_aitisi (id_wres_aitisis, id_teacher, id_aitisi) VALUES ('$friday_afternoon', '$id_teacher', '$id_aitisi')" } Και σε αυτό το κομμάτι του κώδικα επέλεξα να πραγματοποιήσω αντίστοιχο έλεγχο με πριν, δηλαδή πριν την αποθήκευση των τιμών θα γίνετε έλεγχος εάν έχει τσεκαριστεί η αντίστοιχη τιμή (π.χ. if {$monday_morning!="0"} ). Εφόσον έχει τσεκαριστεί θα γίνετε η εγγραφή στον πίνακα, αλλιώς θα προχωρά στον έλεγχο της επόμενης τιμής. Εδώ θα τελειώσω την ανάλυση του κώδικα του script apotelesma.tcl καθώς όλες οι υπόλοιπες εγγραφές στους πίνακες της βάσης πραγματοποιούνται με τον ίδιο τρόπο που έχω περιγράψει μέχρι εδώ. Ας αναλύσουμε τον κώδικα της δεύτερης επιλογής του χρήστη της εφαρμογής που το script password.tcl. Εδώ να επισημάνω ότι για να προχωρήσει ο χρήστης θα πρέπει να έχει ξανακάνει αίτηση στο παρελθόν ώστε να είναι καταχωρημένος στη βάση. Ο λόγος είναι ότι 49

53 απαιτείτε η συμπλήρωση δύο πεδίων από τον χρήστη, του username και του password. Ο κώδικας είναι : 1 #!c:\tcl\bin\tclsh.exe 2 # 3 puts "Content-type: text/html\n\n" 4 load fbsql.dll 5 sql connect localhost root 6 sql "use ptyxiaki" 7 puts <HTML> 8 puts <BODY\ bgcolor="#6ec6f1"> 9 puts <FORM\ action=\"/cgi-bin/palia_nea.tcl\"\ method=\"post\"> 10 puts <TABLE\ width=\"%\"\ height=\"%\"> 11 puts <TR> 12 puts <TD><H4>Επιλέξτε\ το\ ονοματεπώνυμό\ σας\ <SELECT\ name=\"onomateponymo\"> 13 puts <OPTION\ value=\"0\">---</option> 14 foreach row [sql "SELECT id, f_name, l_name FROM teacher_aitisi"] { 15 set id [lindex $row 0] 16 set f_name [lindex $row 1] 17 set l_name [lindex $row 2] 18 puts <OPTION\ value=\"$id\">$f_name\ $l_name</option> 19 } 20 puts </SELECT> 21 puts <br> 22 puts <br> 23 puts <TR> 24 puts <TD><H4>Επιλέξτε\ τον\ προσωπικό\ σας\ κωδικό\:\ <INPUT\ type=\"password\"\ name=\"password\"\"> 25 puts </TABLE> 26 puts <BR> 27 puts <BR> 28 puts <INPUT\ type=\"submit\"\ value=\"επομενο\"> 29 puts </FORM> 30 puts </BODY> 31 puts </HTML> Στη γραμμή 9 υπάρχει η ετικέτα FORM όπου δηλώνετε η σελίδα που θα ακολουθήσει, και στην οποία θα πρέπει να σταλούν οι τιμές από το πεδία onomateponymo και password που ακολουθούν στις γραμμές 12 και 24 αντίστοιχα. Πηγαίνοντας στη γραμμή 12 υπάρχει η ετικέτα SELECT η οποία εισάγει ένα listbox στη φόρμα. Μέσα σε αυτό το listbox θα εμφανιστούν όλα τα καταχωρημένα ονόματα των καθηγητών που έχουν κάνει και στο παρελθόν αίτηση προς το Τμήμα Διαχείρισης Πληροφοριών. Η εμφάνιση των ονομάτων θα γίνει με την χρήση της συνάρτησης foreach (η λειτουργία της οποίας αναλύθηκε πιο πάνω) και με τη εντολή της sql SELECT η οποία θα πάρει όλες τις τιμές των πεδίων id, l_name, f_name από τον 50

54 πίνακα teacher_aitisi, μιας και πρόκειται για παλιούς καθηγητές, και θα τις αποθηκεύσει στις αντίστοιχες μεταβλητές id, l_name, f_name, που ορίζονται στις γραμμές 15,16,17. Κατόπιν με βάση την τιμή του $id θα εμφανίσει τις τιμές $l_name, $f_name δηλαδή όλα τα ονοματεπώνυμα των χρηστών. Αφού διαλέξει ο χρήστης το ονοματεπώνυμό του στη συνέχεια πρέπει να δώσει και τον προσωπικό του αριθμό, τον οποίο είχε δώσει συμπληρώνοντας την αίτηση (γραμμή 24 ). Συμπληρώνοντας και τα δύο πεδία πατάει το κουμπί ΕΠΟΜΕΝΟ που ορίζετε στη γραμμή 28 και πηγαίνει στην επόμενη σελίδα. Η επόμενη σελίδα είναι η palia_nea.tcl όπου αρχικά γίνεται η ταυτοποίηση των στοιχείων που έχει δώσει ο χρήστης. Υπάρχουν δύο περιπτώσεις: η πρώτη είναι να δώσει ο χρήστης λάθος κωδικό και η δεύτερη είναι να δώσει τον σωστό κωδικό. 1 #!c:\tcl\bin\tclsh.exe 2 # 3 puts "Content-type: text/html\n\n" 4 load fbsql.dll 5 sql connect localhost root 6 sql "use ptyxiaki" 7 set ltmp [split [read stdin] &] 8 foreach {tmp} $ltmp { 9 regexp (.*)=(.*) $tmp match tmp1 tmp2 10 regsub -all {\+} $tmp2 { } tmp2 11 regsub -all {\%0D\%0A} $tmp2 "\n" tmp2 12 regsub -all {%([A-F0-9][A-F0-9])} $tmp2 {[format %c 0x\1]} tmp2 13 set tmp2 [subst $tmp2] 14 set $tmp1 $tmp if {$tmp1=="onomateponymo"} { 17 set onomateponymo $tmp2 18 } if {$tmp1=="password"} { 21 set password $tmp2 22 } 23 } 24 set flag 0 25 foreach row1 [sql "SELECT id, password FROM teacher WHERE id='$onomateponymo' AND password='$password'"] { 26 set flag 1 27 } 28 puts <HTML> 29 puts <BODY\ bgcolor="#6ec6f1"> 51

55 30 if {$flag==1} { 31 puts <FORM\ action=\"/cgi-bin/aitisi_allagi.tcl\"\ method=\"post\"> 32 puts <TABLE\ width=\"%\"\ height=\"%\"> 33 puts <INPUT\ type=\"hidden\"\ name=\"username\"\ value=\"$onomateponymo\"> 34 puts <br> 35 puts <INPUT\ type=\"hidden\"\ name=\"kwdikos\"\ value=\"$password\"> 36 puts <TR> 37 puts <TD><H3>Θέλετε\ να\ κάνετε\ νέα\ αίτηση\; 38 puts <INPUT\ type=\"submit\"\ value=\"νεα\ ΑΙΤΗΣΗ\"> 39 puts </TABLE> 40 puts </FORM> 41 puts <FORM\ action=\"/cgi-bin/diorthosi_aitisis.tcl\"\ method=\"post\"> 42 puts <TABLE\ width=\"%\"\ height=\"%\"> 43 puts <INPUT\ type=\"hidden\"\ name=\"user\"\ value=\"$onomateponymo\"> 44 puts <br> 45 puts <INPUT\ type=\"hidden\"\ name=\"pass\"\ value=\"$password\"> 46 puts <br> 47 puts <TR> 48 puts <TD><H3>Θέλετε\ να\ διορθώσετε\ την\ παλιά\ σας\ αίτηση\; 49 puts <INPUT\ type=\"submit\"\ value=\"διορθωση\ ΠΑΛΙΑΣ\ ΑΙΤΗΣΗΣ\"> 50 puts </FORM> 51 } else { 52 puts <H3>Ο\ κωδικός \ που\ δώσατε\ είναι\ λάθος</h3> 53 puts <A\ href=\"password.tcl\">επαλήθευση\ κωδικού 54 } 55 puts <BR> 56 puts <BR> 57 puts <A\ href=\"call_aitisi.tcl\">εξοδος 58 puts </TABLE> puts </BODY> 61 puts </HTML> Οι πρώτες 6 γραμμές είναι ίδιες και τα υπόλοιπα κομμάτια που έχω αναλύσει οπότε πηγαίνουμε στις γραμμές 7 μέχρι 23 όπου συναντάμε πάλι το script το οποίο παίρνει τις τιμές που στέλνει η προηγούμενη σελίδα. Οι τιμές αυτές είναι το $onomateponymo και το $password. Στις γραμμές 24 μέχρι 27 γίνεται η ταυτοποίηση των τιμών αυτών, δηλαδή : στη γραμμή 24 δηλώνω μια μεταβλητή flag και τις δίνω την τιμή 0. Κατόπιν με την συνάρτηση foreach και την εντολή της sql SELECT ψάχνω στα πεδία id και password να βρω αν υπάρχουν οι τιμές που έδωσε ο καθηγητής. Πριν κλείσω την foreach δίνω στην μεταβλητή flag την τιμή 1, που σημαίνει ότι οι τιμές αυτές υπάρχουν στον πίνακα teacher. Στη συνέχεια χρησιμοποιώ την εντολή if για να διαχωρίσω τις δύο περιπτώσεις. Η if ξεκινάει με την συνθήκη ότι η τιμή της μεταβλητής flag είναι 1 ( if {$flag==1} ) και συνεχίζει 52

56 στις γραμμές όπου υπάρχει η ετικέτα Form που δηλώνει την σελίδα που ακολουθεί, την aitisi_allagi.tcl, εάν πατήσουμε το κουμπί ΝΕΑ ΑΙΤΗΣΗ που υπάρχει σε αυτήν την φόρμα. Μέσα στη φόρμα αυτή υπάρχει ένας άλλος τύπος της ετικέτας INPUT ο type=hidden που περνάει τις τιμές των μεταβλητών που ορίζονται εκεί κρυφά, δηλαδή χωρίς αυτές οι τιμές να εμφανίζονται στον χρήστη της σελίδας, από την μία σελίδα στην άλλη. Στις γραμμές υπάρχει μια δεύτερη ετικέτα Form που δηλώνει μια άλλη σελίδα που μπορεί ο καθηγητής να ακολουθήσει, την diorthosi_aitisis.tcl αυτή τη φορά, πατώντας το κουμπί ΔΙΟΡΘΩΣΗ ΑΙΤΗΣΗΣ. Ο καθηγητής λοιπόν που είχε ξανακάνει αίτηση στο παρελθόν τώρα έχει δύο επιλογές, είτα να κάνει μία νέα αίτηση είτε να διορθώσει την παλιά αίτηση που είχε κάνει. Στην γραμμή 51 η if αλλάζει την συνθήκη της, περνώντας στη περίπτωση που ο καθηγητής έχει δώσει λάθος κωδικό. Του δίνετε η δυνατότητα μέσω του link που υπάρχει στη γραμμή 53 να επιστρέψει στην προηγούμενη σελίδα, την password.tcl και να δώσει τον σωστό κωδικό. Στην γραμμή 57 υπάρχει δεύτερο link που οδηγεί το καθηγητή στη αρχική σελίδα της εφαρμογής. Όπως είπα υπάρχουν δύο επιλογές για τον καθηγητή, να κάνει μια νέα αίτηση ή να διορθώσει την παλιότερη αίτηση που είχε κάνει. Ξεκινάω αναλύοντας τον κώδικα της aitisi_allagi.tcl αφού τονίσω ότι σχεδίαση της φόρμας αυτής είναι ίδια με την σελίδα aitisi.tcl μόνο που εδώ όλοι οι πίνακες που εμφανίζονται στην φόρμα θα παίρνουν τις τιμές που είχε δώσει ο συγκεκριμένος καθηγητής κατά την συμπλήρωση της προηγούμενης αίτησης. Θα αναλύσω και εδώ τον κώδικα που αφορά τον πίνακα με τα προσωπικά δεδομένα του καθηγητή, τα μαθήματα, τις μέρες και ώρες που μπορεί να ασχοληθεί. Για λόγους συντομίας θα αναλύσω ένα μέρος των πινάκων αυτών. Εξάλλου η διαδικασία είναι ίδια σε όλα το κομμάτι του κώδικα. set ltmp [split [read stdin] &] foreach {tmp} $ltmp { regexp (.*)=(.*) $tmp match tmp1 tmp2 regsub -all {\+} $tmp2 { } tmp2 53

57 regsub -all {\%0D\%0A} $tmp2 "\n" tmp2 regsub -all {%([A-F0-9][A-F0-9])} $tmp2 {[format %c 0x\1]} tmp2 set tmp2 [subst $tmp2] set $tmp1 $tmp2 if {$tmp1=="username"} { set username $tmp2 } if {$tmp1=="kwdikos"} { set kwdikos $tmp2 } } puts <INPUT\ type=\"hidden\"\ name=\"user\"\ value=\"$username\"> puts <br> puts <INPUT\ type=\"hidden\"\ name=\"pass\"\ value=\"$kwdikos\"> Ξεκινώντας η ανάλυση αυτού του κομματιού θα πρέπει να πάρουμε τις σωστές τιμές του id και του password από τον πίνακα teacher ούτως ώστε οι τιμές που θα εμφανιστούν στη φόρμα να είναι πράγματι του συγκεκριμένου καθηγητή. Ετσι η τιμή $username αντιστοιχεί στη τιμή του id και η τιμή του $kwdikos στο password που έδωσε ο καθηγητής τα οποία και δω είναι hidden. 1 puts <TABLE\ border=\"1\"> 2 foreach row [sql "SELECT f_name, l_name, fathername, birthdate, afm, ikanumber, 3 password FROM teacher where id='$username'"] { 4 set f_name [lindex $row 0] 5 set l_name [lindex $row 1] 6 set fathername [lindex $row 2] 7 set birthdate [lindex $row 3] 8 set afm [lindex $row 4] 9 set ikanumber [lindex $row 5] 10 set password [lindex $row 6] 11} 12 puts <TR> 13 puts <TD>ΟΝΟΜΑ\:<TD><INPUT\ type=\"text"\ name=\"onoma\"\ value=\"$f_name"> 14 puts <TR> 15 puts <TD>ΕΠΩΝΥΜΟ\:<TD><INPUT\ type=\"text"\ name=\"eponymo\"\ value=\"$l_name"> 16 puts <TR> 17 puts <TD>ΠΑΤΡΟΝΥΜΟ\:<TD><INPUT\ type=\"text"\ name=\"patronymo\"\ value=\"$fathername"> 18 puts <TR> 19 puts <TD>ΕΤΟΣ\ ΓΕΝΝΗΣΗΣ\:<TD><INPUT\ type=\"text"\ name=\"etos_gen\"\ value=\"$birthdate"> 20 puts <TR> 21 puts <TD>Α.Φ.Μ..\:<TD><INPUT\ type=\"text"\ name=\"afm\"\ value=\"$afm"> 22 puts <TR> 54

58 23 puts <TD>ΑΡ.\ ΜΗΤΡΩΟΥ\ Ι.Κ.Α.\:<TD><INPUT\ type=\"text"\ name=\"ika\"\ value=\"$ikanumber"> παρελθόν. Χρησιμοποιώ πάλι την foreach και την SELECT για να πάρω από τα πεδία, της γραμμής 2, τις τιμές τους με βάση το id του καθηγητή χρησιμοποιώντας το WHERE. Στις γραμμές 4-10 ορίζω νέες μεταβλητές, κάθε μία από τις οποίες θα πάρει την αντίστοιχη τιμή από τα πεδία. Στη συνέχεια μέσα στις ετικέτες INPUT ορίζω προκαθορισμένες τιμές (value= ), τιs τιμές που πήρα από τον πίνακα teacher. Για παράδειγμα αν ένας καθηγητής είχε συμπληρώσει παλιότερα στα πεδία της φόρμας ΕΠΩΝΥΜΟ, ΟΝΟΜΑ ΛΙΑΠΗΣ, ΝΙΚΟΛΑΟΣ αντίστοιχα, τώρα που είναι καταχωρημένος και μπήκε στη φόρμα με τα στοιχεία αυτά, στα αντίστοιχα πεδία της νέας αίτησης που πάει να κάνει θα εμφανιστούν πάλι οι τιμές ΛΙΑΠΗΣ, ΝΙΚΟΛΑΟΣ. Ίδιος τρόπος ισχύει και για όλα τα άλλα πεδία. Πάμε στον πίνακα με τα μαθήματα που είχε δηλώσει στο 1 set teacherid $username 2 set teachmathcount 0 3 foreach row [sql "SELECT COUNT(*) as cnt FROM teacher_mathimata WHERE 4 id_teacher='$teacherid'"] { 5 set teachmathcount [lindex $row 0] 6 } 7 puts <TR> 8 puts <TD>Α/Α 9 puts <TD>Τίτλος\ μαθήματος 10 puts <TD>Τομέας 11 puts <TR> 12 puts <TD>1 13 puts <TD><SELECT\ name=\"mathimata1\"> 14 puts <OPTION\ value=\"0\">---</option> 15 set mathcounter 0 16 foreach row [sql "SELECT id_mathimata, name FROM mathima"] { 17 set mathcounter [expr {$mathcounter+1}] 18 set id_mathimata [lindex $row 0] 19 set name [lindex $row 1] 20 set flag 0 21 if {$teachmathcount>0} { 22 set selected_math_id 0 23 set tomeas "" 24 foreach row1 [sql "SELECT id_mathima, tomeas FROM teacher_mathimata WHERE id_teacher='$teacherid' LIMIT 0,1"] { 25 set selected_math_id [lindex $row1 0] 26 set tomeas [lindex $row1 1] 27 if {$selected_math_id==$id_mathimata} { 55

59 28 set flag 1 29 } 30 } 31 } 32 if {$flag==1} { 33 puts <OPTION\ value=\"$id_mathimata\"\ selected>$name</option> 34 } else { 35 puts <OPTION\ value=\"$id_mathimata\">$name</option> 36 } 37 } 38 puts </SELECT> 39 puts <TD><INPUT\ type="text"\ name=\"tomeas1\"\ value='$tomeas'> εξής : Οι παραπάνω γραμμές του κώδικα αφορούν ένα μάθημα όμως επαναλαμβάνετε για όλα τα μαθήματα που είχε επιλέξει ο καθηγητής. Στις δύο πρώτες γραμμές ορίζω δύο μεταβλητές την teacherid και την teachmathcount τις οποίες και αρχικοποιώ δίνοντας στη πρώτη την τιμή του του id του καθηγητή και στη δεύτερη την τιμή 0. Στη συνέχεια παίρνω τον αριθμό των μαθημάτων που είχε δηλώσει ο καθηγητής από τον πίνακα teacher_mathimata (γραμμή 3) και στη γραμμή 5 δίνω αυτόν τον αριθμό ως τιμή στη μεταβλητή teachmathcount. Στη γραμμή 16 επιλέγω τα μαθήματα και στη γραμμή 21 αρχίζω έναν έλεγχο με τη βοήθεια της if ο οποίος θα με οδηγήσει στο να εμφανίσω τα επιλεγμένα μαθήματα στη οθόνη. Ο κώδικας του τρίτου πίνακα με τις ημέρες και ώρες έχει ως 1 puts <TABLE\ border=\"1\"> 2 puts <TR> 3 puts <TD>ΔΕΥΤΕΡΑ 4 puts <TD>ΠΡΩΙ\ (08:00-14:00) 5 set flag 0 6 foreach row [sql "SELECT id_teacher FROM diathesimotita WHERE id_teacher='$teacherid' AND id_wres_aitisis='1'"] { 7 set flag 1 8 } 9 if {$flag==1} { 10 puts <TD><INPUT\ type=\"checkbox\"\ value=\"1\"\ name=\"monday_morning\"\ checked> 11 } else { 12 puts <TD><INPUT\ type=\"checkbox\"\ value=\"1\"\ name=\"monday_morning\"> 13} Ο τρόπος και εδώ είναι ίδιος. Με την foreach και την SELECT της sql επιλέγω το id του καθηγητή από τον πίνακα diathesimotita με 56

60 κριτήριο επιλογής το id_teacher να είναι του συγκεκριμένου καθηγητή και τοid_wres_aitisis να είναι 1, αφού εξετάζουμε το ενδεχόμενο ο καθηγητής να είχε επιλέξει ότι μπορεί να ασχοληθεί τη Δευτέρα το πρωί. (για τις υπόλοιπες μέρες και ώρες υπάρχουν αντίστοιχες τιμές, βλέπε σελ.31) Εάν είχε τσεκάρει την επιλογή αυτή θα εμφανιστεί τσεκαρισμένη και τώρα αλλιώς δεν θα είναι.(γραμμές 9-13). Η ίδια ακριβώς διαδικασία ακολουθείτε και στις άλλες εννέα περιπτώσεις. Φθάνοντας στο τέλος της σελίδας υπάρχει το κουμπί ΑΠΟΣΤΟΛΗ ΑΙΤΗΣΗΣ με το οποίο ο καθηγητής θα στείλει συμπληρωμένη την αίτησή του προς το Τμήμα. Πατώντας το κουμπί αυτό πηγαίνουμε στη σελίδα apotelesma_allagi.tcl. Εδώ θα γίνουν και οι καταχωρίσεις των τιμών στη βάση δεδομένων. Επειδή η διαδικασία αυτή είναι ίδια με αυτήν της σελίδας apotelesma.tcl δεν θα αναλύσω τον κώδικά της αλλά θα αναφέρω μόνο τις διαφορές που υπάρχουν στις καταχωρήσεις των τιμών. Ο καθηγητής βρίσκετε στο στάδιο όπου ξανακάνει αίτηση. Αυτό σημαίνει ότι κάποια στοιχεία, ή και όλα, που είχε δηλώσει στην προηγούμενή του αίτηση μπορεί να παραμείνουν ίδια, όπως είναι το ονοματεπώνυμό του για παράδειγμα. Αυτά τα στοιχεία που θα παραμείνουν ίδια θα ανανεωθούν στη βάση δεδομένων, θα γίνει δηλαδή το λεγόμενο update στη βάση. Όσα πεδία θα αλλάξουν τιμές θα καταχωρηθούν ξανά στη βάση με την εντολή INSERT της sql. Αυτή τη διαδικασία θα περιγράψω στις παρακάτω γραμμές. Για παράδειγμα ο πίνακας teacher που περιέχει προσωπικά στοιχεία του καθηγητή, όπως είναι το ονοματεπώνυμό του η το πατρώνυμο. Σ αυτόν τον πίνακα θα γίνει το update με βάση πάντα το id του: if {$eponymo!="0"} { sql "UPDATE teacher SET id='$id_teacher', kindofhelptous='$synergatis', f_name='$onoma', l_name='$eponymo', fathername='$patronymo', password='$password', sxolia='$sxolia', 57

61 birthdate='$etos_gen', address='$home_address', tk='$country_code', phone1='$home_number', mobilephone='$mobile_num', mail='$e_mail', adt='$arith_taytotitas', dateoftaftotita='$imer_ekdosis', afm='$afm', eforia='$doy', family='$oik_kat', childrennumber='$paidia', epidomapaidionfromjob='$oik_epid', ptyxio_eidikotita='$ptyxio_eidik', primaryjob='$epaggelma', kindofasfalisi='$asfalisi', ikanumber='$ika', jobaddress='$work_add', jobphone='$work_num' WHERE id='$id_teacher' " } Αφού λοιπόν έχουμε καινούρια αίτηση στον πίνακα aitisi θα γίνει νέα καταχώρηση τιμών (INSERT). To πεδίο id_teacher θα έχει μεν την ίδια τιμή αλλά θα αναφέρετε σε νέα αίτηση του αντίστοιχου καθηγητή. Εδώ λοιπόν θα φανεί και ο τρόπος που θα συνδεθούν όλοι οι πίνακες μεταξύ τους. Στον πίνακα teacher_aitisi θα γίνει νέα καταχώριση και όχι ανανέωση όπως στον πίνακα teacher. Έτσι λοιπόν στο πεδίο id του πίνακα αυτού θα καταχωρηθεί η ίδια τιμή που καταχωρήθηκε και στο αντίστοιχο πεδίο του πίνακα teacher, όμως εδώ υπάρχει και το πεδίο id_aitisi το οποίο θα πάρει νέα τιμή και θα είναι η τιμή που έχει το πεδίο id του πίνακα aitisi. Σε αυτό το σημείο γίνετε κατανοητός ο τρόπος που συνδέονται οι πίνακες με τους αντίστοιχους «backup» τους. Σε όλους τους υπόλοιπους πίνακες θα γίνετε update αλλά με τον εξής τρόπο, πρώτα θα διαγράφονται οι παλιές καταχωρήσεις, με την εντολή DELETE της sql, του συγκεκριμένου καθηγητή με κριτήριο την τιμή του id από τον πίνακα teacher και στη συνέχεια θα γίνονται οι νέες καταχωρήσεις, με την εντολή INSERT, με το ίδιο κριτήριο, όπως γίνετε και στη σελίδα apotelesma.tcl. 58

62 Ας επιστρέψουμε στην σελίδα palia_nea.tcl και ας υποθέσουμε πω σο καθηγητής επιλέγει να κάνει ΔΙΟΡΘΩΣΗ ΠΑΛΙΑΣ ΑΙΤΗΣΗΣ. Πατάει λοιπόν το αντίστοιχο κουμπί και οδηγείτε στην σελίδα diorthosi_aitisis.tcl. Η σελίδα αυτή είναι πανομοιότυπη με την σελίδα aitisi_allagi.tcl όπως πανομοιότυπος είναι και ο κώδικάς της. Και εδώ εμφανίζονται τα στοιχεία που είχε δηλώσει ο καθηγητής σε προηγούμενή του αίτηση. Εδώ ο καθηγητής έχει την δυνατότητα, όπως και στην σελίδα aitisi_allagi.tcl, είτε να αλλάξει τα στοιχεία του είτε να τα αφήσει ως έχουν. Στο τέλος αυτής της σελίδας υπάρχει το κουμπί ΑΠΟΣΤΟΛΗ ΑΙΤΗΣΗΣ που και εδώ στέλνει τα στοιχεία στη βάση δεδομένων. Πατώντας αυτό το κουμπί πηγαίνουμε στη σελίδα apotelesm_diorthosis.tcl. Αφού ο καθηγητής βρίσκετε στη διαδικασία διόρθωσης της παλιάς του αίτησης, στη σελίδα αυτή όλα τα πεδία των πινάκων θα ανανεώνονται, δηλαδή θα γίνετε update σε όλους τους πίνακες. Η διαδικασία είναι ίδια με αυτή που ανέφερα για τη σελίδα apotelesma_allagi.tcl με τη μόνη διαφορά να βρίσκετε στο ότι θα γίνετε update και στον πίνακα aitisi και στον πίνακα teacher_aitisi. Όλοι οι άλλοι πίνακες θα ανανεώνονται όπως περιέγραψα πιο πάνω ο ΜΕΡΟΣ Το δεύτερο μέρος της εφαρμογής αφορά την κατάταξη των καθηγητών ανά μάθημα, η οποία γίνετε από τον προϊστάμενο και όσους χρήστες ορίσει εκείνος και katataksi_login.tcl, o κώδικας της οποίας είναι: 1 #!c:\tcl\bin\tclsh.exe 2 # 3 puts "Content-type: text/html\n\n" 4 load fbsql.dll 5 sql connect localhost root 6 sql "use ptyxiaki" 7 puts <HTML> 8 puts <BODY\ bgcolor="#6ec6f1"> 9 puts <FORM\ action=\"\/cgi-bin/katataksi.tcl\"\ method=\"post\"> 10 puts <TABLE\ align=\"center\"> ξεκινά με την ιστοσελίδα 59

63 11 puts <TR> 12 puts <TD\ align=\"center\"><h4>εισάγετε\ το\ username\ σας\ :\ <INPUT\ type=\"text\"\ name=\"username\"> 13 puts </SELECT> 14 puts <br> 15 puts <br> 16 puts <TR> 17 puts <TD\ align=\"center\"><h4> Εισάγετε \ το\ password\ σας\ :\ <INPUT\ type=\"password\"\ name=\"password\"> 18 puts </TABLE> 19 puts <BR> 20 puts <BR> 21 puts <TABLE\ align=\"center\"> 22 puts <TR> 23 puts <TD\ align=\"center\"> 24 puts <INPUT\ type=\"submit\"\ value=\"επομενο\"> 25 puts </TABLE> 26 puts </FORM> 27 puts </BODY> 28 puts </HTML> Ο κώδικας περιέχει μία ετικέτα FORM που μας πάει στη σελίδα katataksi.tcl όταν πατήσουμε το κουμπί ΕΠΟΜΕΝΟ που ορίζετε στην 24 η γραμμή. Περιέχει επίσης δύο ετικέτες INPUT μία στη γραμμή 12 και μία στη 17 με type=text. Είναι δύο πεδία εισαγωγής κειμένου που στο πρώτο εισάγετε το username του χρήστη και στο δεύτερο το password του. Πατώντας το κουμπί ο χρήστης μεταβαίνει στη σελίδα katataksi.tcl. Ο κώδικάς της είναι : 1 #!c:\tcl\bin\tclsh.exe 2 # 3 puts "Content-type: text/html\n\n" 4 load fbsql.dll 5 sql connect localhost root 6 sql "use ptyxiaki" 7 set ltmp [split [read stdin] &] 8 foreach {tmp} $ltmp { 9 regexp (.*)=(.*) $tmp match tmp1 tmp2 10 regsub -all {\+} $tmp2 { } tmp2 11 regsub -all {\%0D\%0A} $tmp2 "\n" tmp2 12 regsub -all {%([A-F0-9][A-F0-9])} $tmp2 {[format %c 0x\1]} tmp2 13 set tmp2 [subst $tmp2] 14 set $tmp1 $tmp2 15 if {$tmp1=="username"} { 16 set username $tmp2 17 } 18 if {$tmp1=="password"} { 19 set password $tmp2 60

64 20 } 21 } 22 puts <INPUT\ type=\"hidden\"\ name=\"username\"\ value=\"$username\"> 23 puts <INPUT\ type=\"hidden\"\ name=\"password\"\ value=\"$password\"> 24 set flag 0 25 foreach row [sql "SELECT username, password FROM users WHERE 26username='$username' AND password='$password'"] { 27 set flag 1 28 } 29 puts <HTML> 30 puts <SCRIPT\ LANGUAGE="JavaScript"> 31 puts function\ send_form(test) 32 puts \{ 33 puts document.forms\['form1'\].action\ =\ test\; 34 puts \} 35 puts </SCRIPT> 36 puts <BODY\ bgcolor="#6ec6f1"> 37 if {$password=="admin"} { 38 puts <FORM\ name=\"form1\"\ action=\"\/cgi-bin/dimiourgia_katataksis.tcl\"\ 39method=\"post\"> 40 puts <TABLE\ border="2"\ align=\"center\"> 41 puts <TR> 42 puts <TD\ align=\"center\"><h3>επιλέξτε\ μάθημα\ για\ κατάταξη</h3> 43 puts <SELECT\ name=\"mathimata\"> 44 puts <OPTION\ value=\"0\">---</option> 45 foreach row [sql "SELECT id_mathimata, name FROM mathima"] { 46 set id_mathimata [lindex $row 0] 47 set name [lindex $row 1] 48 puts <OPTION\ value=\"$id_mathimata\">$name</option> 49 } 50 puts </SELECT> 51 puts <br> 52 puts <TD\ align=\"center\"> 53 puts <TD\ align=\"center\"> 54 puts <INPUT\ type="submit"\ value="δημιουργια\ ΚΑΤΑΤΑΞΗΣ"\ 55onclick=\"send_form('dimiourgia_katataksis.tcl')\"> 56 puts <br> 57 puts <br> 58 puts <INPUT\ type="submit"\ value="καταταξη"\ 59onclick=\"send_form('apotelesma_katataksis.tcl')\"> 60 puts </FORM> 61 puts <FORM\ action=\"\/cgi-bin/new_user.tcl\"\ method=\"post\"> 62 puts <INPUT\ type=\"submit\"\ value=\"δημιουργια\ ΝΕΟΥ\ ΧΡΗΣΤΗ"> 63 puts </FORM> 64 puts </TABLE> 65 } elseif {$flag==1} { 66 puts <FORM\ name=\"form1\"\ action=\"\/cgi-bin/dimiourgia_katataksis.tcl\"\ method=\"post\"> 67 puts <TABLE\ border="2"\ align=\"center\"> 68 puts <TR> 69 puts <TD\ align=\"center\"><h3> Επιλέξτε\ μάθημα\ για\ κατάταξη </H3> 70 puts <SELECT\ name=\"mathimata\"> 61

65 71 puts <OPTION\ value=\"0\">---</option> 72 foreach row [sql "SELECT id_mathimata, name FROM mathima"] { 73 set id_mathimata [lindex $row 0] 74 set name [lindex $row 1] 75 puts <OPTION\ value=\"$id_mathimata\">$name</option> 76 } 77 puts </SELECT> 78 puts <br> 79 puts <TD\ align=\"center\"> 80 puts <TD\ align=\"center\"> 81 puts <INPUT\ type="submit"\ value=" ΔΗΜΙΟΥΡΓΙΑ\ ΚΑΤΑΤΑΞΗΣ "\ onclick=\"send_form('dimiourgia_katataksis.tcl')\"> 82 puts <br> 83 puts <br> 84 puts <INPUT\ type="submit"\ value=" ΚΑΤΑΤΑΞΗ "\ 85onclick=\"send_form('apotelesma_katataksis.tcl')\"> 86 puts </FORM> 87 puts <br> 89 puts <br> 90 puts </TABLE> 91 } else { 92 puts <H3>Το\ username\ ή\ το\ password\ που\ δώσατε\ είναι\ λάθος</h3> 93 puts <A\ href=\"katataksi_login.tcl\">επαλήθευση 94 } 95 puts </FORM> 96 puts </BODY> 97 puts </HTML> Ο κώδικας ξεκινάει με τις 6 πρώτες γραμμές να είναι ίδιες με όλα τα υπόλοιπα κομμάτια κώδικα που ανέλυσα μέχρι τώρα, ακολουθούν οι γραμμές 7 μέχρι 21 όπου λαμβάνονται οι τιμές που στέλνει η προηγούμενη σελίδα και φτάνουμε στις γραμμές 22 και 23 που πλέον οι τιμές αυτές υπάρχουν ως κρυφές στη τρέχουσα σελίδα. Στις γραμμές 24 μέχρι 28 γίνετε η ταυτοποίηση των τιμών αυτών αναζητώντας τες στα πεδία username και password του πίνακα users. Στις γραμμές χρησιμοποιώ ένα JavaScript το οποίο αλλάζει δυναμικά το POST της ετικέτας FORM σύμφωνα με το οριζόμενο, σε κάθε μία από τις δύο περιπτώσεις, κουμπί (γραμμές 54, 58). Επειδή θα πρέπει να διαχωριστεί ο διαχειριστής αυτής της εφαρμογής, που είναι ο προϊστάμενος, από τους υπόλοιπους στους οποίους θα δίνει εκείνος το δικαίωμα εισαγωγής στην εφαρμογή στη γραμμή 37 έχω θέσει τον όρο ότι η τιμή του password θα πρέπει να είναι admin. Εάν είναι, ακολουθούν οι γραμμές 38 μέχρι 64. Στις γραμμές αυτές ο διαχειριστής έχει τη δυνατότητα να επιλέξει ένα 62

66 μάθημα για το οποίο θέλει να γίνει κατάταξη των καθηγητών που έχουν δηλώσει ότι επιθυμούν να το διδάξουν (γραμμές 43-49, η διαδικασία αυτή έχει αναλυθεί και στον κώδικα της σελίδας aitisi.tcl) κατόπιν πατώντας το κουμπί ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΤΑΞΗΣ (γραμμή 54) τα ονόματα των καθηγητών αυτών αποθηκεύονται στον πίνακα katataksi, στη συνέχεια επιλέγοντας το ίδιο μάθημα και πατώντας το κουμπί ΚΑΤΑΤΑΞΗ (γραμμή 58) εμφανίζονται όλα τα ονόματα των καθηγητών χωρισμένα σε τρεις κατηγορίες και τέλος έχει την δυνατότητα πατώντας το κουμπί ΔΗΜΙΟΥΡΓΙΑ ΝΕΟΥ ΧΡΗΣΤΗ (γραμμή 62) να δημιουργήσει έναν νέο χρήστη ή να διαγράψει κάποιον ή να διορθώσει τα στοιχεία κάποιου άλλου. Ας εξετάσουμε μία μία αυτές τις τρεις επιλογές του διαχειριστή. Αφού έχει επιλέξει το μάθημα για το οποίο επιθυμεί να γίνει η κατάταξη το πρώτο του βήμα είναι να αποθηκεύσει την κατάταξη αυτή στον πίνακα katataksi πατώντας το κουμπί ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΤΑΞΗΣ. Το κουμπί αυτό οδηγεί στη σελίδα dimiourgia_katataksis.tcl. Ο κώδικας αυτής της σελίδας θα κάνει την κατάταξη των καθηγητών και θα τους διαχωρίσει σε τρεις κατηγορίες, σ αυτούς που έχουν πλήρη προσόντα, σ αυτούς που έχουν ελλειπή προσόντα και στους μη επιλεγόμενους. Τα κριτήρια της πρώτης κατηγορίας είναι α) ο καθηγητής να έχει επιλεγεί ως επιστημονικός συνεργάτης, με διδακτορικό και 4 χρόνια προϋπηρεσίας, διδακτικής και επαγγελματικής και β) να έχει επιλεγεί σαν εργαστηριακός συνεργάτης με μεταπτυχιακό και 5 χρόνια διδακτικής και επαγγελματικής προϋπηρεσίας. Ο κώδικας για την περίπτωση αυτή είναι: 1 set mathimata 0 2 set ltmp [split [read stdin] &] 3 foreach {tmp} $ltmp { 4 regexp (.*)=(.*) $tmp match tmp1 tmp2 5 regsub -all {\+} $tmp2 { } tmp2 6 regsub -all {\%0D\%0A} $tmp2 "\n" tmp2 7 regsub -all {%([A-F0-9][A-F0-9])} $tmp2 {[format %c 0x\1]} tmp2 8 set tmp2 [subst $tmp2] 9 set $tmp1 $tmp2 10 if {$tmp1=="mathimata"} { 11 set mathimata $tmp2 63

67 12 } 13 } 14 sql "DELETE FROM katataksi WHERE id_mathimata='$mathimata'" 15 puts <INPUT\ type=\"hidden\"\ name=\"idmathimatos\"\ value=\"$mathimata\"> 16 set counter 0 17 sql "TRUNCATE TABLE tempteacherid" 18 foreach row [sql "SELECT DISTINCT teacher.id, teacher.l_name, teacher.f_name, (epagempir.sumyears+didaktempir.sumyears) AS allyears 19 FROM teacher 20 INNER JOIN teacher_mathimata ON teacher.id = teacher_mathimata.id_teacher 21 INNER JOIN spoudes ON teacher.id = spoudes.id_teacher 22 INNER JOIN epagempir ON teacher.id = epagempir.id_teacher 23 INNER JOIN didaktempir ON teacher.id = didaktempir.id_teacher 24 WHERE teacher_mathimata.id_mathima = '$mathimata' 25 AND teacher.kindofhelptous = 'epistimonikos synergatis' 26 AND spoudes.eidos = '3' 27 AND spoudes.titlos!= '' 28 ORDER BY allyears DESC, teacher.id ASC "] { 29 set id_teacher [lindex $row 0] 30 set years [lindex $row 3] 31 set l_name [lindex $row 1] 32 set f_name [lindex $row 2] 33 if {$years>3} { 34 sql "INSERT INTO tempteacherid (teacherid) VALUES ('$id_teacher') " 35 puts <INPUT\ type=\"hidden\"\ name=\"user\"\ value=\"$id_teacher\"> 36 sql "INSERT INTO katataksi (id_mathimata, id_teacher, type, orderlist) VALUES 37 ('$mathimata', '$id_teacher', '1', '$counter')" 38 set counter [expr {$counter+1}] 39 } 40 } 41 set counter 0 42 foreach row [sql "SELECT DISTINCT teacher.id, teacher.l_name, teacher.f_name, (epagempir.sumyears+didaktempir.sumyears) AS allyears 43 FROM teacher 44 INNER JOIN teacher_mathimata ON teacher.id = teacher_mathimata.id_teacher 45 INNER JOIN spoudes ON teacher.id = spoudes.id_teacher 46 INNER JOIN epagempir ON teacher.id = epagempir.id_teacher 47 INNER JOIN didaktempir ON teacher.id = didaktempir.id_teacher 48 WHERE teacher_mathimata.id_mathima = '$mathimata' 49 AND teacher.kindofhelptous = 'ergastiriakos synergatis' 50 AND spoudes.eidos = '2' 51 AND spoudes.titlos!= '' 52 ORDER BY allyears DESC, teacher.id ASC "] { 53 set id_teacher [lindex $row 0] 54 set years [lindex $row 3] 55 set l_name [lindex $row 1] 56 set f_name [lindex $row 2] 57 if {$years>4} { 64

68 58 set count 0 59 foreach row1 [sql "SELECT COUNT(*) FROM tempteacherid WHERE teacherid='$id_teacher'"] { 60 set count [lindex $row1 0] 61} 62 if {$count==0} { 63 sql "INSERT INTO tempteacherid (teacherid) VALUES ('$id_teacher') " 64 sql "INSERT INTO katataksi (id_mathimata, id_teacher, type, orderlist) VALUES ('$mathimata', '$id_teacher', '1', '$counter')" 65 set counter [expr {$counter+1}] 66 } 67 } 68 } Ο κώδικας ξεκινά παίρνοντας την τιμή του id του μαθήματος που έχει επιλεγεί (γραμμές 2-13). Στις επόμενες γραμμές διαγράφω από τον πίνακα katataksi ότι προηγούμενη καταχώρηση έχει γίνει για το συγκεκριμένο μάθημα και μετά ορίζω μια μεταβλητή counter. Στη γραμμή 17 μέσω της εντολής TRUNCATE της sql αδειάζω τον πίνακα tempteacherid. Σε αυτόν τον πινάκα αποθηκεύω τις τιμές των id των καθηγητών για κάθε μία από τις τρεις κατηγορίες κατάταξης. Ο λόγος είναι να αποφύγω την εμφάνιση του ίδιου ονόματος ενός καθηγητή σε περισσότερες από μία κατηγορίες. Έτσι λοιπόν αν ένας καθηγητής μπει στη πρώτη κατηγορία κατάταξης δεν θα ξαναμπεί σε καμία από τις υπόλοιπες δύο. Στις γραμμές συνδέω τους πίνακες και τα αντίστοιχα πεδία αυτών από τα οποία θα πάρω τις τιμές από τις οποίες θα προκύψει η κατάταξη με τα πρώτα κριτήρια. Στις γραμμές ακολουθεί πρώτα ο έλεγχος των χρόνων προϋπηρεσίας και αν είναι πάνω από τρία, δηλαδή είναι τέσσερα και πάνω, θα αποθηκευτούν πρώτα οι τιμές των id των καθηγητών στον πίνακα tempteacherid και ύστερα θα αποθηκευτούν στον πίνακα katataksi οι τιμές του id του μαθήματος και των id των καθηγητών, η τιμή 1 και η τιμή της μεταβλητής counter στα πεδία id_mathimata, id_teacher, type και orderlist αντίστοιχα. Στο πεδίο type θα αποθηκευτεί η τιμή 1 γιατί δηλώνει ότι όλοι οι καθηγητές με την τιμή αυτή θα εμφανιστούν στη συνέχεια στον πίνακα ΠΛΗΡΗ ΠΡΟΣΟΝΤΑ. Η τιμή της μεταβλητής counter θα αυξάνετε συνεχώς (γραμμή 38) όσο βρίσκει καθηγητές που 65

69 πληρούν αυτά τα κριτήρια άρα η τιμή της θα αποθηκεύσει στο πεδίο orderliest τον μέγιστο αριθμό των καθηγητών αυτών. Στη συνέχεια ο counter μηδενίζει για να περάσουμε στο υπόλοιπο κομμάτι του κώδικα όπου αναζητούνται οι καθηγητές που πληρούν τα δεύτερα κριτήρια που ανέφερα προηγουμένως. Η διαδικασία είναι ίδια με πριν αλλά χρησιμοποιούμε τα δεύτερα κριτήρια. Για λόγους συντομίας, μιας και ο κώδικας υπάρχει στο τέλος του εγχειριδίου, θα αναφέρω μόνο τα κριτήρια της δεύτερης και τρίτης κατηγορίας κατάταξης. Στη δεύτερη κατηγορία έχουμε τρεις επιλογές κριτηρίων: α) ο καθηγητής έχει επιλεγεί ως επιστημονικός συνεργάτης με διδακτορικό χωρίς προϋπηρεσία, β) ο καθηγητής έχει επιλεγεί ως εργαστηριακός συνεργάτης με μεταπτυχιακό χωρίς προϋπηρεσία και γ) ο καθηγητής έχει επιλεγεί ως εργαστηριακός συνεργάτης με βασικό τίτλο σπουδών. Στη τρίτη κατηγορία κατάταξης, κατατάσσονται όσοι δεν πληρούν κανένα κριτήριο από καμία από τις δύο προηγούμενες κατηγορίες. Πηγαίνουμε στη δεύτερη επιλογή που έχει ο χρήστης στη σελίδα katataksi.tcl που είναι να πατήσει το κουμπί της ΚΑΤΑΤΑΞΗΣ. Απαραίτητη προϋπόθεση για την εμφάνιση σωστών αποτελεσμάτων στη σελίδα apotelasma_katataksis.tcl, που ακολουθεί, είναι ο χρήστης να επιλέξει το ίδιο μάθημα με αυτό που είχε επιλέξει για την ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΤΑΞΗΣ. Ο κώδικας για τον πίνακα με πλήρη προσόντα είναι: 1 puts ΠΙΝΑΚΑΣ\ ΚΑΤΑΤΑΞΗΣ\ ΥΠΟΨΗΦΙΩΝ\ ΚΑΘΗΓΗΤΩΝ\ ΜΕ\ ΠΛΗΡΗ\ ΠΡΟΣΟΝΤΑ 2 puts <TABLE\ border=\"3\"\ align=\"%\"> 3 puts <TR> 4 puts <td>ονοματεπωνυμο 5 foreach row [sql "SELECT id_mathimata, id_teacher, type, orderlist FROM katataksi WHERE type='1' AND id_mathimata='$mathimata' ORDER BY orderlist"] 6 { 7 set id_mathimata [lindex $row 0] 8 set id_teacher [lindex $row 1] 9 set type [lindex $row 2] 10 set orderlist [lindex $row 3] 11 puts <TR> 12 puts <td><input\ type=\"hidden\"\ name=\"idmath\"\ value=\"$id_mathimata\"> 66

70 13 puts <td><input\ type=\"hidden\"\ name=\"idteach\"\ value=\"$id_teacher\"> 14 puts <td><input\ type=\"hidden\"\ name=\"type\"\ value=\"$type\"> 15 puts <td><input\ type=\"hidden\"\ name=\"order\"\ value=\"$orderlist\"> 16 set l_name "" 17 set f_name "" 18 foreach row [sql "SELECT l_name, f_name FROM teacher WHERE id ='$id_teacher' LIMIT 0,1"] { 19 set l_name [lindex $row 0] 20 set f_name [lindex $row 1] 21 } 22 puts <TD>$l_name\ $f_name 23 puts <TD> 24 puts <FORM\ action=\"/cgi-bin/up.tcl\"\ method=\"post\"> 25 puts <INPUT\ type=\"hidden\"\ name=\"user\"\ value=\"$id_teacher\"> 26 puts <INPUT\ type=\"hidden\"\ name=\"idmath\"\ value=\"$id_mathimata\"> 27 puts <INPUT\ type=\"hidden\"\ name=\"type\"\ value=\"1\"> 28 puts <INPUT\ type=\"hidden\"\ name=\"orderlist\"\ value=\"$orderlist\"> 29 puts <INPUT\ type=\"submit\"\ value=\"πανω\"> 30 puts </FORM> 31 puts <TD> 32 puts <FORM\ action=\"/cgi-bin/down.tcl\"\ method=\"post\"> 33 puts <INPUT\ type=\"hidden\"\ name=\"user\"\ value=\"$id_teacher\"> 34 puts <INPUT\ type=\"hidden\"\ name=\"idmath\"\ value=\"$id_mathimata\"> 35 puts <INPUT\ type=\"hidden\"\ name=\"type\"\ value=\"1\"> 36 puts <INPUT\ type=\"hidden\"\ name=\"orderlist\"\ value=\"$orderlist\"> 37 puts <INPUT\ type=\"submit\"\ value=\"κατω\"> 38 puts </FORM> Αφού έχει γίνει η αποθήκευση όλων των πληροφοριών του μαθήματος αυτού γίνετε ανάκτηση αυτών στις γραμμές Στη συνέχεια θα βάλουμε τις τιμές που ανακτήθηκαν ώς hidden, μιας και δεν θέλουμε να εμφανίζονται στον διαχειριστή(γραμμές 11-15), μέσα στις γραμμές του πίνακα και με βάση την τιμή του id για κάθε έναν καθηγητή ξεχωριστά, θα γίνει αναζήτηση του ονόματός του στον πίνακα teacher(γραμμές 18-22) και θα εμφανιστεί αυτό στον πίνακα κατάταξης (γραμμή 22). Δίπλα από το ονοματεπώνυμο του κάθε καθηγητή υπάρχουν δύο κουμπιά με τα οποία ο χρήστης έχει τη δυνατότητα να τροποποιήσει την κατάταξη που εμφανίζετε αλλάζοντας τη θέση των ονομάτων των καθηγητών. Πατώντας το κουμπί ΠΑΝΩ το όνομα πηγαίνει μία θέση πιο πάνω και αντίστροφα πατώντας το κουμπί ΚΑΤΩ. Το κουμπί πάνω αντιστοιχεί στο script up.tcl : 67

71 1 #!c:\tcl\bin\tclsh.exe 2 # 3 puts "Content-type: text/html\n\n" 4 load fbsql.dll 5 sql connect localhost root 6 sql "use ptyxiaki" 7 puts <HTML> 8 puts <BODY\ bgcolor="#6ec6f1"> 9 set ltmp [split [read stdin] &] 10 foreach {tmp} $ltmp { 11 regexp (.*)=(.*) $tmp match tmp1 tmp2 12 regsub -all {\+} $tmp2 { } tmp2 13 regsub -all {\%0D\%0A} $tmp2 "\n" tmp2 14 regsub -all {%([A-F0-9][A-F0-9])} $tmp2 {[format %c 0x\1]} tmp2 15 set tmp2 [subst $tmp2] 16 set $tmp1 $tmp2 17 if {$tmp1=="idmath"} { 18 set idmath $tmp2 19 } 20 if {$tmp1=="user"} { 21 set user $tmp2 22 } 23 if {$tmp1=="type"} { 24 set type $tmp2 25 } 26 if {$tmp1=="orderlist"} { 27 set orderlist $tmp2 28 } 29 } 30 set otherorder [expr $orderlist-1] 31 sql "UPDATE katataksi SET orderlist = '$orderlist' WHERE id_mathimata='$idmath' AND type = '$type' AND orderlist = '$otherorder'" 32 sql "UPDATE katataksi SET orderlist = '$otherorder' WHERE id_mathimata='$idmath' AND type = '$type' AND id_teacher = '$user'" 33 puts <H3>Η\ τροποποίηση\ της\ κατάταξης\ πραγματοποιήθηκε</h3> 34 puts <FORM\ METHOD=\"POST\"\ ACTION=\"/cgibin/apotelesma_katataksis.tcl\"> 35 puts <INPUT\ TYPE=\"HIDDEN\"\ NAME=\"mathimata\"\ VALUE=\"$idmath\"> 36 puts <INPUT\ TYPE=\"submit\"\ VALUE=\"ΕΠΙΣΤΡΟΦΗ\"> 37 puts </FORM> 38 puts </BODY> 39 puts </HTML> Ξεκινάμε παίρνοντας τις τιμές, που πριν τις είχα δηλώσει hidden (γραμμές 9-29). Στη συνέχεια ορίζω μία μεταβλητή otherorder η οποία θα έχει την τιμή του orderlist-1. Όπως ανέφερα παραπάνω το orderlist ορίζει την σειρά κατάταξης στον πίνακα katataksi, αφού ο χρήστης θέλει να μετακινήσει προς τα πάνω ένα όνομα η τιμή του 68

72 orderlist θα πρέπει να μειωθεί. Κατόπιν ακολουθούν δύο ανανεώσεις στον πίνακα katataksi μία για αλλάξει η σειρά κατάταξης (γραμμή 31) και μία για να αλλάξει θέση το όνομα που επιλέχθηκε με το όνομα που βρισκόταν πριν σε εκείνη τη θέση. Αντίστροφη διαδικασία ακολουθείτε για την αλλαγή θέσης προς τα κάτω με το πάτημα του κουμπιού ΚΑΤΩ, που οδηγεί στο script down.tcl: #!c:\tcl\bin\tclsh.exe # puts "Content-type: text/html\n\n" load fbsql.dll sql connect localhost root sql "use ptyxiaki" puts <HTML> puts <BODY\ bgcolor="#6ec6f1"> set ltmp [split [read stdin] &] foreach {tmp} $ltmp { regexp (.*)=(.*) $tmp match tmp1 tmp2 regsub -all {\+} $tmp2 { } tmp2 regsub -all {\%0D\%0A} $tmp2 "\n" tmp2 regsub -all {%([A-F0-9][A-F0-9])} $tmp2 {[format %c 0x\1]} tmp2 set tmp2 [subst $tmp2] set $tmp1 $tmp2 if {$tmp1=="idmath"} { set idmath $tmp2 } if {$tmp1=="user"} { set user $tmp2 } if {$tmp1=="type"} { set type $tmp2 } if {$tmp1=="orderlist"} { set orderlist $tmp2 } } set otherorder [expr $orderlist+1] sql "UPDATE katataksi SET orderlist = '$orderlist' WHERE id_mathimata='$idmath' AND type = '$type' AND orderlist = '$otherorder'" 69

73 sql "UPDATE katataksi SET orderlist = '$otherorder' WHERE id_mathimata='$idmath' AND type = '$type' AND id_teacher = '$user'" puts <H3>Η\ τροποποίηση\ της\ κατάταξης\ πραγματοποιήθηκε</h3> puts <FORM\ METHOD=\"POST\"\ ACTION=\"/cgibin/apotelesma_katataksis.tcl\"> puts <INPUT\ TYPE=\"HIDDEN\"\ NAME=\"mathimata\"\ VALUE=\"$idmath\"> puts <INPUT\ TYPE=\"submit\"\ VALUE=\"ΕΠΙΣΤΡΟΦΗ\"> puts </FORM> </BODY> </HTML> Εδώ η μεταβλητή otherorder θα πάρει την τιμή του orderlist αλλά θα προστεθεί 1 για να αυξυθεί το otherorder και να κατέβει μία θέση το όνομα που επιλέχθηκε. Πάμε και στην τρίτη επιλογή του διαχειριστή, που είναι το κουμπί ΔΗΜΙΟΥΡΓΙΑ ΝΕΟΥ ΧΡΗΣΤΗ. Το κουμπί οδηγεί σελίδα new_user.tcl ο κώδικας της οποίας είναι: 1 #!c:\tcl\bin\tclsh.exe 2 # 3 puts "Content-type: text/html\n\n" 4 load fbsql.dll 5 sql connect localhost root 6 sql "use ptyxiaki" 7 puts <HTML> 8 puts <SCRIPT\ LANGUAGE="JavaScript"> 9 puts function\ send_form(test) 10 puts \{ 11 puts document.forms\['form1'\].action\ =\ test\; 12 puts \} 13 puts </SCRIPT> 14 puts <BODY\ bgcolor="#6ec6f1"> 15 puts <H3ΧΡΗΣΤΕΣ\ ΠΟΥ\ ΥΠΑΡΧΟΥΝ\ ΣΤΟ\ ΣΥΣΤΗΜΑ</H3> 16 puts <TABLE\ border="1"> 17 puts <TR> 18 puts <TD>USERNAME 19 puts <TD>PASSWORD 20 puts <TD>ID\ ΜΑΘΗΜΑΤΟΣ 21 foreach row [sql "SELECT username, password, id_mathima FROM users WHERE id_mathima>0 ORDER BY id_mathima"] { 23 set username [lindex $row 0] 24 set password [lindex $row 1] 25 set id_mathima [lindex $row 2] 26 puts <TR> 27 puts <td>$username 28 puts <td>$password 29 puts <td>$id_mathima 30 } στη 70

74 31 puts </TABLE> 32 puts <FORM\ name=\"form1\"\ action=\"\/cgi-bin/add.tcl\"\ method=\"post\"> 33 puts <TABLE\ border="2"\ aling="center"> 34 puts <TR><H4>Εισαγωγή\ στοιχείων\ χρήστη</h4> 35 Puts <TD>username 36 puts <td><input\ type=\"text\"\ name=\"username\"> 37 puts <tr> 38 puts <TD>password 39 puts <td><input\ type=\"text\"\ name=\"password\"> 40 puts <tr> 41 puts <TD>id\ μαθήματος 42 puts <td><input\ type=\"text\"\ name=\"mathima1\"> 43 puts <td><input\ type=\"text\"\ name=\"mathima2\"> 44 puts <td><input\ type=\"text\"\ name=\"mathima3\"> 45 puts <td><input\ type=\"text\"\ name=\"mathima4\"> 46 puts <td><input\ type=\"text\"\ name=\"mathima5\"> 47puts </TABLE> 48 puts <TABLE> 49 puts <TR> 50 puts <TD> 51 puts <INPUT\ type="submit"\ value="προσθηκη\ ΧΡΗΣΤΗ"\ onclick=\"send_form('add.tcl')\"> 52 puts <TD> 53 puts <INPUT\ type="submit"\ value="διαγαφη\ ΧΡΗΣΤΗ"\ onclick=\"send_form('delete.tcl')\"> 54 puts <TD> 55 puts <INPUT\ type="submit"\ value="διορθωση\ ΧΡΗΣΤΗ"\ onclick=\"send_form('edit.tcl')\"> 56 puts </TABLE> 57 puts </FORM> 58 puts </BODY> 59 puts </HTML> Στο κομμάτι του κώδικα αυτού ξεκινάμε χρησιμοποιώντας το JavaScritp που χρησιμοποίησα και στην σελίδα katataksi.tcl, στις γραμμές γίνετε ανάκτηση των username, password και id_mathima από τον πίνακα users ούτως ώστε να μπορεί να δει ο διαχειριστής τους χρήστες που έχει δημιουργήσει και στη συνέχεια υπάρχει ένας πίνακας όπου μπορεί να εισάγει στοιχεία για να δημιουργήσει έναν νέο χρήστη, να διαγράψει κάποιον που ήδη υπάρχει η να διορθώσει τα στοιχεία κάποιου άλλου πατώντας τα αντίστοιχα κουμπιά ΠΡΟΣΘΗΚΗ, ΔΙΑΓΡΑΦΗ, ΔΙΟΡΘΩΣΗ. Για τις τρεις αυτές ενέργειες η διαδικασίες είναι ίδιες με αυτές που γινότανε στις σελίδες apotelesma.tcl, apotelesma_allagi.tcl και apotelesma_diorthosis.tcl γι αυτό και δεν θα αναφερθώ στην ανάλυση του κώδικά τους 71

75 Ας επιστρέψουμε στον κώδικα της σελίδας katataksi.tcl και συγκεκριμένα στη γραμμή 65 όπου εάν η τιμή του password δεν admin, σημαίνει ότι ο χρήστης που εισήλθε δεν είναι ο διαχειριστής αλλά ένας άλλος χρήστης τον οποίο δημιούργησε ο διαχειριστής. Αυτός λοιπόν ο χρήστης έχει δύο επιλογές στη διάθεσή του, σε σύγκριση με τον διαχειριστή, την ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΤΑΞΗΣ, και την ΚΑΤΑΤΑΞΗ οι οποίες έχουν τις ίδιες λειτουργίες με αυτές που περιέγραψα για τον διαχειριστή. Σε αυτό το σημείο τελείωσε η ανάπτυξη του κώδικα. Στο τέλος του εγχειριδίου υπάρχει συγκεντρωμένος ολόκληρος ο κώδικας της εφαρμογής. 72

76 3.3 ΠΑΡΑΡΤΗΜΑ 2 ο Εικόνα 5: Σχέσεις πινάκων1 73

77 Εικόνα 6 : Σχέσεις Πινάκων2 Εικόνα 7: Πίνακες που αφορούν την κατάταξη των καθηγητών 74

78 Εικόνα 8 : Πίνακας aitisi Εικόνα 9 : Πίνακας biblia 75

79 Εικόνα 10 : Πίνακας biblia_aitisi Εικόνα 11: Πίνακας course 76

80 Εικόνα 12 : Πίνακας diathesimotita Εικόνα 13 : Πίνακας diathesimotita_aitisi 77

81 Εικόνα 14 : Πίνακας didaktempir Εικόνα 15 : Πίνακας didaktempir_aitisi 78

82 Εικόνα 16 : Πίνακας dimosiefseis Εικόνα 17 : Πίνακας dimosiefseis_aitisi Εικόνα 18 : Πίνακας diploma_euresitexnias 79

83 Εικόνα 19 : Πίνακας diploma_euresitexnias_aitisi Εικόνα 20 : πίνακας epagempir Εικόνα 21 : Πίνακας epagempir_aitisi 80

84 Εικόνα 22 : Πίνακας ksenes_glwsses Εικόνα 23 : Πίνακας ksenes_glwsses_aitisi Εικόνα 24 : Πίνακας simvoulnum 81

85 Εικόνα 25 : Πίνακας eidos_spoudwn Εικόνα 26: Τιμές του πίνακα eidos_spoudwn Εικόνα 27 : Πίνακας spoudes Εικόνα 28 : Πίνακας spoudes_aitisi 82

86 Εικόνα 29: Πίνακας synedria Εικόνα 30 : Πίνακας synedria_aitisi 83

87 Εικόνα 31 : Πίνακας teacher 84

88 Εικόνα 32 : Πίνακας teacher_aitisi 85

89 Εικόνα 33: Πίνακας teacher_mathimata Εικόνα 34 : Πίνακας teacher_mathimata_aitisi Εικόνα 35: Πίνακας wres_aitisis 86

90 Εικόνα 36: Πίνακας katataksi Εικόνα 37 : Πίνακας users Εικόνα 38 : Πίνακας tempteacherid 87

91 ΚΕΦΑΛΑΙΟ 4 Ο 4 USERS MANUAL 4.1 Γενικά Στο κεφάλαιο αυτό θα γίνει η παρουσίαση της εφαρμογής. Ο ρόλος της είναι να παρουσιάσει ένα ένα όλα τα βήματα που πρέπει να ακολουθήσει ο χρήστης με σκοπό είτε να κάνει μία νέα αίτηση προς Τμήμα Διαχείρισης Πληροφοριών, επιδεικνύοντας το ενδιαφέρον του να διδάξει κάποια μαθήματα στο Τμήμα, είτε να αλλάξει κάποια αίτηση που είχε κάνει στο παρελθόν είτε να τη διορθώσει. Αυτό είναι το κομμάτι που αφορά στους υποψήφιους καθηγητές της εφαρμογής. Ακολουθεί η παρουσίαση της διαδικασίας κατάταξης των καθηγητών και τροποποίηση αυτής, που αφορά τον προϊστάμενο του Τμήματος και τους χρήστες που αυτός θα δημιουργήσει δίνοντάς τους δικαίωμα εισαγωγής στις κατατάξεις. Ξεκινάμε την παρουσίαση του πρώτου κομματιού. 4.2 ΑΝΑΛΥΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ Η πρώτη σελίδα της εφαρμογής είναι η ΕΙΣΟΔΟΣ. Ο καθηγητής θα πρέπει να πατήσει το κουμπί ΑΙΤΗΣΕΙΣ. Εικόνα 39 : Είσοδος της εφαρμογής 88

92 4.2.1 ΑΙΤΗΣΕΙΣ ΚΑΘΗΓΗΤΩΝ Πατώντας το κουμπί ΑΙΤΗΣΕΙΣ πηγαίνει στην επόμενη σελίδα που είναι η επιλογή της αίτησης. Εικόνα 40 : Αιτήσεις 89

93 Εδώ ο καθηγητής έχει δύο επιλογές, είτε να κάνει μία νέα αίτηση πατώντας το κουμπί ΝΕΑ ΑΙΤΗΣΗ, είτε εφόσον έχει ξανακάνει αίτηση στο παρελθόν να πατήσει το κουμπί ΠΑΛΙΑ ΑΙΤΗΣΗ. Επιλέγοντας τη ΝΕΑ ΑΙΤΗΣΗ πηγαίνει στη φόρμα της αίτησης. 90

94 91

95 Εικόνα 41 : Νέα αίτηση Στη φόρμα αυτή ο καθηγητής καλείτε να συμπληρώσει προσωπικά στοιχεία, στοιχεία ικανοτήτων και άλλες πληροφορίες. Τέλος αφού έχει συμπληρώσει όσα πεδία απαιτούνται πρέπει να τα καταχωρήσει στη βάση δεδομένων. Αυτό θα γίνει όταν πατήσει το κουμπί ΑΠΟΣΤΟΛΗ ΑΙΤΗΣΗΣ όπου θα του εμφανίσει το παρακάτω μήνυμα : 92

96 Εικόνα 42 : Καταχώρηση νέας αίτησης Αφού λοιπόν καταχωρήσει τα στοιχεία του στη βάση δεδομένων υπάρχει το κουμπί ΕΞΟΔΟΣ το οποίο τον οδηγεί πίσω στις αιτήσεις (βλέπε εικόνα 41). στοιχείων: Επιλέγοντας ΠΑΛΙΑ ΑΙΤΗΣΗ οδηγείτε στη σελίδα ταυτοποίηση Εικόνα 43 : Ταυτοποίηση στοιχείων 93

97 Εδώ θα πρέπει να επιλέξει το ονοματεπώνυμό του και να εισάγει τον κωδικό που είχε δηλώσει στην τελευταία αίτησή του. Εάν ο κωδικός που θα εισάγει ο καθηγητής είναι λάθος τότε του εμφανίζετε το παρακάτω μήνυμα: Εικόνα 44 : Λάθος κωδικός Πατώντας το link Επαλήθευση κωδικού επιστρέφει στην ταυτοποίηση στοιχείων, ενώ πατώντας το link Έξοδος επιστρέφει στις αιτήσεις (βλέπε εικόνα 41). Εάν ο κωδικός είναι σωστός εμφανίζετε η σελίδα επιλογή αίτησης : 94

98 Εικόνα 45 : Επιλογή αίτησης Εδώ ο καθηγητής έχει, όπως βλέπουμε στην εικόνα, τρεις επιλογές : την επιλογή της νέας αίτησης και την επιλογή της διόρθωσης μιας παλιάς του αίτησης που τον οδηγούν στη φόρμα εισαγωγής στοιχείων (βλέπε εικόνα 42), μόνο που εδώ η φόρμα δεν θα είναι κενή, αλλά θα είναι συμπληρωμένα εκείνα τα πεδία που είχε δηλώσει ο ίδιος την τελευταία φορά που είχε κάνει αίτηση και την επιλογή του link έξοδος που τον πηγαίνει στις αιτήσεις (βλέπε εικόνα 41). Πατώντας λοιπόν το κουμπί ΝΕΑ ΑΙΤΗΣΗ εμφανίζετε: 95

99 96

100 97

101 Εικόνα 46 : Επιλογή νέας αίτησης Το κουμπί ΑΠΟΣΤΟΛΗ ΑΙΤΗΣΗΣ δηλώνει την καταχώρηση της αίτησης στη βάση δεδομένων και μετά το πάτημά του εμφανίζετε το μήνυμα: 98

102 Εικόνα 47 : Καταχώρηση αίτησης Εδώ υπάρχει το κουμπί ΕΞΟΔΟΣ που πηγαίνει τον καθηγητή πίσω στις αιτήσεις (βλέπε εικόνα 41) Πατώντας το κουμπί ΔΙΟΡΘΩΣΗ ΠΑΛΙΑΣ ΑΙΤΗΣΗΣ εμφανίζετε: 99

103 100

104 101

105 Εικόνα 48 : Επιλογή διόρθωσης αίτησης Το κουμπί ΑΠΟΣΤΟΛΗ ΑΙΤΗΣΗΣ και εδώ κάνει την καταχώρηση της αίτησης και εμφανίζει το μήνυμα : 102

106 Εικόνα 49 : Καταχώρηση διορθωμένης αίτησης Πατώντας το κουμπί ΕΞΟΔΟΣ ο καθηγητής επιστρέφει στις αιτήσεις (βλέπε εικόνα 41) ΚΑΤΑΤΑΞΕΙΣ ΚΑΘΗΓΗΤΩΝ Ας γυρίσουμε πίσω στην πρώτη σελίδα της εφαρμογής (βλέπε εικόνα 40) και ας περάσουμε στο δεύτερο κομμάτι της εφαρμογής που αφορά στις κατατάξεις των καθηγητών. Πατάμε το κουμπί ΚΑΤΑΤΑΞΕΙΣ: 103

107 Εικόνα 50 : Είσοδος στις κατατάξεις Όπως ανέφερα και στην παράγραφο της ανάλυσης του κώδικα, το κομμάτι αυτό της εφαρμογής θα το διαχειρίζεται ο προϊστάμενος του Τμήματος Διαχείρισης Πληροφοριών και κάποιοι χρήστες που θα ορίσει ο ίδιος. Όταν λοιπόν η τιμή του password είναι admin (τιμή που όρισα εγώ σαν κριτήριο), που σημαίνει ότι αυτός που θέλει να μπει στις κατατάξεις είναι ο προϊστάμενος, τότε θα εμφανίζετε η παρακάτω σελίδα: Εικόνα 51 : Κατατάξεις 104

108 Εάν θέλει να δημιουργήσει μία κατάταξη πρέπει να ακολουθήσει τα τρία παρακάτω βήματα : 1 ο να επιλέξει από τη λίστα μαθημάτων το μάθημα για το οποίο θέλει να πραγματοποιήσει την κατάταξη, 2 ο να πατήσει το κουμπί ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΤΑΞΗΣ ούτως ώστε να δημιουργηθεί η κατάταξη και να αποθηκευτεί στον πίνακα katataksi της βάσης δεδομένων και 3 ο να επιλέξει ξανά το μάθημα για το οποίο δημιούργησε την κατάταξη και να πατήσει το κουμπί ΕΜΦΑΝΙΣΗ ΚΑΤΑΤΑΞΗΣ για να εμφανιστούν τα ονοματεπώνυμα των καθηγητών εκείνων που έχουν δηλώσει ότι επιθυμούν να διδάξουν το συγκεκριμένο μάθημα, καταταγμένα σύμφωνα με τα προσόντα που διαθέτουν. Ας δούμε τα βήματα: 1 ο Επιλογή μαθήματος και δημιουργία κατάταξης Εικόνα 52 : Δημιουργία κατάταξης 105

109 Με το πάτημα του κουμπιού εμφανίζετε : Εικόνα 53 : Επιτυχής δημιουργία Και πατώντας το link Επιστροφή γυρίσει στην προηγούμενη σελίδα (βλεπε εικόνα 52). 2 ο Επιλογή του ίδιου μαθήματος και εμφάνιση κατάταξης. Εικόνα 54 : Εμφάνιση κατάταξης 106

110 Με το πάτημα του κουμπιού ΕΜΦΑΝΙΣΗ ΚΑΤΑΤΑΞΗΣ: Εικόνα 55 : Αποτελέσματα κατάταξης Εμφανίζονται οι τρεις κατηγορίες κατάταξης, αλλά εάν δεν υπάρχουν καθηγητές που να πληρούν τα κριτήρια κατάταξης τότε δεν εμφανίζονται στα αποτελέσματά της. Όπως βλέπουμε στην παραπάνω εικόνα για το μάθημα Αλγοριθμοποίηση Θεωρία έκαναν αίτηση τρεις καθηγητές εκ των οποίων κανένας δεν έχει πλήρη προσόντα και ένας κατάγει στους μη επιλεγόμενους. Όπως ανέφερα και πιο πάνω ο προϊστάμενος, και οι χρήστες που θα δημιουργήσει ο ίδιος, θα μπορεί να κάνει τροποποίηση της κατάταξης που εμφανίζετε. Για τον λόγο αυτό δίπλα από κάθε ονοματεπώνυμο που εμφανίζετε υπάρχουν δύο κουμπιά τα ΠΑΝΩ και ΚΑΤΩ με τα οποία θα γίνετε αυτή η τροποποίηση. 107

111 Πατώντας το κουμπί ΠΑΝΩ πρώτα εμφανίζετε το μήνυμα της επόμενης εικόνας : Εικόνα 56 : Τροποποίηση κατάταξης πραγματοποιήθηκε και πατώντας το κουμπί ΕΠΙΣΤΡΟΦΗ το ονοματεπώνυμο του καθηγητή θα ανέβει μία θέση όπως δείχνει η επόμενη εικόνα: 108

112 Εικόνα 57 : Τροποποίηση κατάταξης προς τα πάνω Το κουμπί ΚΑΤΩ προκαλεί την αντίθετη τροποποίηση κατάταξης δηλαδή κατεβάζει μία θέση το ονοματεπώνυμο του καθηγητή. Ο προϊστάμενος έχει και μία τρίτη επιλογή στη διάθεσή του. Γυρίζοντας πίσω στις κατατάξεις (βλέπε εικόνα 51) υπάρχει το κουμπί ΔΗΜΙΟΥΡΓΙΑ ΝΕΟΥ ΧΡΗΣΤΗ. Αυτό το κουμπί δίνει τη δυνατότητα στον προϊστάμενο να δημιουργήσει τους χρήστες που θα μπαίνουν στις κατατάξεις και θα έχουν το δικαίωμα δημιουργίας και τροποποίησης κατάταξης. 109

113 Πατώντας αυτό το κουμπί εμφανίζετε η ακόλουθη εικόνα: Εικόνα 58 : Νέος χρήστης Όπως βλέπουμε στην εικόνα 58, και όπως είχα πει και στην ανάλυση του κώδικα αυτής της σελίδας σε προηγούμενη παράγραφο, ο προϊστάμενος βλέπει τους χρήστες που έχει δημιουργήσει στον πρώτο πίνακα της σελίδας αυτής. Κάτω από τον πίνακα αυτόν υπάρχει ένας πίνακας εισαγωγής στοιχείων, όπου ο προϊστάμενος συμπληρώνει το username, password και το ή τα id των μαθημάτων που διδάσκει ο χρήστης αυτός. Με τη βοήθεια των τριών κουμπιών που βρίσκονται κάτω από τον πίνακα εισαγωγής στοιχείων ο προϊστάμενος έχει τη δυνατότητα να προσθέσει, να διαγράψει ή να διορθώσει κάποιον χρήστη πατώντας τα αντίστοιχα αυτά κουμπιά. Να τονίσω πως για τη διαγραφή κάποιου χρήστη απαιτείτε η συμπλήρωση μόνο του username του χρήστη και για την διόρθωση θα πρέπει το username του να μην αλλάξει. Σε περίπτωση που ο χρήστης επιθυμεί αλλαγή του username θα πρέπει να διαγραφεί και να προστεθεί πάλι από την αρχή. Γυρίζουμε πίσω στη σελίδα εισόδου των κατατάξεων, (βλέπε εικόνα 50). Αφού δώσουν οι χρήστες το username και το password μπαίνουν στην κεντρική σελίδα των κατατάξεων που είναι η παρακάτω : 110

114 Εικόνα 59 : Κατατάξεις Βλέπουμε ότι η σελίδα είναι ίδια με αυτήν που εισέρχεται ο προϊστάμενος, με τη διαφορά ότι στους χρήστες δεν εμφανίζετε το κουμπί ΔΗΜΙΟΥΡΓΙΑ ΝΕΟΥ ΧΡΗΣΤΗ, μιας και αυτή η ενέργεια ανήκει αποκλειστικά στον προϊστάμενο. Οι χρήστες για την δημιουργία και την εμφάνιση της κατάταξης ακολουθούν τα ίδια βήματα που περιέγραψα για τον προϊστάμενο. 111

115 4.3 ΠΑΡΑΡΤΗΜΑ 3 ο Εικόνα 39 : Είσοδος της εφαρμογής Εικόνα 40 : Αιτήσεις 112

116 Εικόνα 41 : Νέα αίτηση 113

117 114

118 115

119 Εικόνα 42 : Καταχώρηση νέας αίτησης Εικόνα 43 : Ταυτοποίηση στοιχείων 116

120 Εικόνα 44 : Λάθος κωδικός Εικόνα 45 : Επιλογή αίτησης 117

121 Εικόνα 46 : Επιλογή νέας αίτησης 118

122 119

123 120

124 Εικόνα 47 : Καταχώρηση αίτησης Εικόνα 48 : Επιλογή διόρθωσης αίτησης 121

125 122

126 123

127 Εικόνα 49 : Καταχώρηση διορθωμένης αίτησης 124

128 Εικόνα 50 : Είσοδος στις κατατάξεις Εικόνα 51 : Κατατάξεις 125

129 Εικόνα 52 : Δημιουργία κατάταξης Εικόνα 53 : Επιτυχής δημιουργία 126

130 Εικόνα 54 : Εμφάνιση κατάταξης Εικόνα 55 : Αποτελέσματα κατάταξης 127

131 Εικόνα 56 : Τροποποίηση κατάταξης πραγματοποιήθηκε Εικόνα 57 : Τροποποίηση κατάταξης προς τα πάνω 128

132 Εικόνα 58 : Νέος χρήστης Εικόνα 60 : Κατατάξεις 129

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

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

Διαβάστε περισσότερα

Εργαστήριο 9. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας

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

Διαβάστε περισσότερα

Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο

Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο Άσκηση 5 -Δηµιουργία ιστοσελίδων µε HTML µέρος 5 ο HTML Φόρµες Για να δηµιουργήσουµε µια φόρµα στην οποία θα γράφουν σχόλια ή παρατηρήσεις οι επισκέπτες των σελίδων µας, χρειαζόµαστε την ετικέτα .

Διαβάστε περισσότερα

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ, ΑΓ. ΛΟΥΚΑΣ 65404 ΚΑΒΑΛΑ, 2510 462100, www.teiemt.gr, www.teikav.edu.gr Ημερομ.: /./2014 Αρ. Πρωτ.:.

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ, ΑΓ. ΛΟΥΚΑΣ 65404 ΚΑΒΑΛΑ, 2510 462100, www.teiemt.gr, www.teikav.edu.gr Ημερομ.: /./2014 Αρ. Πρωτ.:. Ημερομ.: /./01 Αρ. Πρωτ.:. ΑΙΤΗΣΗ ΠΡΟΣ: Τ.Ε.Ι. Α.Μ.Θ. ΣΧΟΛΗ ΤΜΗΜΑ ΣΤΕΦ ΜΗΧΑΝΙΚΩΝ ΤΕΧΝΟΛΟΓΙΑΣ ΠΕΤΡΕΛΑΙΟΥ ΚΑΙ ΦΥΣΙΚΟΥ ΑΕΡΙΟΥ ΤΕ & ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΕ Σύμφωνα με την αριθμ. 98/16-09-01 προκήρυξη, σας

Διαβάστε περισσότερα

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

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

Διαβάστε περισσότερα

Συλλογή και Επεξεργασία Δεδομένων με Φόρμες

Συλλογή και Επεξεργασία Δεδομένων με Φόρμες Συλλογή και Επεξεργασία Δεδομένων με Φόρμες Οι φόρμες αποτελούν τον πιο δημοφιλή τρόπο για τη συλλογή δεδομένων μέσω του World Wide Web (WWW). Επιτρέπουν στους χρήστες να επικοινωνούν με τη βοήθεια του

Διαβάστε περισσότερα

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης Χειμερινό εξάμηνο 2011-2012 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Εργαστήριο 6. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας. a) Εκκίνηση XAMPP

Εργαστήριο 6. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο. Στόχος. Προετοιμασία περιβάλλοντος εργασίας. a) Εκκίνηση XAMPP Εργαστήριο 6 Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Στόχος Στόχος του εργαστηρίου είναι η εισαγωγή στην γλώσσα PHP και η εξοικείωση των φοιτητών στην χρήση του Web Server για την εξυπηρέτηση σελίδων

Διαβάστε περισσότερα

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

Διαβάστε περισσότερα

Αίτηση Εισαγωγής Μεταπτυχιακού & Διδακτορικού Φοιτητή

Αίτηση Εισαγωγής Μεταπτυχιακού & Διδακτορικού Φοιτητή Αίτηση Εισαγωγής Μεταπτυχιακού & Διδακτορικού Φοιτητή 1. Δημιουργία Αίτησης Εισαγωγής Μεταπτυχιακού / Διδακτορικού Φοιτητή 1.1 Συμπλήρωση Αίτησης Εισαγωγής Φοιτητή από την Δικτυακή Πύλη 1.1.1. Σκοπός Οι

Διαβάστε περισσότερα

Εργαστήριο 8. Προγραμματιστικές Εφαρμογές στο Διαδίκτυο

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

Διαβάστε περισσότερα

ιαχείριση Πληροφοριών στο ιαδίκτυο

ιαχείριση Πληροφοριών στο ιαδίκτυο ιαχείριση Πληροφοριών στο ιαδίκτυο Εργαστήριο (Φυλλάδιο 7) ΤΕΙ Καβάλας - Σχολή ιοίκησης & Οικονοµίας Τµήµα ιαχείρισης Πληροφοριών ιδάσκων: Μαρδύρης Βασίλειος, ιπλ. Ηλ. Μηχανικός & Μηχ. Υπολογιστών, MSc

Διαβάστε περισσότερα

2. ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΓΙΩΡΓΟΣ ΓΙΑΝΝΑΚΑΚΗΣ, ΜΑΝΩΛΗΣ ΤΣΙΚΝΑΚΗΣ

2. ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΓΙΩΡΓΟΣ ΓΙΑΝΝΑΚΑΚΗΣ, ΜΑΝΩΛΗΣ ΤΣΙΚΝΑΚΗΣ 2014 2. ΕΙΣΑΓΩΓΗ ΣΤΗΝ HTML ΓΙΩΡΓΟΣ ΓΙΑΝΝΑΚΑΚΗΣ, ΜΑΝΩΛΗΣ ΤΣΙΚΝΑΚΗΣ H HTML είναι μία γλώσσα σήμανσης και αποτελεί την κύρια γλώσσα δημιουργίας ιστοσελίδων του διαδικτύου. Είναι το ακρωνύμιο των λέξεων HyperText

Διαβάστε περισσότερα

Ιδρυματικό Αποθετήριο ΤΕΙ ΠΕΙΡΑΙΑ

Ιδρυματικό Αποθετήριο ΤΕΙ ΠΕΙΡΑΙΑ Ιδρυματικό Αποθετήριο ΤΕΙ ΠΕΙΡΑΙΑ Οδηγίες κατάθεσης εργασίας στο σύστημα διαχείρισης αποθετηρίου DSpace 2 Κατάθεση εργασίας στο σύστημαdspace 1. Είσοδος στο σύστημα 1. Ανοίγουμε ένα γνωστό φυλλομετρητή

Διαβάστε περισσότερα

Ερευνητικό Αποθετήριο ΤΕΙ Ηπείρου. Οδηγίες κατάθεσης δημοσίευσης στο σύστημα Ερευνητικού Αποθετηρίου CRIS

Ερευνητικό Αποθετήριο ΤΕΙ Ηπείρου. Οδηγίες κατάθεσης δημοσίευσης στο σύστημα Ερευνητικού Αποθετηρίου CRIS Ερευνητικό Αποθετήριο ΤΕΙ Ηπείρου Οδηγίες κατάθεσης δημοσίευσης στο σύστημα Ερευνητικού Αποθετηρίου CRIS 2014 1. Είσοδος στο σύστημα 1. Ανοίγουμε ένα γνωστό φυλλομετρητή (browser) όπως Mozilla Firefox,

Διαβάστε περισσότερα

XAMPP Apache MySQL PHP javascript xampp

XAMPP Apache MySQL PHP javascript xampp XAMPP Το xampp είναι ένα δωρεάν πρόγραμμα με το οποίο μπορούμε να κάνουμε εγκατάσταση τον Apache, τη MySQL και την PHP. Apache. Ο Apache είναι ένας Web Server. Είναι δηλαδή πρόγραμμα το οποίο τρέχει μόνιμα

Διαβάστε περισσότερα

Ερευνητικό Αποθετήριο Πανεπιστημίου Πειραία

Ερευνητικό Αποθετήριο Πανεπιστημίου Πειραία Ερευνητικό Αποθετήριο Πανεπιστημίου Πειραία Οδηγίες κατάθεσης δημοσίευσης στο ΠΕΡΙΛΗΨΗ σύστημα Ερευνητικού Αποθετηρίου CRIS ΕΡΕΥΝΗΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΙΡΑΙΩΣ 2016 Οδηγίες κατάθεσης δημοσίευσης

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING - 2 -

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING - 2 - - 2 - ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING Περιεχόµενα Εγκατάσταση λογισµικού Οθόνη καλωσορίσµατος στην εγκατάσταση...4 Πληροφορίες ιδρύµατος και λογισµικού...5 ηµιουργία συντόµευσης στο µενού έναρξης

Διαβάστε περισσότερα

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

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Νοέμβριος 2007 1 Περιεχόμενα Εισαγωγή...2

Διαβάστε περισσότερα

ΠΡΟΣ: ΑΙΤΗΣΗ. Τη Γραμματεία του Τμήματος. της Σχολής. του ΤΕΙ Στερεάς Ελλάδας.

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

Διαβάστε περισσότερα

Ετικέτες HTML. <!-->: Τα σχόλια χρησιμοποιούνται για να γράφουμε σημειώσεις μέσα στον

Ετικέτες HTML. <!-->: Τα σχόλια χρησιμοποιούνται για να γράφουμε σημειώσεις μέσα στον Ετικέτες HTML : Τα σχόλια χρησιμοποιούνται για να γράφουμε σημειώσεις μέσα στον πηγαίο κώδικα για να διευκολύνουμε την επεξεργασία και την συντήρηση του αρχείου. Τα σχόλια δεν εμφανίζονται στην οθόνη

Διαβάστε περισσότερα

Τ.Ε.Ι. Κεντρική Μακεδονίας Πύλη Διδακτικού Υλικού. Οδηγίες κατάθεσης διδακτικού υλικού στην Πύλη Διδακτικού Υλικού "Μελετητήριο"

Τ.Ε.Ι. Κεντρική Μακεδονίας Πύλη Διδακτικού Υλικού. Οδηγίες κατάθεσης διδακτικού υλικού στην Πύλη Διδακτικού Υλικού Μελετητήριο Τ.Ε.Ι. Κεντρική Μακεδονίας Πύλη Διδακτικού Υλικού Οδηγίες κατάθεσης διδακτικού υλικού στην Πύλη Διδακτικού Υλικού "Μελετητήριο" Κατάθεση διδακτικού υλικού στο "Μελετητήριο" 1. Είσοδος στο σύστημα 1. Ανοίγουμε

Διαβάστε περισσότερα

Java & Java EE 1o Μέρος: Servlets και Java Server Pages. Κακαρόντζας Γεώργιος

Java & Java EE 1o Μέρος: Servlets και Java Server Pages. Κακαρόντζας Γεώργιος Java & Java EE 1o Μέρος: Servlets και Java Server Pages Κακαρόντζας Γεώργιος Διάκριση μεταξύ Web και πλήρους προφίλ Στη Java EE υπάρχει η διάκριση μεταξύ web προφίλ και πλήρους προφίλ. Το Web προφίλ περιλαμβάνει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

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

Τα προγράμματα σε ASP που χρησιμοποιήθηκαν για την υλοποίηση της διαχείρισης των μαθημάτων. ΠΑΡΑΡΤΗΜΑ Α Τα προγράμματα σε ASP που χρησιμοποιήθηκαν για την υλοποίηση της διαχείρισης των μαθημάτων. Αρχική σελίδα (home.asp)

Διαβάστε περισσότερα

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

Διαβάστε περισσότερα

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

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί

Διαβάστε περισσότερα

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 1 17/01/2012 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Εργαστηριακή Άσκηση 1 17/01/2012

Διαβάστε περισσότερα

Εγχειρίδιο χρήσης. ΜΗΤΡΩΟ ΕΠΙΜΟΡΦΩΤΩΝ ΕΚΠΑΙΔΕΥΤΩΝ ΕΝΗΛΙΚΩΝ του ΚΑΝΕΠ ΓΣΕΕ

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

Διαβάστε περισσότερα

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1 Διαχείριση Πληροφοριών στο Διαδίκτυο Εργαστήριο 1 Τεχνολογικό Εκπαιδευτικό Ίδρυμα Καβάλας Σχολή Διοίκησης & Οικονομίας Τμήμα Διαχείρισης Πληροφοριών Διδάσκων Μαρδύρης Βασίλειος, Διπλ. Ηλ. Μηχανικός & Μηχ.

Διαβάστε περισσότερα

Οδηγίες - Ρυθμίσεις Λογαριασμού Μέλους

Οδηγίες - Ρυθμίσεις Λογαριασμού Μέλους Οδηγίες - Ρυθμίσεις Λογαριασμού Μέλους Ευχαριστούμε που χρησιμοποιείτε την υπηρεσία του e-mykonos για την καταχώρηση του βιογραφικού σας. Η φόρμα βιογραφικού που θα βρείτε στο προφίλ σας, είναι προαιρετική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

databases linux - terminal (linux / windows terminal)

databases linux - terminal (linux / windows terminal) databases linux - terminal (linux / windows terminal) 1) ανοίγουμε την mysql -> $ mysql -u root -p (enter) password (enter) TIP: αν κατά την εντολή αυτή μας γράψει, ERROR 2002 (HY000): Can't connect to

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην HTML. Άννα Κεφάλα Παναγιώτα Μιχόλια

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην HTML. Άννα Κεφάλα Παναγιώτα Μιχόλια Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην HTML Άννα Κεφάλα Παναγιώτα Μιχόλια Εργαστηριακές Σημειώσεις ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ HTML ΜΕΡΟΣ Β': CSS ΚΑΙ FORMS 2 Cascading Style Sheets (CSS) Cascading Style

Διαβάστε περισσότερα

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form>

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form> Φόρμες Οι φόρμες περιέχουν τα στοιχεία φόρμας στο οποία ένας χρήστης μπορεί να εισαγάγει δεδομένα τα οποία στη συνέχεια αποστέλλονται σε έναν εξυπηρετητή για παραπέρα επεξεργασία. Γενικοί κανόνες Για τις

Διαβάστε περισσότερα

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access Κεφάλαιο 2: Microsoft Access Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Κεφάλαιο 1: Βάσεις δεδομένων και Microsoft Access... 9 Κεφάλαιο 2: Microsoft Access 2002... 20 Κεφάλαιο 3: Το σύστημα Βοήθειας του Microsoft Office ΧΡ... 36

Διαβάστε περισσότερα

Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Εργαστήριο 5

Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Εργαστήριο 5 Προγραμματιστικές Εφαρμογές στο Διαδίκτυο Εργαστήριο 5 Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής 1. Στόχος Στόχος του εργαστηρίου είναι

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Βασικές Οδηγίες Χρήσης της Εφαρμογής

Βασικές Οδηγίες Χρήσης της Εφαρμογής Βασικές Οδηγίες Χρήσης της Εφαρμογής Σύνδεση στην Εφαρμογή Πριν ξεκινήσετε την εργασία σας με το Σύστημα Διαχείρισης Εφαρμογών του ΚΕΠΕΑ πρέπει να συνδεθείτε δίνοντας το username και το password που σας

Διαβάστε περισσότερα

Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Οδηγίες κατάθεσης εργασίας στο σύστημα διαχείρισης αποθετηρίου DSpace 2 Κατάθεση εργασίας στο σύστημα Ιδρυματικού Αποθετηρίου 1. Είσοδος στο σύστημα 1. Ανοίγουμε

Διαβάστε περισσότερα

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 2 24/01/2012

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 2 24/01/2012 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Ακαδημαϊκό Έτος 2011 2012, Εαρινό Εξάμηνο Εργαστηριακή Άσκηση 2 24/01/2012

Διαβάστε περισσότερα

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

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

Διαβάστε περισσότερα

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

WORDPRESS. Εικόνα 1. Πατώντας στη «Σύνδεση» γράψτε το Username (όνομα χρήστη) και το Password (συνθηματικό) (εικόνα 2) που σας έδωσε ο διαχειριστής

WORDPRESS. Εικόνα 1. Πατώντας στη «Σύνδεση» γράψτε το Username (όνομα χρήστη) και το Password (συνθηματικό) (εικόνα 2) που σας έδωσε ο διαχειριστής WORDPRESS Το παρόν εγχειρίδιο είναι μία προσπάθεια για τους συναδέλφους εκπαιδευτικούς αλλά και μαθητές για την δημοσίευση άρθρων. Για παραλήψεις, λάθη ή κάτι το δυσνόητο παρακαλώ ενημερώστε με ώστε να

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Ανάπτυξη δικτυακού χώρου για την υλοποίηση των εφαρμογών δημόσιας συζήτησης, και συζήτησης χρηστών σε πραγματικό χρόνο

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

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ «ΨΗΦΙΑΚΩΝ ΑΡΘΡΩΝ» ΜΕ ΧΡΗΣΗ ΚΑΙ ΜΕΘΟΔΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΔΙΑΔΙΚΤΥΟΥ HTML, JAVASCRIPT,

Διαβάστε περισσότερα

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

Διαβάστε περισσότερα

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

6 Εισαγωγή στο Wordpress 3.x Περιεχόμενα 1 Εγκατάσταση του WordPress... 11 Ελάχιστες απαιτήσεις... 11 Easy PHP... 12 Εγκατάσταση Easy PHP... 12 Βήματα εγκατάστασης EasyPHP με εικόνες... 13 Το EasyPHP στα Ελληνικά... 17 Κατέβασμα και

Διαβάστε περισσότερα

Ethniki Cyprus Rate User Manual

Ethniki Cyprus Rate User Manual MANUAL Ethniki Cyprus Rate User Manual Περιεχόµενα Λίγα λόγια για την εφαρµογή Εγκατάσταση και είσοδος στην εφαρµογή Νέος χρήστης / Αίτηση εγγραφής Ήδη εγγεγραµµένος χρήστης Καταχώρηση στοιχείων ασφαλιστή

Διαβάστε περισσότερα

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ: ΘΕΟΔΟΣΙΟΥ ΝΙΚΗ Α.Μ. 103/04 ΠΑΠΑΠΕΤΡΟΥ ΦΩΤΕΙΝΗ Α.Μ. 134/04 Εξεταστική Επιτροπή Επιβλέπουσα Καθηγήτρια : Σατρατζέμη Μαρία, Καθηγήτρια Μέλη : Ευαγγελίδης

Διαβάστε περισσότερα

ΠΡΟΣ: ΑΙΤΗΣΗ. Τη Γραμματεία του Τμήματος. της Σχολής. του ΤΕΙ Στερεάς Ελλάδας.

ΠΡΟΣ: ΑΙΤΗΣΗ. Τη Γραμματεία του Τμήματος. της Σχολής. του ΤΕΙ Στερεάς Ελλάδας. ΠΡΟΣ: Τη Γραμματεία του Τμήματος. της Σχολής. του ΤΕΙ Στερεάς Ελλάδας. ΑΙΤΗΣΗ ΕΠΩΝΥΜΟ..... ΟΝΟΜΑ..... ΟΝΟΜΑ ΠΑΤΕΡΑ.. Δ/ΝΣΗ ΚΑΤΟΙΚΙΑΣ: ΟΔΟΣ.... Τ.Κ.. ΠΕΡΙΟΧΗ.. ΤΗΛΕΦΩΝΟ:..... Κινητό.... e-mail.. ΘΕΜΑ: "Υποβολή

Διαβάστε περισσότερα

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, Τ.Κ Μαρούσι Αττικής Τηλ.: Fax:

01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, Τ.Κ Μαρούσι Αττικής Τηλ.: Fax: 01 SOLUTIONS HELLAS Ε.Π.Ε. Χελμού 20, Τ.Κ. 151 25 Μαρούσι Αττικής Τηλ.: 215.5500880 Fax: 215.5500883 E-mail: info@01solutions.gr Πίνακας Περιεχομένων 1. Εταιρίες (w_etairs)... 4 2. Χρήστες (w_users)...

Διαβάστε περισσότερα

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

Διαβάστε περισσότερα

Διαχείριση Επαγγελματιών Εταιρίας

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

Διαβάστε περισσότερα

NetBeans και σχετικά προγράμματα. Κακαρόντζας Γεώργιος Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ 1ο Θερινό Σχολείο Κώδικα

NetBeans και σχετικά προγράμματα. Κακαρόντζας Γεώργιος Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ 1ο Θερινό Σχολείο Κώδικα NetBeans και σχετικά προγράμματα Κακαρόντζας Γεώργιος Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ 1ο Θερινό Σχολείο Κώδικα Ατζέντα Εγκατάσταση προγραμμάτων Java NetBeans MySQL Δημιουργία απλής εφαρμογής διαδικτύου

Διαβάστε περισσότερα

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

Διαβάστε περισσότερα

PRISMA Win POS Sync Merge Replication

PRISMA Win POS Sync Merge Replication ΤΜΗΜΑ ΥΠΟΣΤΗΡΙΞΗΣ Οδηγός Ρυθμίσεων Συγχρονισμού PRISMA Win POS Sync Merge Replication Η διαδικασία του συγχρονισμού γίνεται από τον Η/Υ που έχει το Back Office. Βασική προϋπόθεση για να ενεργοποιηθεί ο

Διαβάστε περισσότερα

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

ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΩΝ ΥΠΟΤΡΟΦΩΝ ΓΙΑ ΤΟ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΤΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ Βόλος, 19/10/2017 Αρ. πρωτ.: 944 ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΩΝ ΥΠΟΤΡΟΦΩΝ ΓΙΑ ΤΟ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΤΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ 2017 2018 Το Τμήμα Μηχανολόγων Μηχανικών του Πανεπιστημίου

Διαβάστε περισσότερα

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

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

Διαβάστε περισσότερα

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

Εγχειρίδιο χρήσης για τον φοιτητή Εγχειρίδιο χρήσης για τον φοιτητή 1 Αρχική οθόνη Όταν κάποιος χρήστης εισέρχεται για πρώτη φορά στο σύστημα εμφανίζεται η παρακάτω οθόνη/σελίδα: Στα αριστερά της οθόνης εμφανίζεται η φόρμα σύνδεσης στην

Διαβάστε περισσότερα

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΙΤΗΣΕΩΝ ΔΙΑΔΑΝΕΙΣΜΟΥ (smille)

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΙΤΗΣΕΩΝ ΔΙΑΔΑΝΕΙΣΜΟΥ (smille) ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΙΤΗΣΕΩΝ ΔΙΑΔΑΝΕΙΣΜΟΥ (smille) Εγχειρίδιο Χρήσης ΚΕΝΤΡΙΚΗ ΒΙΒΛΙΟΘΗΚΗ Ε.Μ.Π. Το σύστημα smille αναπτύχθηκε στο Πανεπιστήμιο Μακεδονίας, Βιβλιοθήκη & Κέντρο πληροφόρησηας,

Διαβάστε περισσότερα

Επαναληπτική Άσκηση ΕΤΙΚΕΤΕΣ HTML

Επαναληπτική Άσκηση ΕΤΙΚΕΤΕΣ HTML Επαναληπτική Άσκηση ΕΤΙΚΕΤΕΣ HTML ΕΤΙΚΕΤΑ ΠΕΡΙΓΡΑΦΗ ΙΔΙΟΤΗΤΕΣ ΙΔΙΟΤΗΤΑ ΤΙΜΗ ΠΕΡΙΓΡΑΦΗ Βασικές Ορίζει ένα αρχείο HTML Ορίζει ένα τίτλο για το αρχείο Ορίζει το σώµα της background URL

Διαβάστε περισσότερα

1. Αίτηση Εισαγωγής Μεταπτυχιακού / Διδακτορικού Φοιτητή

1. Αίτηση Εισαγωγής Μεταπτυχιακού / Διδακτορικού Φοιτητή 1. Αίτηση Εισαγωγής Μεταπτυχιακού / Διδακτορικού Φοιτητή 1.1 Συμπλήρωση Αίτησης Εισαγωγής Φοιτητή από την Δικτυακή Πύλη 1.1.1. Σκοπός Οι υποψήφιοι μεταπτυχιακοί / διδακτορικοί φοιτητές του Πανεπιστημίου

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

Διαβάστε περισσότερα

ΙΔΡΥΜΑΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ

ΙΔΡΥΜΑΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΙΔΡΥΜΑΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ Οδηγίες κατάθεσης εργασίας στο σύστημα διαχείρισης αποθετηρίου EPrints ΚΑΤΑΘΕΣΗ ΕΡΓΑΣΙΑΣ ΣΤΟ ΙΔΡΥΜΑΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ 1. Είσοδος στο σύστημα

Διαβάστε περισσότερα

Ιδρυματικό Αποθετήριο Τ.Ε.Ι. Κεντρικής Μακεδονίας. Οδηγίες κατάθεσης εργασίας στο σύστημα διαχείρισης αποθετηρίου «Απόθεσις»

Ιδρυματικό Αποθετήριο Τ.Ε.Ι. Κεντρικής Μακεδονίας. Οδηγίες κατάθεσης εργασίας στο σύστημα διαχείρισης αποθετηρίου «Απόθεσις» Ιδρυματικό Αποθετήριο Τ.Ε.Ι. Κεντρικής Μακεδονίας Οδηγίες κατάθεσης εργασίας στο σύστημα διαχείρισης αποθετηρίου «Απόθεσις» Κατάθεση εργασίας στο «Απόθεσις» 1. Είσοδος στο σύστημα 1. Ανοίγουμε ένα γνωστό

Διαβάστε περισσότερα

Οδηγίες Ανάκτησης Password λογαριασμού URegister

Οδηγίες Ανάκτησης Password λογαριασμού URegister Οδηγίες Ανάκτησης Password λογαριασμού Uregister v1.1 Οδηγίες Ανάκτησης Password λογαριασμού URegister (ισχύει για λογαριασμούς Φοιτητών και Προσωπικού) Η Υπηρεσία Διαχείρισης Κωδικού χρήστη σας παρέχει

Διαβάστε περισσότερα

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

ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΩΝ ΥΠΟΤΡΟΦΩΝ ΓΙΑ ΤΟ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Αρ. Πρωτ: 1691 Βόλος, 25/07/2018 ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΩΝ ΥΠΟΤΡΟΦΩΝ ΓΙΑ ΤΟ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2018-2019 Η συνέλευση του Τμήματος Αρχιτεκτόνων Μηχανικών της Πολυτεχνικής

Διαβάστε περισσότερα

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

Οδηγίες Χρήσης της MySQL ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΗΜΕΙΩΣΕΙΣ ΣΕ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Οδηγίες Χρήσης της MySQL Διδάσκων: Γιάννης Θεοδωρίδης Συντάκτης Κειμένου: Βαγγέλης Κατσικάρος Απρίλιος 2007 1 Περιεχόμενα Εισαγωγή...2

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python 1η Ομάδα Ασκήσεων Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων IDLE - Διαδικασία ανάπτυξης προγραμμάτων Python - Εισαγωγικά προγράμματα / print / μεταβλητές / input

Διαβάστε περισσότερα

. / / 2012. Αρ. Πρωτ. : Α Ι Τ Η Σ Η ΕΠΩΝΥΜΟ :.. ΟΝΟΜΑ : ΟΝΟΜΑ ΠΑΤΕΡΑ :.. Π Ρ Ο Σ. το Τμήμα ΗΜΕΡΟΜΗΝΙΑ ΓΕΝΝΗΣΗΣ :. ΔΙΕΥΘΥΝΣΗ ΚΑΤΟΙΚΙΑΣ

. / / 2012. Αρ. Πρωτ. : Α Ι Τ Η Σ Η ΕΠΩΝΥΜΟ :.. ΟΝΟΜΑ : ΟΝΟΜΑ ΠΑΤΕΡΑ :.. Π Ρ Ο Σ. το Τμήμα ΗΜΕΡΟΜΗΝΙΑ ΓΕΝΝΗΣΗΣ :. ΔΙΕΥΘΥΝΣΗ ΚΑΤΟΙΚΙΑΣ Α Ι Τ Η Σ Η. / / 201 Αρ. Πρωτ. : ΕΠΩΝΥΜΟ :.. ΟΝΟΜΑ : ΟΝΟΜΑ ΠΑΤΕΡΑ :.. ΗΜΕΡΟΜΗΝΙΑ ΓΕΝΝΗΣΗΣ :. ΔΙΕΥΘΥΝΣΗ ΚΑΤΟΙΚΙΑΣ ΟΔΟΣ :..... Τ.Κ. : ΠΕΡΙΟΧΗ :... ΤΗΛΕΦΩΝΟ :. fax :...... e-mail :.... Α.Δ.Τ. :.... Α.Φ.Μ.

Διαβάστε περισσότερα

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

ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΥΠΟΔΟΜΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟ ΚΕΝΤΡΟ ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΥΠΟΔΟΜΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟ ΚΕΝΤΡΟ Πολυτεχνειούπολη Ακρωτηρίου, Χανιά, 73100 Τηλ.: 28210 37400 (κεντρικό), 28210 37766 (κτίριο ΜΗΠΕΡ), Fax: 28210 37571 e-mail:

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ. Κεφάλαιο 5. Αλληλεπιδραστικές ιστοσελίδες (χρήση ετικέτας <FORM> και η τεχνική CGI)

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ. Κεφάλαιο 5. Αλληλεπιδραστικές ιστοσελίδες (χρήση ετικέτας <FORM> και η τεχνική CGI) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 5. Αλληλεπιδραστικές ιστοσελίδες (χρήση ετικέτας και η τεχνική CGI) Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 ΦΟΡΜΕΣ (FORM) Είναι ο κύριος

Διαβάστε περισσότερα

wertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfg

wertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfg qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Ιδρυματικό Αποθετήριο ΤΕΙ ΗΠΕΙΡΟΥ wertyuiopasdfghjklzxcvbnmqwertyui

Διαβάστε περισσότερα

<HTML> <HEAD> <TITLE> <BODY>

<HTML> <HEAD> <TITLE> <BODY> ΑΣΚΗΣΗ 1 1. Ανοίξτε τον επεξεργαστή ιστοσελίδων 2. Αποθηκεύστε στο X:/mathimata/html/askiseis/ με όνομα askisi1b.html 3. Θα φτιάξουμε μια νέα ιστοσελίδα, χρησιμοποιώντας τις βασικές ετικέτες

Διαβάστε περισσότερα

Πρόσβαση μέσω webdav. ΚΕ.Δ.Δ. Τ.Ε.Ι. Μεσολογγίου. 3. Στην συνέχεια πληκτρολογούμε το username και το password και πατάμε στο κουμπί Είσοδος.

Πρόσβαση μέσω webdav. ΚΕ.Δ.Δ. Τ.Ε.Ι. Μεσολογγίου. 3. Στην συνέχεια πληκτρολογούμε το username και το password και πατάμε στο κουμπί Είσοδος. Πρόσβαση μέσω webdav Πριν χρησιμοποιήσουμε το webdav θα πρέπει να κάνουμε login στο Pithos ώστε να αντιγράψουμε τα Credentials που απαιτούνται για την συνέχεια. Αυτό γίνεται ακολουθώντας τα παρακάτω βήματα

Διαβάστε περισσότερα

Οδηγίες. Εγκατάσταση Προσωπικού Πιστοποιητικού

Οδηγίες. Εγκατάσταση Προσωπικού Πιστοποιητικού Οδηγίες για Εγκατάσταση Προσωπικού Πιστοποιητικού Περιεχόμενα Έκδοση πιστοποιητικού... σελ. 2 Δημιουργία αντιγράφου ασφαλείας. σελ. 5 Εγκατάσταση στο λογαριασμό αλληλογραφίας..σελ. 10 Έκδοση πιστοποιητικού

Διαβάστε περισσότερα

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

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7 Περιεχόμενα Λίγα λόγια από το συγγραφέα... 7 Μέρος 1 1 Βασικοί όροι... 11 2 Βασική δομή κώδικα HTML... 25 3 Μορφοποίηση κειμένου... 39 4 Μορφοποίηση παραγράφων... 51 5 Εισαγωγή εικόνας... 63 6 Λίστες με

Διαβάστε περισσότερα

Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Open eclass 2.2 - Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Οδηγίες Αναβάθμισης (Upgrade) Ομάδα Εργασίας: Τσιμπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 30 Σεπτεμβρίου 2009 Εισαγωγή Η πλατφόρμα Open eclass

Διαβάστε περισσότερα

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α 1 ΤΕΧΝΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ Α2Α 1.1 ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Το λειτουργικό σύστημα θα πρέπει να είναι Windows XP, 2000 και 2003. Ο λογαριασμός χρήστη του υπολογιστή, θα πρέπει να έχει πλήρη

Διαβάστε περισσότερα

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition Κακαρόντζας Γεώργιος Μεθοδολογία Θα υλοποιήσουμε την λεγόμενη πιστοποίηση μέσω φόρμας στοιχείων εισόδου (form-based authentication)

Διαβάστε περισσότερα

Αναγγελία Εισιτηρίων - εξιτηρίων ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Ηλεκτρονικές Υπηρεσίες. Αναγγελία Εισιτηρίων - Εξιτηρίων. Σελίδα 1

Αναγγελία Εισιτηρίων - εξιτηρίων ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ. Ηλεκτρονικές Υπηρεσίες. Αναγγελία Εισιτηρίων - Εξιτηρίων. Σελίδα 1 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Ηλεκτρονικές Υπηρεσίες Αναγγελία Εισιτηρίων - Εξιτηρίων Σελίδα 1 Πίνακας περιεχομένων 1.Εισαγωγή... 4 1.1 Συμβατότητα Browser... 4 1.2 Διεύθυνση πρόσβασης... 4 2 ΑΝΑΓΓΕΛΙΑ ΕΙΣΙΤΗΡΙΩΝ

Διαβάστε περισσότερα

Υπουργείο Υποδομών και Μεταφορών Γενική Γραμματεία Υποδομών

Υπουργείο Υποδομών και Μεταφορών Γενική Γραμματεία Υποδομών Υπουργείο Υποδομών και Μεταφορών Γενική Γραμματεία Υποδομών ΜΗΤΡΩΟ ΜΕΛΩΝ ΕΠΙΤΡΟΠΩΝ ΔΙΑΔΙΚΑΣΙΩΝ ΣΥΝΑΨΗΣ ΔΗΜΟΣΙΩΝ ΣΥΜΒΑΣΕΩΝ ΕΡΓΩΝ, ΜΕΛΕΤΩΝ, ΤΕΧΝΙΚΩΝ ΚΑΙ ΛΟΙΠΩΝ ΣΥΝΑΦΩΝ ΕΠΙΣΤΗΜΟΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ (Μη.Μ.Ε.Δ.)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης Ψηφιακής Υπηρεσίας

Εγχειρίδιο Χρήσης Ψηφιακής Υπηρεσίας Εγχειρίδιο Χρήσης Ψηφιακής Υπηρεσίας "Αιτήσεις Εισαγωγής Ενδοκοινοτικής Απόκτησης και Εγχώριας Παραγωγής Λιπασμάτων και Πρώτων Υλών" ΥΠΟΥΡΓΕΙΟ ΑΓΡΟΤΙΚΗΣ ΑΝΑΠΤΥΞΗΣ & ΤΡΟΦΙΜΩΝ ΓΕΝΙΚΗ ΔΙΕΥΘΥΝΣΗ ΔΙΟΙΚΗΤΙΚΩΝ

Διαβάστε περισσότερα

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

ΥΠΗΡΕΣΙΑ ΣΠΟΥΔΩΝ ΚΑΙ ΦΟΙΤΗΤΙΚΗΣ ΜΕΡΙΜΝΑΣ. Οδηγός για Συμπλήρωση Αίτησης Εγγραφής. Φοιτητών MBA στο Πανεπιστήμιο Κύπρου ΥΠΗΡΕΣΙΑ ΣΠΟΥΔΩΝ ΚΑΙ ΦΟΙΤΗΤΙΚΗΣ ΜΕΡΙΜΝΑΣ Οδηγός για Συμπλήρωση Αίτησης Εγγραφής Φοιτητών MBA στο Πανεπιστήμιο Κύπρου 17 Ιουλίου 2015 Οδηγός για Συμπλήρωση Αίτησης Εγγραφής Φοιτητών ΜΒΑ στο ΠΚ 1 Περιεχόμενα

Διαβάστε περισσότερα

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP Τεχνολογίες Διαδικτύου Server Side Scripting I PHP Εισαγωγή PHP PHP:Hypertext Preprocessor Mηχανή που συνοδεύει web servers όπως ο IIS και ο Apache Η PHP είναι γλώσσα προγραμματισμού για web εφαρμογές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΟΥ ΥΠΟΤΡΟΦΟΥ ΓΙΑ ΤΟ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ ΤΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ ( )

ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΟΥ ΥΠΟΤΡΟΦΟΥ ΓΙΑ ΤΟ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ ΤΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ ( ) Βόλος, 04/04/2017 Αρ. Πρωτ.: 6499 ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΟΥ ΥΠΟΤΡΟΦΟΥ ΓΙΑ ΤΟ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ ΤΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ (2016-2017) Το Πανεπιστήμιο Θεσσαλίας προκηρύσσει

Διαβάστε περισσότερα

ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΟΥ ΥΠΟΤΡΟΦΟΥ ΓΙΑ ΤΟ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΤΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ ( )

ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΟΥ ΥΠΟΤΡΟΦΟΥ ΓΙΑ ΤΟ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΤΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ ( ) Βόλος, 30/09/2019 Αρ. Πρωτ.: 29 ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΠΡΟΣΛΗΨΗ ΠΑΝΕΠΙΣΤΗΜΙΑΚΟΥ ΥΠΟΤΡΟΦΟΥ ΓΙΑ ΤΟ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΤΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ (2019-2020) Το Πανεπιστήμιο Θεσσαλίας προκηρύσσει

Διαβάστε περισσότερα

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

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

Διαβάστε περισσότερα

Εγχειρίδιο Χρήσης: Εφαρμογή Αιτήσεων για τα Εκπαιδευτικά Προγράμματα του Ε.Φ.Ε.Τ.

Εγχειρίδιο Χρήσης: Εφαρμογή Αιτήσεων για τα Εκπαιδευτικά Προγράμματα του Ε.Φ.Ε.Τ. Εγχειρίδιο Χρήσης: Εφαρμογή Αιτήσεων για τα Εκπαιδευτικά Προγράμματα του Ε.Φ.Ε.Τ. ΕΚΔΟΣΗ 1.0.6 Σελίδα 2 από 10 Περιεχόμενα Εφαρμογή Αιτήσεων για τα Εκπαιδευτικά Προγράμματα του Ε.Φ.Ε.Τ.... 4 1.1 Εισαγωγή

Διαβάστε περισσότερα

1. Αίτηση Εισαγωγής Μεταπτυχιακού / Διδακτορικού Φοιτητή

1. Αίτηση Εισαγωγής Μεταπτυχιακού / Διδακτορικού Φοιτητή 1. Αίτηση Εισαγωγής Μεταπτυχιακού / Διδακτορικού Φοιτητή 1.1 Συμπλήρωση Αίτησης Εισαγωγής Φοιτητή από την Δικτυακή Πύλη 1.1.1. Σκοπός Οι υποψήφιοι μεταπτυχιακοί / διδακτορικοί φοιτητές του Πανεπιστημίου

Διαβάστε περισσότερα

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

Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού Πανεπιστήμιο Αιγαίου Εγχειρίδιο Χρήσης Εφαρμογής Συστήματος Διαχείρισης Λογισμικού Έκδοση 1.2 Περιεχόμενα 1. Είσοδος και Έξοδος από το Σύστημα... 3 2. Βοήθεια... 3 3. Αλλαγή Συνθηματικού... 3 4. Διαχείριση

Διαβάστε περισσότερα

ΑΙΤΗΣΗ ΑΝΑΘΕΣΗΣ ΔΙΔΑΚΤΙΚΟΥ ΕΡΓΟΥ Να ληφθούν υπόψη οι οδηγίες υποβολής της αίτησης πριν την συμπλήρωση της

ΑΙΤΗΣΗ ΑΝΑΘΕΣΗΣ ΔΙΔΑΚΤΙΚΟΥ ΕΡΓΟΥ Να ληφθούν υπόψη οι οδηγίες υποβολής της αίτησης πριν την συμπλήρωση της ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΤΕΙ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΤΕΧΝΟΛΟΓΙΑΣ ΑΕΡΟΣΚΑΦΩΝ Τ.Ε. ΑΙΤΗΣΗ ΑΝΑΘΕΣΗΣ ΔΙΔΑΚΤΙΚΟΥ ΕΡΓΟΥ Να ληφθούν υπόψη οι οδηγίες υποβολής της αίτησης

Διαβάστε περισσότερα

Κλιμάκιο Πληροφορικής Σεμινάρια για τα λογισμικά κλειστού τύπου Κύκλος Α

Κλιμάκιο Πληροφορικής Σεμινάρια για τα λογισμικά κλειστού τύπου Κύκλος Α η- Τάξη Οδηγός χρήσης του προγράμματος αξιολόγησης για τα προγράμματα «Ο Ξεφτέρης και η γραμματική και «Ο Καπετάν Μπουμπουλήθρας» Ο οδηγός αυτός στοχεύει στην χρήση του βοηθητικού προγράμματος η-τάξη.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα