• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2023

Share "Ανάπτυξη βάσης δεδομένων και διαδικτυακής εφαρμογής με στοιχεία εργασιών Τεχνολογίας Συστημάτων"

Copied!
114
0
0

Texto

(1)

Ο σπουδαστής Ο επιβλέπων καθηγητής

Λαμπρόπουλος Αθανάσιος Νικολαρόπουλος Ευάγγελος

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

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

Θέμα: Ανάπτυξη βάσης δεδομένων και διαδικτυακής εφαρμογής με στοιχεία

εργασιών Τεχνολογίας Συστημάτων

(2)

Σελίδα 2 από 114

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

(3)

Σελίδα 3 από 114

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ... 3

ΚΕΦΑΛΑΙΟ 1Ο ... 6

ΕΙΣΑΓΩΓΗ ... 6

ΣΚΟΠΟΣ ... 7

ΚΕΦΑΛΑΙΟ 2Ο ... 8

ΑΠΑΙΤΗΣΕΙΣ ... 8

ΣΥΝΟΨΗ ΠΡΟΔΙΑΓΡΑΦΩΝ ΒΑΣΕΩΣ ΔΕΔΟΜΕΝΩΝ ... 9

ΣΥΝΟΨΗ ΠΡΟΔΙΑΓΡΑΦΩΝ ΕΦΑΡΜΟΓΗΣ ... 10

ΚΕΦΑΛΑΙΟ 3Ο ... 11

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΔΙΑΔΙΚΤΥΑΚΕΣ ΕΦΑΡΜΟΓΕΣ (WEB APPLICATIONS) ... 11

Tι είναι διαδικτυακή εφαρμογή(web application) ... 11

Ποια είναι η δομή μιας διαδικτυακής εφαρμογής ... 11

Ποια είναι τα θετικά των διαδικτυακών εφαρμογών ... 12

Ποια είναι τα αρνητικά των διαδικτυακών εφαρμογών ... 12

ΤΡΟΠΟΙ ΚΑΙ ΕΡΓΑΛΕΙΑ ΑΝΑΠΤΥΞΗΣ ΜΙΑΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ (WEB APPLICATION) ... 13

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

Γιατί επιλέχτηκε η συγκεκριμένη τεχνολογία ... 15

ΚΕΦΑΛΑΙΟ 4Ο ... 18

ΣΧΗΜΑ ΚΑΙ ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ ... 18

Σχήμα Βάσης Δεδομένων ... 18

Περιγραφή Βάσης Δεδομένων... 19

Πίνακας status ... 19

Πίνακας role ... 19

Πίνακας users ... 20

Πίνακας student ... 20

Πίνακας project ... 21

Πίνακας phase ... 21

Πίνακας mimetype ... 22

Πίνακας attachment ... 23

Πίνακας activity_log ... 24

Πίνακας admin_activity_log ... 24

Πίνακας homeimages ... 25

Πίνακας announcements... 25

Όψη (view) map_stud_proj ... 26

Όψη (view) map_us_st ... 27

ΚΕΦΑΛΑΙΟ 5Ο ... 28

USE CASES ... 28

Πίνακας ιχνηλασιμότητας Use Cases – Διαγράμματων ... 28 UC – No. 1-Είσοδος Χρήστη ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 2-Προσθήκη Χρήστη ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 3-Επεξεργασία Χρήστη ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 4-Αναζήτηση Χρήστη ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 5-Προσθήκη Εργασίας ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 6-Επεξεργασία Εργασίας ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

(4)

Σελίδα 4 από 114

UC – No. 7-Αναζήτηση Εργασίας ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 8-Προσθήκη Αρχείου (Σπουδαστής) ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 9-Επεξεργασίας Αρχείου (Σπουδαστής) ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 10-Λήψη Αρχείου (Σπουδαστής)... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 11-Διαγραφή Αρχείου (Σπουδαστής)... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 12-Προσθήκη Αρχείου (Διαχειριστής) ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 13-Επεξεργασία Αρχείου (Διαχειριστής) ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 14-Λήψη Αρχείου (Διαχειριστής) ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 15-Διαγραφή Αρχείου (Διαχειριστής) ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 16-Προσθήκη Ανακοίνωσης ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 17-Επεξεργασία Ανακοίνωσης ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 18-Λήψη Ανακοίνωσης ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 19-Διαγραφή Ανακοίνωσης ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 20-Προσθήκη Εικόνας Αρχικής Σελίδας ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 21-Επεξεργασία Εικόνας Αρχικής Σελίδας ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 22-Λήψη Εικόνας Αρχικής Σελίδας ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 23-Διαγραφή Εικόνας Αρχικής Σελίδας ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 24- Προβολή Δημοσιοποιημένων Εικόνων Στο Κοινο ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 25-Εγγραφή στο log Εισόδου/Εξόδου ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

UC – No. 26-Εγγραφή στο log Ενεργειών ... Σφάλμα! Δεν έχει οριστεί σελιδοδείκτης.

ΚΕΦΑΛΑΙΟ 6Ο ... 79

ΠΡΟΔΙΑΓΡΑΦΕΣ ΕΦΑΡΜΟΓΗΣ ... 79

Γενικές Σελίδες ... 79

Αρχική Σελίδα Εφαρμογής ... 79

Σελίδα Κοινόχρηστου Αρχείου Εργασιών - Αρχείων ... 80

Σελίδα Εισόδου Χρήστη ... 81

Σελίδες Σπουδαστή ... 82

Σελίδα Σπουδαστή ... 82

Σελίδα Σπουδαστή – Προσθήκη νέου Αρχείου ... 83

Σελίδα Σπουδαστή – Επεξεργασία Υπάρχοντος Αρχείου ... 84

Σελίδα Σπουδαστή – Διαγραφή Υπάρχοντος Αρχείου ... 85

Διαχειριστικές Σελίδες ... 86

Σελίδα Διαχείρισης Χρηστών ... 86

Σελίδα Διαχείρισης Χρηστών – Αναζήτηση Χρήστη ... 87

Σελίδα Διαχείρισης Χρηστών – Προσθήκη νέου Χρήστη... 88

Σελίδα Διαχείρισης Χρηστών – Επεξεργασία Υπάρχοντος Χρήστη ... 89

Σελίδα Διαχείρισης Εργασιών ... 90

Σελίδα Διαχείρισης Εργασιών – Αναζήτηση Εργασίας ... 91

Σελίδα Διαχείρισης Εργασιών – Προσθήκη νέας Εργασίας... 92

Σελίδα Διαχείρισης Εργασιών – Επεξεργασία Υπάρχουσας Εργασίας ... 93

Σελίδα Διαχείρισης Αρχείων ... 94

Σελίδα Διαχείρισης Αρχείων – Προσθήκη νέου Αρχείου ... 95

Σελίδα Διαχείρισης Αρχείων – Επεξεργασία Υπάρχοντος Αρχείου ... 96

Σελίδα Διαχείρισης Αρχείων – Διαγραφή Υπάρχοντος Αρχείου... 97

Σελίδα Διαχείρισης Αρχικής Σελίδας ... 98

Σελίδα Διαχείρισης Αρχικής Σελίδας - Διαχείριση Ανακοινώσεων ... 99

Σελίδα Διαχείρισης Αρχικής Σελίδας - Διαχείριση Ανακοινώσεων – Προσθήκη Νέας ... 100

Σελίδα Διαχείρισης Αρχικής Σελίδας - Διαχείριση Ανακοινώσεων – Επεξεργασία Υπάρχουσας ... 101

(5)

Σελίδα 5 από 114

Σελίδα Διαχείρισης Αρχικής Σελίδας - Διαχείριση Εικόνων ... 103

Σελίδα Διαχείρισης Αρχικής Σελίδας - Διαχείριση Εικόνων – Προσθήκη Νέας ... 104

Σελίδα Διαχείρισης Αρχικής Σελίδας - Διαχείριση Εικόνων – Επεξεργασία Υπάρχουσας ... 105

Σελίδα Διαχείρισης Αρχικής Σελίδας - Διαχείριση Εικόνων – Διαγραφή Υπάρχουσας ... 106

ΚΕΦΑΛΑΙΟ 7Ο ... 107

ΈΛΕΓΧΟΙ ΠΟΥ ΠΡΑΓΜΑΤΟΠΟΙΗΘΗΚΑΝ ΓΙΑ ΤΗ ΣΩΣΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ... 107

1.Τεστ λειτουργικότητας (functionality test) ... 107

2.Τεστ χρηστικότητας (usability test) ... 107

3.Τεστ διεπαφών (interface test) ... 108

4.Τεστ συμβατότητας (compability test) ... 108

5.Τεστ Αποδόσεων (performance test) ... 109

6.Τεστ Ασφάλειας (security test) ... 109

ΚΕΦΑΛΑΙΟ 8Ο ... 110

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

ΚΕΦΑΛΑΙΟ 9Ο ... 111

ΕΠΙΛΟΓΟΣ ... 111

ΠΑΡΑΡΤΗΜΑ Ι ... 112

ΠΙΝΑΚΑΣ ΚΩΔΙΚΩΝ ΜΗΝΥΜΑΤΩΝ ΛΑΘΟΥΣ ΚΑΙ ΚΕΙΜΕΝΟΥ ΤΟΥΣ ... 112

ΒΙΒΛΙΟΓΡΑΦΙΑ ... 113

ΣΥΜΠΛΗΡΩΜΑΤΙΚΟ ΑΡΧΕΙΟ ΤΗΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ ... 114

ΚΩΔΙΚΑΣ ΑΝΑΠΤΥΞΗΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ... 114

(6)

Σελίδα 6 από 114 ΚΕΦΑΛΑΙΟ 1

ο

Εισαγωγή

Στα πλαίσια του μαθήματος «Τεχνολογία Συστημάτων βασισμένων σε Υπολογιστές» του τμήματος Βιομηχανικής Πληροφορικής του Τ.Ε.Ι. Καβάλας, εκτελούνται από τους σπουδαστές ομαδικές εργασίες με αντικείμενο διάφορα είδη ενσωματωμένων συστημάτων.

Οι εργασίες αυτές εκτός από το ενσωματωμένο σύστημα που δημιουργείται, συνοδεύονται από πλήρη τεκμηρίωση τόσο του Διαχειριστικού μέρους (Διαχείριση Έργου) όσο και του Τεχνικού μέρους (Απαιτήσεις, Προδιαγραφές, Σχεδιασμός υλικού και λογισμικού, εγχειρίδια κτλ).

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

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

(7)

Σελίδα 7 από 114 Σκοπός

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

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

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

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

(8)

Σελίδα 8 από 114 ΚΕΦΑΛΑΙΟ 2

ο

Απαιτήσεις

1. Δημιουργία σύνθετης βάσης δεδομένων που θα επιτρέπει την

εισαγωγή/ανάκτηση/διόρθωση και διαγραφή δεδομένων ανάλογα το ρόλο του χρήστη.

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

3. Ύπαρξη 4 κατηγοριών χρηστών με διαφορετικά δικαιώματα :

 Κοινό

 Σπουδαστής

 Καθηγητής

 Υπερχρήστης

4. Πρόσβαση κοινού σε επιλεγμένα αρχεία εργασιών

5. Πρόσβαση σπουδαστή στα αρχεία μόνο της δικής του εργασίας και

καταχώρηση/επεξεργασία/διαγραφή αυτών εφόσον δεν έχουν εκδοθεί από τον καθηγητή.

6. Πρόσβαση καθηγητή σε όλα τα αρχεία όλων των εργασιών καθώς και καταχώρηση/επεξεργασία/διαγραφή/έκδοση αυτών

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

δημοσιοποιούνται και δεν επιτρέπεται περαιτέρω επεξεργασία από τους σπουδαστές.

9. Τα κεφάλαια των τεκμηριώσεων μιας εργασίας θα πρέπει να καταχωρούνται ξεχωριστά.

10. Ο υπερχρήστης δημιουργεί λογαριασμούς χρηστών και εργασιών και μοιράζει στοιχεία εισαγωγής στην εφαρμογή στους χρήστες.

(9)

Σελίδα 9 από 114 Σύνοψη Προδιαγραφών Βάσεως Δεδομένων

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

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

δεδομένων.

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

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

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

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

(10)

Σελίδα 10 από 114 Σύνοψη Προδιαγραφών Εφαρμογής

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

Ύπαρξη τεσσάρων κατηγοριών χρηστών:

 Κοινό

 Σπουδαστής

 Καθηγητής

 Υπερχρήστης

Η κατηγορία του «κοινού» θα έχει πρόσβαση μόνο σε επιλεγμένα από τον καθηγητή αρχεία και το μόνο δικαίωμα που θα έχει θα είναι η λήψη τους. Άρα, πρέπει να δημιουργηθεί μία ανοιχτή σελίδα για προβολή των αρχείων αυτών χωρίς να απαιτείται η εισαγωγή στο σύστημα.

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

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

αρχειοθέτηση.

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

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

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

(11)

Σελίδα 11 από 114 ΚΕΦΑΛΑΙΟ 3

ο

Εισαγωγή στις διαδικτυακές εφαρμογές (web applications)

Tι είναι διαδικτυακή εφαρμογή(web application)

Η διαδικτυακή εφαρμογή είναι μία εφαρμογή αποθηκευμένη σε ένα δικτυακό server. Είναι προσβάσιμη και εκτελείται από εγκεκριμένους χρήστες ενός δικτύου είτε εσωτερικού (intranet) είτε διαδικτύου(internet).

Οι διαδικτυακές εφαρμογές εκτελούνται μέσω ενός διαδικτυακού φυλλομετρητή (web browser), πράγμα στο οποίο οφείλουν και τη δημοτικότητα τους.

Ποια είναι η δομή μιας διαδικτυακής εφαρμογής

Οι διαδικτυακές εφαρμογές χωρίζονται σε επίπεδα (tiers). Οι «παραδοσιακές» εφαρμογές αποτελούταν από μόνο ένα επίπεδο (tier), το οποίο ήταν εγκατεστημένο στον υπολογιστή του χρήστη αλλά οι διαδικτυακές εφαρμογές οδηγούνται εκ φύσεως σε μία πολυεπίπεδη

προσέγγιση.

Η πιο κοινή δομή μίας διαδικτυακής εφαρμογής είναι αυτή των 3 επιπέδων (3-tiered application). Στη πιο απλή μορφή τους, τα 3 επίπεδα είναι τα εξής:

 1ο επίπεδο : Παρουσίαση, το οποίο είναι ο φυλλομετρητής (web browser)

 2 ο επίπεδο : Λογική Εφαρμογής (Application Logic), μια μηχανή (engine) η οποία χρησιμοποιεί κάποια τεχνολογία δυναμικού διαδικτυακού περιεχομένου (dynamic Web content) όπως είναι τα ASP.NET,PHP,JAVA,CGI,COLDFUSION κ.α.

 3 ο επίπεδο : Αποθήκευση, η βάση δεδομένων.

Συνοπτικά, ο φυλλομετρητής(1ο επίπεδο) στέλνει τα αιτήματα στο 2ο επίπεδο όπου τα

εξυπηρετεί κάνοντας ερωτήματα στη βάση δεδομένων(3ο επίπεδο) και δημιουργεί τη διεπαφή χρήστη(user interface).

Σε κάποιες περιπτώσεις, όπου η εφαρμογή είναι πιο πολύπλοκη η λογική των 3 επιπέδων μπορεί να μην επαρκεί. Τότε, οδηγούμαστε σε μία πολυεπίπεδη προσέγγιση (n-tiered approach). Αυτό μπορεί να γίνει, προσθέτοντας ακόμη ένα επίπεδο (integration tier) το οποίο διαχωρίζει το επίπεδο των δεδομένων από τα υπόλοιπα παρέχοντας μία πιο εύχρηστη διεπαφή για την πρόσβαση στα δεδομένα.

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

(12)

Σελίδα 12 από 114

Ποια είναι τα θετικά των διαδικτυακών εφαρμογών

 Εύκολη πρόσβαση. Ο χρήστης μπορεί να έχει πρόσβαση στην εφαρμογή από οποιοδήποτε σημείο έχει Internet ή πρόσβαση στο δίκτυο και όχι από συγκεκριμένο τερματικό.

 Δε χρειάζονται περίπλοκα πακέτα εγκατάστασης της εφαρμογής σε κάθε υπολογιστή που θα τη χρησιμοποιεί. Αρκεί ένας συμβατός φυλλ

 ομετρητής (web browser).

 Χρειάζονται ελάχιστο ή και καθόλου χώρο στο σκληρό δίσκο του client.

 Δε χρειάζονται καμία διαδικασία αναβάθμισης αφού όλα τα νέα στοιχεία ή αναβαθμίσεις γίνονται στον server.

 Ενσωματώνουν εύκολα διαδικτυακές λειτουργίες όπως e-mail και αναζητήσεις.

 Στις περισσότερες περιπτώσεις παρέχουν συμβατότητα μεταξύ λειτουργικών συστημάτων (π.χ. Windows, Linux, Mac κτλ.) καθώς λειτουργούν μέσα σε ένα παράθυρο του φυλλομετρητή.

Ποια είναι τα αρνητικά των διαδικτυακών εφαρμογών

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

 Οι εφαρμογές βασίζονται σε αρχεία τα οποία γίνονται προσβάσιμα μέσω δικτύου.

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

 Εξαρτώνται αποκλειστικά από τη διαθεσιμότητα του server που «διανέμει» την εφαρμογή.

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

(13)

Σελίδα 13 από 114 application)

Για την ανάπτυξη διαδικτυακών εφαρμογών και ιστοσελίδων χρησιμοποιείται ο όρος web development. To web development εκτείνεται από τη κατασκευή μιας απλής στατικής ιστοσελίδας μέχρι τη πιο περίπλοκη δικτυακή εφαρμογή.

Το web development μπορεί να χωριστεί σε πολλούς τομείς. Ένας βασικός διαχωρισμός τον τομέων που το αποτελούν μπορεί να είναι ο παρακάτω :

1.Client Side Coding

Αναφέρεται στα μέρη της εφαρμογής που εκτελούνται από τη μεριά του χρήστη (client side) στο φυλλομετρητή του και όχι στη μεριά του server (server side). Client-side κομμάτια κώδικα γράφονται σε γλώσσες όπως:

 Javascript

 HTML5 και CSS3

 Microsoft Silverlight

 VBScript 2.Server Side Coding

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

Χρησιμοποιείται για την ανάπτυξη δυναμικών ιστοσελίδων οι οποίες έχουν πρόσβαση σε βάσεις δεδομένων. Το βασικό πλεονέκτημα του server side coding είναι η υψηλή ικανότητα παραμετροποίησης της απόκρισης βάσει των απαιτήσεων του χρήστη καθώς και τα δικαιώματά του ή των ερωτημάτων στις βάσεις δεδομένων. Server Side κομμάτια κώδικα γράφονται σε γλώσσες όπως:

 ASP

 .NET

 Java

 PHP

 SMX

 Python

 Ruby

 SSJS (Server-Side JavaScript)

(14)

Σελίδα 14 από 114

3.Databases

Μία βάση δεδομένων(database) αποτελείται από μία οργανωμένη συλλογή δεδομένων σε ψηφιακή μορφή. Οι βάσεις δεδομένων διαχειρίζονται χρησιμοποιώντας συστήματα διαχείρισης βάσεων, τα DBMS (DataBase Management Systems). Κάποια από τα DBMS είναι :

 MySQL

 SQL Server

 Oracle

 Microsoft Access

 PostgreSQL

(15)

Σελίδα 15 από 114 εφαρμογής

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

Συνεχίζοντας με το κομμάτι της ανάπτυξης, χρησιμοποιήθηκε η HTML5 και η CSS3 για τη δημιουργία του layout της εφαρμογής.

Για την ανάπτυξη του server-side κώδικα, χρησιμοποιήθηκε το ASP.NET Framework V3.5 το οποίο αναπτύχθηκε από τη Microsoft. Το framework αυτό δίνει τη δυνατότητα στους

προγραμματιστές να αναπτύσσουν δυναμικές ιστοσελίδες, δικτυακές εφαρμογές και υπηρεσίες. Καθώς έχει αναπτυχθεί πάνω στο CLR (Common Language Runtime), ο προγραμματιστής μπορεί να χρησιμοποιήσει οποιαδήποτε γλώσσα προγραμματισμού επιθυμεί αρκεί να υποστηρίζεται από το .NET Framework όπως η C# και η VB.Net.

Η ανάπτυξη γίνεται μέσα από τη πλατφόρμα που έχει αναπτύξει η Microsoft, το Microsoft Visual Studio (στην ανάπτυξη της συγκεκριμένης εφαρμογής χρησιμοποιήθηκε το Visual Studio 2008) καθώς και του open-source Mono.

Οι ASP.NET σελίδες, γνωστές και ως “web forms” είναι το βασικό κομμάτι για την ανάπτυξη λογισμικού. Οι web forms περιέχονται σε αρχεία με τη κατάληξη “.aspx”, τα οποία ουσιαστικά περιέχουν στατικό περιεχόμενο ((X)HTML) όπως και περιεχόμενο που προσδιορίζει τα server-side Web και User Controls. Επιπλέον, το δυναμικό τμήμα του κώδικα που εκτελείται στη πλευρά του server, περιέχεται στη σελίδα μέσα σε ένα τμήμα “<% ----Δυναμικός Κώδικας- ---%>”. Στη συνέχεια, από την έκδοση 2.0 του framework και μετά, η Microsoft εισήγαγε ένα νέο μοντέλο όπου επιτρέπει το στατικό περιεχόμενο να παραμένει στην .aspx σελίδα ενώ το δυναμικό να περιέχεται σε μία .aspx.cs σελίδα.

Γιατί επιλέχτηκε η συγκεκριμένη τεχνολογία

Για την ανάπτυξη τη εφαρμογής επιλέχτηκε η ASP.NET για τους παρακάτω λόγους:

 Μειώνει δραστικά το μέγεθος του κώδικα που χρειάζεται να αναπτυχθεί.

 Το συγκεκριμένο framework συνοδεύεται από μία πλούσια συλλογή εργαλείων καθώς και από ένα πολύ αξιόλογο σχεδιαστή στο περιβάλλον του Visual Studio. Κάποια από τα εργαλεία αυτά είναι το drag-and-drop των server controls και “WYSIWYG” (What You See Is What You Get : Παίρνεις αυτό που γράφεις) γράψιμο και επεξεργασία κώδικα.

 Προσφέρει πολύ καλή απόδοση και είναι γρήγορη.

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

(16)

Σελίδα 16 από 114

 Ο πηγαίος κώδικας και το HTML κομμάτι κρατούνται στο ίδιο μέρος και έτσι είναι πιο εύκολη η ανάπτυξη και η επεξεργασία του κώδικα. Καθότι είναι μία καθαρά server- side τεχνολογία, όλος ο πηγαίος κώδικας εκτελείται στο server προτού σταλεί στο φυλλομετρητή πράγμα που παρέχει ταχύτητα και ευελιξία στις σελίδες.

 Είναι ανεξάρτητη τεχνολογία από πλευρά γλώσσας προγραμματισμού για την ανάπτυξη του πηγαίου κώδικα.

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

Παράλληλα, χρησιμοποιήθηκε μια βιβλιοθήκη εργαλείων το “ASP.NET AJAX Control Toolkit”

το οποίο είναι ένα open-source έργο βασισμένο στο Microsoft ASP.NET AJAX Framework το οποίο παρέχει μια άριστη υποδομή για χρήση πλήρως προσαρμόσιμων,

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

Επιπλέον, όσον αφορά την client-side ανάπτυξη κώδικα χρησιμοποιήθηκε η Javascript, της οποίας τα κομμάτια κώδικα δεν εκτελούνται στον server αλλά στη πλευρά του χρήστη.

Τέλος, για την επικοινωνία της εφαρμογής με τη βάση δεδομένων χρησιμοποιήθηκε το EntitySpaces. To EntitySpaces είναι μία αρχιτεκτονική δημιουργίας των Business Objects που θα χρησιμοποιούνται στην εφαρμογή η οποία απλοποιεί τη διαχείριση των δεδομένων και εξοικονομεί χρόνο από τη πλευρά του developer, καθώς βασισμένη σε κάποια πρότυπα δημιουργεί αυτόματα από τη βάση τα business objects και τον απαραίτητο κώδικα πρόσβασης στη βάση.

Αναλυτικότερα, παίρνοντας το σχήμα της βάσης δεδομένων και βασισμένη στα δικά της πρότυπα δημιουργεί τη λογική για τη πλήρη διαχείριση της βάσης. Στο πρώτο κομμάτι δημιουργούνται οι κλάσεις για τη διαχείριση αυτοματικοποιημένα. Αυτές μας δίνουν τη δυνατότητα να εκτελέσουμε έμμεσα ερωτήματα στη βάση(Select,Add,Update,Delete,Sort) με ελάχιστες γραμμές κώδικα και χωρίς να απευθυνόμαστε απευθείας στη βάση γράφοντας SQL αλλά χρησιμοποιώντας τη γλώσσα που αναπτύσσουμε την εφαρμογή μας(στη συγκεκριμένη περίπτωση C#). Παράλληλα όμως, το EntitySpaces δημιουργεί και κάποιες κλάσεις, στις οποίες μπορούν να γραφούν χειροκίνητα κομμάτια της λογικής για επιπλέον λειτουργίες οι οποίες δεν εξυπηρετούνται από τις παραπάνω κλάσεις.

Η συγκεκριμένη τεχνολογία χρησιμοποιήθηκε για τους εξής λόγους:

 Μπορεί να χρησιμοποιηθεί με πολλά συστήματα βάσεων δεδομένων όπως Microsoft SQLServer, Microsoft Access, Oracle, MySSQL, SQLite κ.α.

 Παρόλο που παράγει δυναμικά τις κλάσεις για τα Business Objects, μπορούν να γραφούν custom κλάσεις για κάποιες λειτουργίες και να χρησιμοποιηθούν αυτές.

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

 Η ευχρηστία του είναι τεράστια και στο τρόπο δημιουργίας των Business Objects αλλά και στη διαχείριση της βάσης. Μειώνει το χρόνο αλλά και το μέγεθος του κώδικα που θα χρειαζόταν για να δημιουργηθεί ένα Business Layer.

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

(17)

Σελίδα 17 από 114

αρχιτεκτονικές δημιουργίας business layer όπως τα: NHibernate, Subsonic και ActiveRecord.

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

(18)

Σελίδα 18 από 114 ΚΕΦΑΛΑΙΟ 4

ο

Σχήμα και Περιγραφή της Βάσης Δεδομένων

Σχήμα Βάσης Δεδομένων

Παρακάτω βρίσκεται το σχήμα της βάσης δεδομένων της εφαρμογής (Σχήμα -1-) :

Σχήμα -1-

(19)

Σελίδα 19 από 114

Ακολουθεί η περιγραφή του κάθε πίνακα της βάσης:

Πίνακας status B_0_1.status

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

name VARCHAR(45) NOT NULL

PRIMARY KEY (id)

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

Πεδία:

Id : Το πρωτεύον κλειδί του πίνακα.

name : Το όνομα που δίνεται στη κατάσταση

Πίνακας role B_0_1.role

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

name VARCHAR(45) NOT NULL

PRIMARY KEY (id)

Ο πίνακας role χρησιμοποιείται για να αποθηκεύσουμε τo ρόλο που δίνεται στο κάθε χρήστη που εγγράφεται στο σύστημα.

Πεδία:

Id : Το πρωτεύον κλειδί του πίνακα.

name : Ο τίτλος του ρόλου

(20)

Σελίδα 20 από 114

Πίνακας users

B_0_1.users

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

fk_status INTEGER UNSIGNED NOT NULL

fk_role INTEGER UNSIGNED NOT NULL

login_name VARCHAR(30) NOT NULL

psw VARCHAR(120) NOT NULL

first_name VARCHAR(30) NOT NULL

last_name VARCHAR(30) NOT NULL

e_mail VARCHAR(80) NOT NULL

date_created DATE NOT NUL

date_psw_expires DATE NOT NUL PRIMARY KEY (id)

FOREIGN KEY (fk_status) REFERENCES status(id) FOREIGN KEY (fk_role) REFERENCES role(id)

Ο πίνακας users χρησιμοποιείται για να αποθηκεύονται τα στοιχεία του κάθε χρήστη που εγγράφεται στο σύστημα.

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

fk_status : Ξένο κλειδί με αναφορά στο πίνακα status. Δηλώνει τη κατάσταση του χρήστη.

fk_role : Ξένο κλειδί με αναφορά στο πίνακα role. Δηλώνει το ρόλο του χρήστη.

login_name : To όνομα που θα χρησιμοποιεί ο χρήστης για να εισέλθει στο σύστημα.

psw : O κωδικός που θα χρησιμοποιεί ο χρήστης για να εισέλθει στο σύστημα.

first_name : To όνομα του χρήστη.

last_name : Το επώνυμο του χρήστη.

e_mail : Το e-mail του χρήστη.

date_created : Η ημερομηνία που δημιουργήθηκε ο χρήστης.

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

Πίνακας student B_0_1.student

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

fk_user INTEGER UNSIGNED NOT NULL

AEM INTEGER UNSIGNED NOT NULL

PRIMARY KEY (id)

FOREIGN KEY (fk_user) REFERENCES users(id)

Ο πίνακας student χρησιμοποιείται για να αποθηκεύονται τα στοιχεία του κάθε χρήστη που εγγράφεται στο σύστημα και είναι σπουδαστής.

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

fk_user : Ξένο κλειδί με αναφορά στο πίνακα users.

AEM : Ο αριθμός μητρώου του σπουδαστή.

(21)

Σελίδα 21 από 114

B_0_1.project

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

fk_status INTEGER UNSIGNED NOT NULL

fk_student INTEGER UNSIGNED NOT NULL

name VARCHAR(80) NOT NULL

semester VARCHAR(10) NOT NULL

year VARCHAR(4) NOT NULL

date_start DATE NOT NULL

date_end DATE NOT NULL

PRIMARY KEY (id)

FOREIGN KEY (fk_status) REFERENCES status(id) FOREIGN KEY(fk_student) REFERENCES student(id)

Ο πίνακας project χρησιμοποιείται για να αποθηκεύονται τα στοιχεία της εργασίας που δηλώνεται στο σύστημα.

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

fk_status : Ξένο κλειδί με αναφορά στο πίνακα status. Δηλώνει τη κατάσταση της εργασίας.

fk_student : Ξένο κλειδί με αναφορά στο πίνακα student. Δηλώνει τον σπουδαστή που είναι υπεύθυνος για την εργασία(project manager).

name : Ο τίτλος της εργασίας.

semester : To εξάμηνο της εργασίας.

year : To έτος της εργασίας.

date_start : H ημερομηνία ανάθεσης της εργασίας.

date_end : Η ημερομηνία παράδοσης της εργασίας.

Πίνακας phase B_0_1.phase

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

name VARCHAR(45) NOT NULL

PRIMARY KEY (id)

Ο πίνακας phase χρησιμοποιείται για την καταχώρηση των τίτλων των φάσεων μιας εργασίας.

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

name : Ο τίτλος της φάσης.

(22)

Σελίδα 22 από 114

Πίνακας mimetype

B_0_1.mimetype

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

name VARCHAR(45) NOT NULL

description VARCHAR(80) NOT NULL

PRIMARY KEY (id)

Ο πίνακας mimetype χρησιμοποιείται για την καταχώρηση των τύπων αρχείου που θέλουμε να χρησιμοποιούνται στο σύστημα.

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

name : Ο τύπος του αρχείου.

description : H κατηγορία αρχείων που ανήκει ( π.χ. Εικόνα, Βίντεο κτλ.).

(23)

Σελίδα 23 από 114

B_0_1.attachment

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

fk_project INTEGER UNSIGNED NOT NULL

fk_phase INTEGER UNSIGNED NOT NULL

fk_mimetype INTEGER UNSIGNED NOT NULL

filename VARCHAR(45) NOT NULL

path VARCHAR(255) NOT NULL

description VARCHAR(80) NOT NULL

is_posted TINYINT(1) DEFAULT NULL

is_published TINYINT(1) DEFAULT NULL

is_public TINYINT(1) DEFAULT NULL

date_uploaded DATE NOT NULL

timestamp DATE NOT NULL

PRIMARY KEY (id)

FOREIGN KEY (fk_project) REFERENCES project(id) FOREIGN KEY (fk_phase) REFERENCES phase(id) FOREIGN KEY (fk_mimetype) REFERENCES mimetype(id)

Ο πίνακας attachment χρησιμοποιείται για να αποθηκεύονται τα στοιχεία του κάθε αρχείου που καταχωρείται στο σύστημα.

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

fk_project : Ξένο κλειδί με αναφορά στο πίνακα project. Δηλώνει την εργασία που ανήκει το αρχείο.

fk_phase : Ξένο κλειδί με αναφορά στο πίνακα phase. Δηλώνει τη φάση που ανήκει το αρχείο.

fk_mimetype : Ξένο κλειδί με αναφορά στο πίνακα mimetype. Δηλώνει τον τύπο του αρχείου.

filename : Ο τίτλος του αρχείου.

path : Η διαδρομή που αποθηκεύεται το αρχείο.

description : Περιγραφή για το τι περιέχει το αρχείο.

is_posted : Flag για το αν το αρχείο έχει ελεγχθεί από κάποιον διαχειριστή.

is_published : Flag για το αν το αρχείο έχει εκδοθεί.

is_public : Flag για το αν το αρχείο έχει γίνει προσβάσιμο στο ευρύ κοινό.

date_uploaded : Η ημερομηνία που καταχωρήθηκε το αρχείο.

timestamp : Η ημερομηνία που επεξεργάστηκε το αρχείο τελευταία φορά.

(24)

Σελίδα 24 από 114

Πίνακας activity_log

B_0_1.activity_log

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

fk_user INTEGER UNSIGNED NOT NULL

fk_role INTEGER UNSIGNED NOT NULL

ip VARCHAR(30) NOT NULL

date_login DATETIME NOT NULL

date_logout DATETIME

comments VARCHAR(80) NOT NULL

PRIMARY KEY (id)

FOREIGN KEY (fk_user) REFERENCES users(id) FOREIGN KEY (fk_role) REFERENCES role(id)

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

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

fk_user : Ξένο κλειδί με αναφορά στο πίνακα users.

fk_role : Ξένο κλειδί με αναφορά στο πίνακα role.

ip : Η διεύθυνση IP του χρήστη που εισέρχεται στο σύστημα.

date_login : Η ημερομηνία εισόδου.

date_logout : Η ημερομηνία εξόδου.

comments : Μήνυμα συστήματος.

Πίνακας admin_activity_log B_0_1.admin_activity_log

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

fk_user INTEGER UNSIGNED NOT NULL

fk_role INTEGER UNSIGNED NOT NULL

ip VARCHAR(30) NOT NULL

timestamp DATETIME NOT NULL

action VARCHAR(80) NOT NULL

PRIMARY KEY (id)

FOREIGN KEY (fk_user) REFERENCES users(id) FOREIGN KEY (fk_role) REFERENCES role(id)

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

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

fk_user : Ξένο κλειδί με αναφορά στο πίνακα users.

fk_role : Ξένο κλειδί με αναφορά στο πίνακα role.

ip : Η διεύθυνση IP του χρήστη που εισέρχεται στο σύστημα.

timestamp : Η ημερομηνία που σημειώνεται η ενέργεια.

action : H ενέργεια που έχει γίνει.

(25)

Σελίδα 25 από 114

B_0_1.homeimages

id INTEGER UNSIGNED NOT NULL

AUTO_INCREMENT

filename VARCHAR(45) NOT NULL

path VARCHAR(255) NOT NULL

paththumb VARCHAR(255) NOT NULL

description VARCHAR(80) NULL

timestamp DATETIME NOT NULL

PRIMARY KEY (id)

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

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

filename : Ο τίτλος του αρχείου.

path : Η διαδρομή που αποθηκεύεται η εικόνα.

paththumb : Η διαδρομή που αποθηκεύεται το thumbnail της εικόνας.

description : Η περιγραφή της εικόνας.

timestamp : Η ημερομηνία αποθήκευσης.

Πίνακας announcements B_0_1.announcements

id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT

filename VARCHAR(45) NOT NULL

path VARCHAR(255) NOT NULL

description VARCHAR(80) NULL

timestamp DATETIME NOT NULL

PRIMARY KEY (id)

Ο πίνακας announcements χρησιμοποιείται για να καταχωρούνται τα στοιχεία των αρχείων (ανακοινώσεων) που θα εμφανίζονται στην αρχική σελίδα της εφαρμογής.

Πεδία:

id : Το πρωτεύον κλειδί του πίνακα.

filename : Ο τίτλος του αρχείου.

path : Η διαδρομή που αποθηκεύεται το αρχείο.

description : Η περιγραφή του αρχείου.

timestamp : Η ημερομηνία αποθήκευσης.

(26)

Σελίδα 26 από 114

Όψη (view) map_stud_proj

B_0_1.map_stud_proj prid

status project lastname stid AEM semester year date_start date_end

H όψη map_stud_proj χρησιμοποιείται για να καταχωρούνται συγκεντρωτικά τα στοιχεία του σπουδαστή και της εργασίας που του έχει ανατεθεί.

Πεδία:

prid : Το id της εργασίας.

status : Η κατάσταση της εργασίας.

project : Ο τίτλος της εργασίας.

lastname : Το επώνυμο του σπουδαστή.

stid : Το id του σπουδαστή.

AEM : Ο αριθμός μητρώου του σπουδαστή.

semester : Το εξάμηνο ανάθεσης της εργασίας.

year : Το έτος ανάθεσης της εργασίας.

date_start : Ημερομηνία ανάθεσης της εργασίας.

date_end : Ημερομηνία παράδοσης της εργασίας.

(27)

Σελίδα 27 από 114

B_0_1.map_us_st

id studentid status role

login_name first_name last_name e_mail date_created date_psw_expires AEM

H όψη map_ us_st χρησιμοποιείται για να καταχωρούνται συγκεντρωτικά τα στοιχεία του σπουδαστή και του χρήστη.

Πεδία:

id : Το id .

studentid : Η κατάσταση της εργασίας.

status : H κατάσταση της εργασίας.

role : Ο ρόλος του χρήστη.

login_name : Το όνομα εισόδου του χρήστη.

first_name: Το όνομα του χρήστη.

last_name : Το επώνυμο του χρήστη.

e_mail : Το e-mail του χρήστη.

date_created : Η ημερομηνία δημιουργίας του λογαριασμού χρήστη.

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

AEM : Ο αριθμός μητρώου του σπουδαστή.

(28)

Σελίδα 28 από 114 ΚΕΦΑΛΑΙΟ 5

ο

Use Cases

Πίνακας ιχνηλασιμότητας Use Cases – Διαγράμματων

Use Case Τίτλος Διάγραμμα

UC – No.1 Είσοδος χρήστη Διάγραμμα -1-

UC – No.2 Προσθήκη χρήστη Διάγραμμα -2-

UC – No.3 Επεξεργασία χρήστη Διάγραμμα -3-

UC – No.4 Αναζήτηση χρήστη Διάγραμμα -4-

UC – No.5 Προσθήκη εργασίας Διάγραμμα -5- UC – No.6 Επεξεργασία εργασίας Διάγραμμα -6- UC – No.7 Αναζήτηση εργασίας Διάγραμμα -7- UC – No.8 Προσθήκη αρχείου

(Σπουδαστής)

Διάγραμμα -8- UC – No.9 Επεξεργασία αρχείου

(Σπουδαστής)

Διάγραμμα -9- UC – No.10 Λήψη αρχείου(Σπουδαστής) Διάγραμμα -10- UC – No.11 Διαγραφή αρχείου

(Σπουδαστής)

Διάγραμμα -11- UC – No.12 Προσθήκη αρχείου

(Διαχειριστής)

Διάγραμμα -12- UC – No.13 Επεξεργασία αρχείου

(Διαχειριστής)

Διάγραμμα -13- UC – No.14 Λήψη αρχείου(Διαχειριστής) Διάγραμμα -14- UC – No.15 Διαγραφή αρχείου

(Διαχειριστής)

Διάγραμμα -15- UC – No.16 Προσθήκη ανακοίνωσης Διάγραμμα -16- UC – No.17 Επεξεργασία ανακοίνωσης Διάγραμμα -17- UC – No.18 Λήψη ανακοίνωσης Διάγραμμα -18- UC – No.19 Διαγραφή ανακοίνωσης Διάγραμμα -19- UC – No.20 Προσθήκη εικόνας αρχικής

σελίδας

Διάγραμμα -20- UC – No.21 Επεξεργασία εικόνας αρχικής

σελίδας

Διάγραμμα -21- UC – No.22 Λήψη εικόνας αρχικής

σελίδας

Διάγραμμα -22- UC – No.23 Διαγραφή εικόνας αρχικής

σελίδας

Διάγραμμα -23- UC – No.24 Προβολή δημοσιοποιημένων

εικόνων στο κοινό

Διάγραμμα -24- UC – No.25 Εγγραφή στο log

εισόδου/εξόδου

Διάγραμμα -25- UC – No.26 Εγγραφή στο log ενεργειών Διάγραμμα -26-

(29)

Σελίδα 29 από 114

Όνομα Είσοδος Χρήστη

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

Συμμετέχοντες Χρήστης Προϋποθέσεις -

Εξαιρέσεις 1. Σύνδεση με τη βάση ή το server δεν είναι ενεργή Κύρια Ροή 1. Ο χρήστης ανοίγει την σελίδα εισόδου χρήστη

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

3. Ο χρήστης πατάει το κουμπί επιβεβαίωσης

4. Το σύστημα ελέγχει το όνομα και το κωδικό χρήστη, εάν υπάρχουν στη βάση

5. Εάν υπάρχουν, ελέγχει εάν είναι ενεργά 6. Το σύστημα ελέγχει το ρόλο του χρήστη

7. Το σύστημα επιτρέπει την εισαγωγή του χρήστη στο σύστημα

Εναλλακτική Ροή 4.1 Εάν τα στοιχεία δεν υπάρχουν στη βάση, ο χρήστης δεν εισέρχεται στο σύστημα και ένα μήνυμα για εισαγωγή σωστών στοιχείων

εμφανίζεται στο χρήστη

5.1 Ένα ο χρήστης δεν είναι ενεργός, δεν εισέρχεται στο σύστημα Αποτέλεσμα Επιτυχημένο αποτέλεσμα

Ο χρήστης εισάγεται στο σύστημα Αποτυχημένο αποτέλεσμα

Ο χρήστης δεν εισάγεται και του εμφανίζεται το απαραίτητο μήνυμα.

Διάγραμμα Διάγραμμα -1-

(30)

Σελίδα 30 από 114

Διάγραμμα -1-

(31)

Σελίδα 31 από 114

Όνομα Προσθήκη Χρήστη

Περιγραφή Δημιουργία ενός νέου λογαριασμού χρήστη Συμμετέχοντες «Υπερχρήστης»

Προϋποθέσεις 1. Ο χρήστης πρέπει να έχει δικαιώματα «υπερχρήστη» για να έχει πρόσβαση στη συνάρτηση

2. Ο χρήστης πρέπει να συμπληρώσει όλα τα πεδία δημιουργίας χρήστη

Εξαιρέσεις 1. Σύνδεση με τη βάση ή το server δεν είναι ενεργή 2. Ο χρήστης δεν έχει αναγνωριστεί ως υπερχρήστης Κύρια Ροή 1. Ο χρήστης ανοίγει την σελίδα διαχείρισης χρηστών

2. Το σύστημα ελέγχει εάν έχει επαρκή δικαιώματα για είσοδο στη σελίδα

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

4. Ο υπερχρήστης πατάει το κουμπί υποβολής

5. Το σύστημα ελέγχει αν έχουν συμπληρωθεί όλα τα πεδία 6. Το σύστημα ελέγχει αν όλα τα στοιχεία είναι έγκυρα 7. Εάν όλα τα δεδομένα είναι σωστά, μια νέα εγγραφή

δημιουργείται στο πίνακα χρηστών

8. Ένα μήνυμα επιτυχής εισαγωγής χρήστη εμφανίζεται στον υπερχρήστη

9. Όλα τα πεδία αρχικοποιούνται

Εναλλακτική Ροή 2.1 Εάν ο χρήστης δεν έχει επαρκή δικαιώματα, μεταφέρεται στη σελίδα εισαγωγής χρήστη

5.1 Εάν δεν έχουν συμπληρωθεί όλα τα πεδία, ένα μήνυμα εμφανιζεται στον υπερχρήστη

6.1 Εάν δεν είναι έγκυρα τα στοιχεία, ένα μήνυμα εμφανίζεται στον υπερχρήστη

Αποτέλεσμα Επιτυχημένο αποτέλεσμα

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

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

Διάγραμμα Διάγραμμα -2-

(32)

Σελίδα 32 από 114

Διάγραμμα -2-

Referências

Documentos relacionados

1.4.1 ΣΥΝΤΑΓΗ Η συνταγή συνδέει το γιατρό, το φαρμακοποιό και τον άρρωστο και δεν είναι τίποτα άλλο από ένα χαρτί που έχει με ακρίβεια γραμμένα όλα τα στοιχεία εκείνου που την εκδίδει