ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Θέμα πτυχιακής εργασίας:

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

Download "ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Θέμα πτυχιακής εργασίας:"

Transcript

1 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα πτυχιακής εργασίας: Ανάπτυξη εφαρμογής Αndroid για την χρήση και διαχείριση του Συστήματος Διαχείρισης Μάθησης Open eclass. Android application development for the use and administration of Open eclass Learning Management System. Καζανίδη Ιωάννη Υποβληθείσα στον Καθηγητή Λόκα Ανδρέα από τον σπουδαστή: Καβάλα 2012 Σελίδα 1

2 ΚΑΤΑΛΟΓΟΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΕΙΣΑΓΩΓΗ ΚΑΙ ΠΕΡΙΓΡΑΜΜΑ ΕΡΓΑΣΙΑΣ ΚΕΦΑΛΑΙΟ 1: Η ΠΛΑΤΦΟΡΜΑ Open eclass Γενική περιγραφή της πλατφόρμας Στόχοι Οφέλη Το πακέτο XAMPP Η βάση δεδομένων...13 ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ Android SDK To Android Software Development Kit (SDK) Απαραίτητα εργαλεία Ο Android Emulator Η αρχιτεκτονική του Android SDK Ο πυρήνας Linux Τοπικές βιβλιοθήκες Επίπεδο χρόνου εκτέλεσης Πλαίσιο εφαρμογών Application Framework Εφαρμογές και widgets Χρόνος ζωής δραστηριότητας (Activity Lifecycle) Android Application Project Εκτέλεση της Android εφαρμογής..32 ΚΕΦΑΛΑΙΟ 3: ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PHP Γενικές πληροφορίες Συγγραφή και εκτέλεση ενός απλού προγράμματος σε PHP Η χρήση του συστήματος MySql Η εντολή CREATE Η εντολή DROP Η εντολή SELECT Η εντολή INSERT Η εντολή DELETE Η εντολή UPDATE Η χρήση της MySql από τα PHP scripts Κλήση ενός PHP script από έναν client Πέρασμα παραμέτρων σε ένα PHP script μέσω του url Σελίδα 2

3 3.7. Ανταλλαγή δεδομένων με κωδικοποίηση JSON...43 ΚΕΦΑΛΑΙΟ 4: ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ Αρχιτεκτονική συστήματος Βασικές αρχές Δραστηριότητες της Android εφαρμογής Παράδειγμα υλοποίησης δραστηριότητας Ορισμός γραφικού περιεχομένου Ο κώδικας Java της δραστηριότητας Το PHP script checklogin.php.59 ΚΕΦΑΛΑΙΟ 5: ΠΑΡΟΥΣΙΑΣΗ ΤΗΣ ΑΝΑΠΤΥΧΘΕΙΣΑΣ ΕΦΑΡΜΟΓΗΣ Application Launch Main Page Create Account Login Main Menu Check Announcements Find Lessons My Lessons Lesson Site Lesson Announcements Lesson Assignments Lesson Files Lesson Agenda Lesson Forum Topics Posts Enter Text Δοκιμή της εφαρμογής. 101 ΚΕΦΑΛΑΙΟ 6: ΣΥΜΠΕΡΑΣΜΑΤΑ ΠΡΟΤΑΣΕΙΣ ΓΙΑ ΠΕΡΑΙΤΕΡΩ ΜΕΛΕΤΗ 102 ΒΙΒΛΙΟΓΡΑΦΙΑ 105 ΙΣΤΟΣΕΛΙΔΕΣ..105 Σελίδα 3

4 Εισαγωγή και περίγραμμα εργασίας Ο κύριος στόχος της παρούσας εργασία ήταν η ανάπτυξη μιας εφαρμογής κινητού τηλεφώνου νέας γενιάς (smart phone), μέσω της οποίας να δίνεται η δυνατότητα στον χρήστη να εγγραφεί και να εισέλθει σε έναν λογαριασμό κάποιας πλατφόρμας eclass και να εκτελέσει τις διάφορες λειτουργίες από το κινητό του τηλέφωνο. Πιο συγκεκριμένα, αναπτύχθηκε με την χρήση του Android sdk μία εφαρμογή η οποία τρέχει σε κινητά τύπου Android και συνδέεται σε ένα εικονικό eclass το οποίο δημιουργήθηκε για τις ανάγκες της εργασίας. Το πρόγραμμα είναι ευέλικτο έτσι ώστε με μικρές τροποποιήσεις να μπορεί να χρησιμοποιηθεί με οποιοδήποτε eclass. Η ηλεκτρονική πλατφόρμα Open eclass, αποτελεί ένα ολοκληρωμένο σύστημα διαχείρισης ηλεκτρονικών μαθημάτων. Στόχος της είναι η υποστήριξη δράσεων τηλεκπαίδευσης ανεξάρτητα από τους περιοριστικούς παράγοντες του χώρου και του χρόνου της κλασσικής διδασκαλίας, προσφέροντας στον εκπαιδευτή και τον εκπαιδευόμενο ένα δυναμικό περιβάλλον αλληλεπίδρασης. Όπως προαναφέρθηκε στα πλαίσια της εργασίας έγινε εγκατάσταση και χειρισμός της πλατφόρμας eclass, έτσι ώστε να μπορεί να δοκιμαστεί η mobile εφαρμογή που την χειρίζεται. Το Android Software Development Kit (SDK) αναπτύχθηκε από την εταιρία Open Handset Alliance, η οποία αποτελεί ιδιοκτησία της Google. Ο σκοπός ήταν η ανάπτυξη ενός ανοιχτού (open source) λογισμικού, που θα δίνει τη δυνατότητα σε προγραμματιστές να δημιουργούν εφαρμογές οι οποίες μπορούν να εκτελεστούν σε κινητές συσκευές τύπου Android. Η γλώσσα που χρησιμοποιείται είναι βασισμένη στην γλώσσα προγραμματισμού Java και παρέχεται ένας emulator ώστε να μπορεί να διεξαχθεί πειραματισμός με τις υπό ανάπτυξη εφαρμογές. Η εφαρμογή που αναπτύχθηκε για τις ανάγκες της εργασίας χρησιμοποιεί το Android SDK και δοκιμάστηκε τόσο στον Android emulator, όσο και σε πραγματικές συσκευές. Για να είναι δυνατή η επικοινωνία της Android εφαρμογής με την πλατφόρμα eclass, απαιτήθηκε η χρήση μια διαδικτυακής γλώσσας με την οποία δημιουργήθηκαν web services τα οποία δίνουν τη δυνατότητα σε μια εξωτερική εφαρμογή να έχει πρόσβαση στη βάση δεδομένων που το eclass δημιουργεί. Η γλώσσα που επιλέχτηκε είναι η php. Η php είναι μία γενικού σκοπού server-side scripting γλώσσα προγραμματισμού, που δίνει τη δυνατότητα δημιουργίας web-services αλλά και δυναμικών ιστοσελίδων. Στα πλαίσια της Σελίδα 4

5 εργασία χρησιμοποιήθηκε ώστε να παρέχει όλα τα web-services τα οποία η android εφαρμογή καλεί για να έχει πρόσβαση στη βάση δεδομένων του eclass. Το να δημιουργήθει μία εφαρμογή κινητού τηλεφώνου που να υλοποιεί όλες τις λειτουργίες που παρέχει το eclass ήταν κάτι που ξέφευγε από τους σκοπούς της παρούσας πτυχιακής εργασίας. Σκοπός ήταν να υλοποιηθούν οι πιο βασικές λειτουργίες (login, δημιουργία λογαριασμού, ατζέντα, κατέβασμα αρχείων κλπ) και να γίνει μια μελέτη για το αν μια τέτοια προσέγγιση είναι γρήγορη και αξιόπιστη. Η λειτουργίες εστιάστηκαν κυρίως στους εκπαιδευόμενους, καθώς οι εκπαιδευτές χρειάζονται άλλα δικαιώματα (να τους δημιουργήσει ο Διαχειριστής κλπ) και επίσης κρίθηκε πιο λογικό ότι μία mobile εφαρμογή θα απευθύνεται σε πρώτη φάση στους φοιτητές. Η αρχιτεκτονική που χρησιμοποιήθηκε μπορεί να εφαρμοστεί και για την υλοποίηση περισσοτέρων λειτουργιών ή και σε διαφορετικού τύπου κινητές συσκευές (Iphone). Η εργασία αποτελείται από έξι κεφάλαια: Στο πρώτο κεφάλαιο γίνεται μια εισαγωγή στην πλατφόρμα eclass, την φιλοσοφία της, την αρχιτεκτονική της καθώς και των λειτουργιών που υλοποιεί. Στο ίδιο κεφάλαιο παρουσιάζεται συνοπτικά και το εργαλείο Xampp το οποίο χρησιμοποιήθηκε για την εγκατάσταση του eclass, αλλά και οι βάσεις δεδομένων τις οποίες το eclass δημιουργεί. Στο δεύτερο κεφάλαιο επιχειρείται να γίνει μία εισαγωγή στο Android sdk. Βάρος δίνεται στα στοιχεία και τις βιβλιοθήκες που χρησιμοποιήθηκαν στα πλαίσια της ανάπτυξης της εφαρμογής. Στο τρίτο κεφάλαιο γίνεται μία παρουσίαση της γλώσσας προγραμματισμού PHP. Συγκεκριμένο βάρος δίνεται στο πως η γλώσσα δίνει τη δυνατότητα υλοποίησης web-services, αλλά και το πώς συνδυάζεται με τη γλώσσα mysql, ώστε να χειριστεί μία βάση δεδομένων. Στο τέταρτο κεφάλαιο αναλύεται η σχεδίαση και υλοποίηση της εφαρμογής που αναπτύχθηκε. Αρχικά εξηγείται η αρχιτεκτονική που χρησιμοποιήθηκε και έπειτα δίνονται κάποια σημεία του κώδικα ως παράδειγμα. Στο πέμπτο κεφάλαιο παρουσιάζεται η αναπτυχθείσα εφαρμογή. Γίνεται αναλυτική περιγραφή όλων των δραστηριοτήτων και του τρόπου επικοινωνίας με τον server και τη βάση δεδομένων του Open eclass. Επίσης δίνονται screenshots από τον Android emulator τα οποία επιδεικνύουν τη χρήση της εφαρμογής. Σελίδα 5

6 Στο έκτο και τελευταίο κεφάλαιο παρουσιάζονται κάποια συμπεράσματα και προβληματισμοί και γίνονται προτάσεις για περεταίρω μελέτη αλλά και επέκταση της εφαρμογής.... Η εργασία αυτή αναπτύχθηκε στα πλαίσια της περαίωσης Πτυχιακής εργασίας για το τμήμα Βιομηχανικής Πληροφορικής του Τεχνολογικού εκπαιδευτικού ιδρύματος Καβάλας. Ευχαριστώ εκ βάθους καρδίας τον Καθηγητή μου Ιωάννη Καζανίδη που με στήριξε με τις γνώσεις του και την καθοδηγησή του! Τους γονείς μου Θωμά και Γιούλα! Τους αδερφούς μου Μάριο και Γιώργο για την πολύτιμη βοήθεια τους και την αγαπημένη μου Μιρέλα που σύντομα θα φέρει στην ζωή μας τον γιο μας! Λάρισα 12 Σεπτεμβρίου Σελίδα 6

7 ΚΕΦΑΛΑΙΟ 1: Η ΠΛΑΤΦΟΡΜΑ Open eclass 1. Η πλατφόρμα Open eclass Στο παρόν κεφάλαιο γίνεται μία σύντομη παρουσίαση της ηλεκτρονικής πλατφόρμας Open eclass, των λειτουργιών που προσφέρει καθώς και της φιλοσοφίας της. Βάρος δίνεται στο να γίνουν κατανοητά τα οφέλη που αποκομίζονται από την χρήση της συγκεκριμένης πλατφόρμας να αναγνωριστούν οι βασικές κατηγορίες χρηστών και να παρουσιαστούν τα βασικά σενάρια χρήσης που οι διάφορες κατηγορίες χρηστών υλοποιούν. Επίσης γίνεται μια περιγραφή του εργαλείου Xampp που χρησιμοποιήθηκε ώστε να εγκατασταθεί το eclass στον τοπικό server και των βάσεων δεδομένων που το eclass δημιουργεί Γενική περιγραφή της πλατφόρμας Η ηλεκτρονική πλατφόρμα Open eclass, αποτελεί ένα ολοκληρωμένο σύστημα διαχείρισης ηλεκτρονικών μαθημάτων. Στόχος της είναι η υποστήριξη δράσεων τηλεκπαίδευσης ανεξάρτητα από τους περιοριστικούς παράγοντες του χώρου και του χρόνου της κλασσικής διδασκαλίας, προσφέροντας στον εκπαιδευτή και τον εκπαιδευόμενο ένα δυναμικό περιβάλλον αλληλεπίδρασης. Η πλατφόρμα αποτελεί πρόταση του Ακαδημαϊκού Διαδικτύου (GUnet), το οποίο την υποστηρίζει και τη διανέμει ελεύθερα. Η πλατφόρμα αποτελεί ένα εργαλείο αλληλεπίδρασης και συνεχούς επικοινωνίας μεταξύ εκπαιδευτή και εκπαιδευόμενου. Σκοπός δεν είναι να αντικαταστήσει την παραδοσιακή διδασκαλία, αλλά να την εμπλουτίσει, δημιουργώντας τις προϋποθέσεις ενός δυναμικού περιβάλλοντος εκπαίδευσης. Οι εκπαιδευτές έχουν τη δυνατότητα να δημιουργούν εύχρηστα ηλεκτρονικά μαθήματα, στα οποία να παρέχουν πληροφορίες και εκπαιδευτικό υλικό. Οι εκπαιδευόμενοι μπορούν να έχουν εύκολα και γρήγορα πρόσβαση σε αυτό το υλικό. Επίσης δίνονται επιπλέον δυνατότητες όπως η δημιουργία ομάδων εργασίας, η ανταλλαγή αρχείων, μηνυμάτων κλπ. Στην ηλεκτρονική πλατφόρμα eclass υπάρχουν τρεις βασικές κατηγορίες χρηστών οι οποίες παρουσιάζονται παρακάτω: Σελίδα 7

8 1. Ο χρήστης - εκπαιδευτής είναι υπεύθυνος για τη δημιουργία και τη διαχείριση των ηλεκτρονικών μαθημάτων. Ο λογαριασμός του δημιουργείται από τους διαχειριστές της πλατφόρμας, κατόπιν αίτησης του ενδιαφερόμενου. Ο εκπαιδευτής μπορεί να δημιουργήσει όσα μαθήματα επιθυμεί, να επικοινωνεί με τους εκπαιδευόμενους, να εισάγει το εκπαιδευτικό υλικό του μαθήματος (κείμενα, εικόνες, παρουσιάσεις, βίντεο, εργασίες, ασκήσεις αυτοαξιολόγησης κλπ), καθώς επίσης να δημιουργεί ομάδες εργασίας και περιοχές συζητήσεων. 2. Ο χρήστης - εκπαιδευόμενος μπορεί να εγγραφεί σε όσα μαθήματα του επιτρέπεται, να έχει πρόσβαση στο εκπαιδευτικό υλικό που περιέχουν, και να συμμετέχει σε ομάδες εργασίας, περιοχές συζητήσεων και ασκήσεις αυτοαξιολόγησης. Ο λογαριασμός του δημιουργείται είτε αυτόματα με την εγγραφή του στην πλατφόρμα είτε από τους διαχειριστές της πλατφόρμας, κατόπιν αίτησης του ενδιαφερόμενου. 3. Ο χρήστης - διαχειριστής είναι αυτός που έχει τη συνολική εποπτεία της πλατφόρμας. Με βάση αυτούς τους χρήστες έχουμε ένα γενικό Use Case Diagram που περιγράφει τις βασικές λειτουργίες του συστήματος και παρατίθεται στο σχήμα 1.1. Πρέπει να τονισθεί ότι στη διαδικασία της ανάπτυξης ενδέχεται κάποιες από τις απαιτήσεις να τροποποιηθούν. Το σχήμα δεν αναλύει με λεπτομέρεια όλες τις λειτουργίες του συστήματος, αλλά αποτελεί μία γενική περιγραφή του. Οι λειτουργίες διαχείριση μαθήματος και παρακολούθηση μαθήματος που αποτελούν και τις βασικότερες λειτουργίες του eclass περιγράφονται με λεπτομέρεια στα σχήματα 1.2 και 1.3 αντίστοιχα. Σελίδα 8

9 Σχήμα 1.1: Γενικό Use Case Diagram συστήματος Αξίζει επιπλέον να σημειωθεί ότι κάποιες από τις διεργασίες στα σχήματα αποτελούν ομάδα εργασιών που αναφέρονται στο ίδιο θέμα. Για παράδειγμα η εργασία διαχείριση ανακοινώσεων περιλαμβάνει τη δημιουργία, την επεξεργασία αλλά και τη διαγραφή μιας ανακοίνωσης. Η ανάλυση τον διαδικασιών αυτών με λεπτομέρειες στα διαγράμματα δεν κρίνεται σκόπιμη στα πλαίσια της παρούσας παρουσίασης. Σελίδα 9

10 Σχήμα 1.2: Use Case Diagram - Διαχείριση ηλεκρονικού μαθήματος Σελίδα 10

11 Σχήμα 1.3: Use Case Diagram - Παρακολούθηση ηλεκτρονικού μαθήματος Η υλοποίηση όλων των λειτουργιών που παρουσιάστηκαν παραπάνω ξεπερνάει τα όρια της παρούσας πτυχιακής εργασίας. Η λειτουργίες που υλοποιήθηκαν εστιάστηκαν κυρίως στους εκπαιδευόμενους, καθώς οι εκπαιδευτές χρειάζονται άλλα δικαιώματα (να τους δημιουργήσει ο Διαχειριστής κλπ) και επίσης κρίθηκε πιο λογικό ότι μία mobile εφαρμογή θα απευθύνεται σε πρώτη φάση στους φοιτητές. Η αρχιτεκτονική που χρησιμοποιήθηκε μπορεί να εφαρμοστεί και για την υλοποίηση περισσοτέρων λειτουργιών. 1.2 Στόχοι Οφέλη Σύμφωνα με την Οµάδα Ασύγχρονης Τηλεκπαίδευσης GUnet Βασική επιδίωξη της πλατφόρµας αποτελεί η ανάπτυξη υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από τους περιοριστικούς παράγοντες του χώρου και του χρόνου της συµβατικής διδασκαλίας. Η ίδια ομάδα αναγνωρίζει ως βασικούς στόχους που ικανοποιούνται από το σχεδιασµό και τα οφέλη που αποκοµίζονται από τη χρήση της πλατφόρµας είναι τα εξής: 1. Ενσωμάτωση των νέων τεχνολογιών της πληροφορίας και των επικοινωνιών (ΤΠΕ) στην εκπαιδευτική δραστηριότητα για την παροχή Σελίδα 11

12 ανταγωνιστικών υπηρεσιών εκπαίδευσης υψηλής ποιότητας μέσα από ένα σύγχρονο περιβάλλον τεχνολογικής αιχμής 2. Δημιουργία ενός εύχρηστου μέσου αλληλεπίδρασης και συνεχούς επικοινωνίας εκπαιδευτή εκπαιδευομένου 3. Αξιοποίηση του πλούσιου εκπαιδευτικού υλικού και της συσσωρευµένης εκπαιδευτικής εμπειρίας 4. Εποικοδομητική χρήση του διαδικτύου και της άρτιας δικτυακής υποδομής των εκπαιδευτικών οργανισµών 5. Ευκολία στη χρήση από εκπαιδευτές εκπαιδευομένους για την υποστήριξη ατόμων µε διαφορετική τεχνολογική παιδεία και κουλτούρα αλλά µε τις ίδιες υψηλές απαιτήσεις στην ποιότητα της προσφερόµενης εκπαίδευσης 6. Παροχή μιας αξιόπιστης χαμηλού κόστους υπηρεσίας τηλεµατικής για την Ασύγχρονη Τηλεκπαίδευση 7. Προσαρμοστικότητα στις ιδιαίτερες απαιτήσεις και ανάγκες 8. Ευκολία στη διαχείριση, την αναβάθμιση και την επέκταση 9. Ελεύθερη διάθεση και κεντρική υποστήριξη από το Πανελλήνιο Ακαδημαϊκό ιαδίκτυο GUnet Περισσότερες πληροφορίες καθώς και εγχειρίδια χρήσης για την πλατφόρμα eclass μπορούν να βρεθούν στην ιστοσελίδα 1.3 Το πακέτο XAMPP Σύμφωνα με τους Davies και Phillips (2007), το XAMPP αποτελεί ένα πακέτο προγραμμάτων ελεύθερου λογισμικού λογισμικού ανοικτού κώδικα και ανεξάρτητου πλατφόρμας το οποίο περιέχει το εξυπηρετητή ιστοσελίδων http Apache, την βάση ιστοσελίδων MySQL και ένα διερμηνέα για σενάρια γραμμένα σε γλώσσες προγραμματισμού PHP και Perl. Το όνομα XAMPP είναι ακρωνύμιο και αναφέρεται στα εξής αρχικά: X Αναφέρεται στο "cross-platform" που σημαίνει λογισμικό ανεξάρτητο πλατφόρμας. Σελίδα 12

13 A Αναφέρεται στον Apache Http Server, ο οποίος είναι ένας εξυπηρετητής του παγκόσμιου ιστού (web) που χρησιμοποιεί το πρωτόκολλο HTTP Μ Αναφέρεται στο σύστημα διαχείρισης βάσεων δεδομένων MySql. Το πακέτο παρέχει και το εργαλείο PHPmyAdmin με το οποίο μπορεί να γίνει εύκολα ο χειρισμός της βάσης. P Αναφέρεται στη γλώσσα προγραμματισμού PHP. Αναλυτικότερη περιγραφή της γλώσσας γίνεται στο κεφάλαιο 3. P Αναφέρεται στην αντικειμενοστρεφή γλώσσα προγραμματισμού Perl Το XAMPP αποτελεί ένα ολοκληρωμένο πακέτο που ως σκοπό έχει τη δημιουργία ενός εύχρηστου περιβάλλοντος το οποίο να βοηθάει τους προγραμματιστές στην χρησιμοποίηση του Apache Http Server. To XAMPP είναι συμβατό με λειτουργικά Windows, Linux και Unix. Η ίδια η ομάδα διαχείρισης του eclass προτείνει τη χρήση του XAMPP για την εύκολη εγκατάσταση και χειρισμό του eclass. Οδηγίες για την εγκατάσταση μπορούν να βρεθούν στην ιστοσελίδα: Με την εγκατάσταση του eclass ο χρήστης δημιουργεί και έναν χρήστη διαχειριστή (admin) ο οποίος είναι και ο πρώτος χρήστης της πλατφόρμας. Επίσης ο χρήστης δίνει το όνομα για την κύρια βάση δεδομένων που θα χρησιμοποιεί η πλατφόρμα. 1.4 Η βάση δεδομένων Όπως προαναφέρθηκε το eclass δημιουργεί μία βάση δεδομένων η οποία περιέχει όλες τις πληροφορίες που χρησιμοποιεί η πλατφόρμα. Το όνομα της βάσεως δεδομένων δίνεται από τον ίδιο τον χρήστη κατά την εγκατάσταση. Στην συγκεκριμένη υλοποίηση χρησιμοποιήθηκε το neweclass. Η βάση περιέχει 35 πίνακες, πολλοί από τους οποίους περιγράφονται εν συντομία παρακάτω. 1. admin [iduser, privilege]- Περιέχει πληροφορίες για τον διαχειριστή της πλατφόρμας. 2. agenda [id, lesson_event_id, titre, contenu, day, hour, lasting, lesson_code] - Περιέχει τα συμβάντα τα οποία παρουσιάζονται στην ατζέντα. Μέσω του lesson_event_id μπορεί να γίνει ταυτοποίηση του μαθήματος στο οποίο ανήκει το Σελίδα 13

14 συμβάν ενώ στη στήλη contenu υπάρχει το πριεχόμενο. Γενικά περιεχόμενα κειμένου, αποθηκεύονται σε μορφή html (με τη χρήση html tags), ώστε να αποθηκεύεται και η μορφοποίηση. 3. annonces [id, title, contenu, temps, cours_id, ordre, visibility] Περιέχει τις ανακοινώσεις των μαθημάτων. Μέσω του cours_id μπορεί να βρεθεί το μάθημα στο οποίο ανήκει η ανακοίνωση, ενώ η στήλες title και contenu περιέχουν τον τίτλο και το περιεχόμενο της ανακοίνωσης αντίστοιχα. 4. cours [cours_id, code, languagecourse, intitule, description, course_keywords, course_addon, visible titulaires, fake_code, departmenturlname, departmenturl, lastvisit, lastedit] Περιέχει πληροφορίες για τα μαθήματα. Η στήλη code είναι ιδιαίτερης σημασίας διότι για κάθε μάθημα που δημιουργείται, το eclass δημιουργεί μία καινούρια βάση δεδομένων ειδικά για το συγκεκριμένο μάθημα. Το όνομα αυτής της βάσης είναι το περιεχόμενο της συγκεκριμένης στήλης για τον πίνακα cours. Οπότε αν κάποιος θέλει να βρει στοιχεία για αυτό το μάθημα πρέπει να ανακτήσει το περιεχόμενο της στήλης code, ώστε να συνεχιστεί η αναζήτηση στην σωστή βάση δεδομένων. 5. course_units (id, title, comments, visibility, order, course_id) περιέχει ενότητες του συγκεκριμένου μαθήματος. 6. cours_user [cours_id, user_id, statut, team, tutor, editor, reg_date, receive_mail] συνδέει τους χρήστες (user_id) με τα μαθήματα στα οποία είναι εγγεγραμμένοι (cours_id). 7. faculte [id, code, name, number, generator] Περιέχει γενικές πληροφορίες για τα τμήματα. 8. unit_resources [id, unit_id, title, comments, res_id, type, visibility, order, date] περιέχει πόρους για τις ενότητες (κείμενο κλπ). 9. user [user_id nom, prenom, username, password, , statut, phone, department, am, registered_at, expires_at, pers, lang, announce_flag, doc_flag,forum_flag, description, has_icon, verified_mail, receive_mail, _public, phone_public, am_public] Περιέχει πληροφορίες για όλους τους χρήστες της πλατφόρμας. Όπως αναφέρθηκε παραπάνω, όταν δημιουργείται ένα μάθημα, το eclass δημιουργεί αυτόματα μία βάση δεδομένων για το συγκεκριμένο μάθημα. Το όνομα αυτής της βάσης είναι ίδιο με το περιεχόμενο της στήλης code στον πίνακα cours της κεντρικής βάσης Σελίδα 14

15 δεδομένων για το συγκεκριμένο μάθημα. Στη βάση αυτή δημιουργούνται 38 πίνακες οι πιο σημαντικοί από τους οποίους περιγράφονται εν συντομία παρακάτω: 1. agenda [id, titre, contenu, day, hour, lasting, visibility] παρόμοιο περιεχόμενο με τον ομόνυμο πίνακα της κεντρικής βάσης, με τη διαφορά πότι περιέχει μόνο τα συμβάντα του συγκεκριμένου μαθήματος. 2. assignments [id, title, description, comments, deadline, submission_date, active, secret_directory, group_submissions] περιέχει τις εργασίες οι οποίες σχετίζονται με το συγκεκριμένο μάθημα. 3. dropbox_file [id, uploaderid, filename, filesize, title, description, author, uploaddate, lastuploaddate] περιέχει πληροφορίες για τα αρχεία που σχετίζονται με το συγκεκριμένο μάθημα. Η στήλη title περιέχει τον τίτλο του αρχείου όπως το όρισε ο χρήστης που το έκανε upload. Η στήλη filename περιέχει το όνομα του αρχείου όπως είναι αποθηκευμένο στον Server, ο οποίος δίνει σε κάθε αρχείο ένα τυχαίο όνομα. Το όνομα αυτό πρέπει να καλέσει ένα php script ώστε να κατεβάσει το αρχείο. 4. forums [forum_id, forum_name, forum_desc, forum_access, forum_moderator, forum_topics, forum_posts, forum_last_post_id, cat_id, forum_type] Περιέχει τις διαφορετικές συζητήσεις που υπάρχουν στο forum του μαθήματος. 5. posts [post_id topic_id, forum_id, poster_id, post_time, poster_ip, nom, prenom] Περιέχει πληροφορίες για ένα συγκεκριμένο post του forum. 6. posts_text [post_id, post_text] Περιέχει το κείμενο του post. Το κείμενο είναι αποθηκευμένο σε μορφή html (με τη χρήση html tags) έτσι ώστε να αποθηκεύεται και η μορφοποίηση. 7. topics [topic_id, topic_title, topic_poster, topic_time, topic_views, topic_replies, topic_last_post_id forum_id, topic_status, topic_notify, nom, prenom] Περιέχει τα διαφορετικά θέματα που υπάρχουν στα διάφορα forums. Παραπάνω παρουσιάστηκαν συνοπτικά οι κυριότεροι πίνακες που έπρεπε να υποστούν επεξεργασία για τις ανάγκες της αναπτυχθείσας εφαρμογής. Όπως προαναφέρθηκε το eclass δημιουργεί ποικίλους άλλους πίνακες όπου αποθηκεύονται όλες οι απαραίτητες για τη λειτουργία του πληροφορίες. Για την ανάπτυξη μίας εφαρμογής που να υλοποίει της Σελίδα 15

16 λειτουργίες του eclass είναι απαραίτητο να υπάρχει πρόσβαση σε αυτή τη βάση και δυνατότητα ανάγνωσης ή επεξεργασίας στοιχείων. Σελίδα 16

17 ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ Android SDK 2. Εισαγωγή στο Android SDK Στόχος της παρούσας εργασίας υπήρξε η ανάπτυξη μίας εφαρμογής Android η οποίο να υλοποίει τις λειτουργίες του Open eclass σε ένα smart phone τύπου Android. Για το λόγο αυτό κρίνεται απαραίτητη μία σύντομη παρουσίαση του Android Software Development Kit (SDK) και του πως αυτό χρησιμοποιείται για την ανάπτυξη εφαρμογών. Στην βιβλιογραφία υφίσταται πληθώρα βιβλίων και άρθρων που να παρέχουν οδηγίες για τη χρήση του Android SDK. Σκοπός του παρόντος κεφαλαίου είναι να γίνει μια γενική παρουσίαση της αρχιτεκτονικής και της φιλοσοφίας της γλώσσας και του πω αυτή χρησιμοποιήθηκε στην ανάπτυξη της εφαρμογής To Android Software Development Kit (SDK) Το Android Software Development Kit (SDK) αναπτύχθηκε από την εταιρία Open Handset Alliance, η οποία αποτελεί ιδιοκτησία της Google. Ο σκοπός ήταν η ανάπτυξη ενός ανοιχτού (open source) λογισμικού, που θα δίνει τη δυνατότητα σε προγραμματιστές να δημιουργούν εφαρμογές οι οποίες μπορούν να εκτελεστούν σε κινητές συσκευές τύπου Android. Η γλώσσα που χρησιμοποιείται είναι βασισμένη στην γλώσσα προγραμματισμού Java και παρέχεται ένας emulator ώστε να μπορεί να διεξαχθεί πειραματισμός με τις υπό ανάπτυξη εφαρμογές Απαραίτητα εργαλεία Για τη χρήση του Android SDK είναι απαραίτητο να εγκατασταθούν σε έναν υπολογιστή κάποια εργαλεία. Αυτά είναι η γλώσσα προγραμματισμού Java, ένα Integrated Development Environment (IDE) και το ίδιο το Android SDK 1. Η γλώσσα προγραμματισμού Java Η Java είναι μία γλώσσα προγραμματισμού η οποία σχεδιάστηκε για τη χρήση του διανεμημένου περιβάλλοντος του διαδυκτίου. Σχεδιάστηκε ώστε να έχει τη δομή της γλώσσας C++, αλλά είναι πιο απλή από τη Σελίδα 17

18 C++ και επιβάλλει τη χρήση του αντικειμενοστραφούς προγραμματισμού. Η Java μπορεί να χρησιμοποιηθεί για τη δημιουργία ολοκληρωμένων εφαρμογών που μπορούν να εκτελούνται σε έναν υπολογιστή ή να είναι διανεμημένες μεταξύ servers και clients στο διαδύκτιο Το Android SDK χρησιμοποιεί σε επίπεδο ανάπτυξης την γλώσσα Java. Αυτό σημαίνει ότι χρησιμοποιείται η σύνταξη της Java όπως και πολλές βιβλιοθήκες που η γλώσσα παρέχει. Για αυτό το λόγο είναι απαραίτητη η εγκατάσταση μίας έκδοσης της Java στον υπολογιστή. Να σημειωθεί ότι απαιτείται ολόκληρο το JDK καθώς μία απλή έκδοση ενός runtime environment (JRE) δεν επαρκεί για την ανάπτυξη εφαρμογών. Για την υλοποίηση Android εφαρμογών απαιτείται κάποια έκδοση από το JDK 5.0 ή και νεότερη. 2. Integrated Development Environment (IDE) Ένα IDE είναι ένα προγραμματιστικό περιβάλλον που αποτελείται από έναν συντάκτη κώδικα, έναν compiler, έναν debugger και έναν graphical user interface (GUI) builder. Τα σύγχρονα IDE δίνουν στον προγραμματιστή τη δυνατότητα ανάπτυξης και αποσφαλμάτωσης περίπλοκων εφαρμογών. Για τις ανάγκες της εργασίας χρησιμοποιήθηκε η έκδοση Indigo Service Release 2 το Eclipse IDE. Το Eclipse IDE χρησιμοποιείται κυρίως για την ανάπτυξη προγραμμάτων Java αλλά με τη χρήση plug-ins και άλλων γλωσσών προγραμματισμού όπως Ada, C, C++, COBOL, Haskell, Perl, PHP, Python, R και Ruby. Με την εγκατάσταση του Android SDK το Eclipse μπορεί να χρησιμοποιηθεί για την ανάπτυξη εφαρμογών Android παρέχοντας μάλιστα τη δυνατότητα εύκολου χειρισμού του Android Emulator. 3. Android SDK Όπως προαναφέρθηκε για την ανάπτυξη εφαρμογών Android η εγκατάσταση του Android SDK είναι απαραίτητη. Οι διάφορες εκδόσεις του Android SDK είναι διαθέσιμες στο διαδίκτυο στην ιστοσελίδα Η τρέχουσα νεότερη έκδοση είναι η 4.1 (Api 16). Στις εκδόσεις του Android υπάρχει forward compatibility που σημαίνει ότι μία εφαρμογή που έχει αναπτυχθεί για παράδειγμα στο Android 2.1 (Api 7) θα μπορεί να εκτελεστεί από το Android 2.2 (Api 8) ή οποιοδήποτε νεότερο, αλλά όχι από κάποιο παλαιότερο όπως το Android 1.6 (Api 4). Η εφαρμογή που αναπτύχθηκε στα πλαίσια της εργασίας χρησιμοποίησε την έκδοση Android 2.1 (Api 7), καθώς αυτή είναι μία έκδοση που μπορούν να εκτελέσουν σχεδόν όλες οι συσκευές που κυκλοφορούν σήμερα στην αγορά. Σελίδα 18

19 Όλα τα παραπάνω εργαλεία διανέμονται δωρεάν και μπορούν με ευκολία να γίνουν download από το διαδίκτυο Ο Android Emulator Το Android SDK παρέχει τη δυνατότητα χρήσης ενός emulator ώστε να είναι δυνατή η δοκιμή των υπό ανάπτυξη προγραμμάτων. Με την χρήση του Eclipse IDE είναι πολύ εύκολη η δημιουργία και τροποποίηση ενός Android emulator. Το Eclipse παρέχει τον Android Virtual Device (Avd) Manager (σχήμα 2.1) που δίνει τη δυνατότητα δημιουργίας νέων emulators. Σχήμα 2.1: Ο Android Virtual Device (Avd) Manager Σελίδα 19

20 Με την επιλογή New ο χρήστης οδηγείται σε ένα menu στο οποίο μπορεί να ορίσει έναν νέο emulator (σχήμα 2.2). Ο χρήστης έχει τη δυνατότητα να ορίσει διάφορες παραμέτρους όπως όνομα, έκδοση SDK, μέγεθος μνήμης και ανάλυση οθόνης (σχήμα 2.3). Σχήμα 2.2: Δημιουργία ενός νέου Android emulator Σελίδα 20

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

22 Σχήμα 2.3: Παραμετροποίηση του Android emulator Ο emulator έχει τον σκοπό του να αναπαραστήσει μία πραγματική συσκευή. Μέσω του Eclipse και του μενού Emulator Control δίνονται διάφορες επιλογές όπως του να γίνει τηλεφωνική κλήση στον emulator ή να δοθούν εικονικές Gps συντεταγμένες. Με τον τρόπο αυτό είναι δυνατό να εξομοιωθεί με πιστότητα η λειτουργία της εφαρμογή σε πραγματικές καταστάσεις (για παράδειγμα τι γίνεται αν ενόσω εκτελείται η εφαρμογή η συσκευή δεχθεί Σελίδα 22

23 κλήση). Ωστόσο υπάρχουν και περιορισμοί. Για παράδειγμα είναι αδύνατο να γίνει χρήση της κάμερας της εικονικής συσκευής. Στο σχήμα 2.4 παρουσιάζεται ο emulator που δημιουργήθηκε με τις επιλογές του σχήματος 2.3. Η εφαρμογή που αναπτύχθηκε στα πλαίσια της παρούσας εργασίας δοκιμάστηκε εκτενώς σε emulator αλλά και σε πραγματική συσκευή. Σχήμα 2.4: Ο Android emulator 2.4. Η αρχιτεκτονική του Android SDK Στο σχήμα 2.5 παρουσιάζεται γραφικά η αρχιτεκτονική στην οποία βασίζεται το Android SDK. Όπως γίνεται κατανοητό υπάρχουν 5 διαφορετικά επίπεδα, ξεκινώντας από το χαμηλότερο που είναι ο πυρήνας του λειτουργικού συστήματος και βασίζεται στο λειτουργικό Linux και καταλήγοντας στο υψηλότερο που είναι οι εφαρμογές που χρησιμοποιεί ο χρήστης της συσκευής. Στα παρακάτω υποκεφάλαια θα εξηγηθεί εν συντομία η σημασία του κάθε επιπέδου. Σελίδα 23

24 Σχήμα 2.5: Η αρχιτεκτονική του συστήματος Android (Πηγή: Hello, Android: Introducing Google's Mobile Development Platform, Ed Burnette, 2008) Ο πυρήνας Linux Το λειτουργικό Linux αναπτύχθηκε από τον Linus Torvalds το 1991 όσο αυτός ήταν φοιτητής στο πανεπιστήμιο του Ελσίνκι. Το Linux βρίσκεται σήμερα σε μια πληθώρα συσκευών, από ρολόγια χειρός μέχρι και μεγάλος υπολογιστές. Το Linux παρέχει την αφαιρετικό επίπεδο για το Android, επιτρέποντας το να είναι φορητό σε μία μεγάλη ποικιλία διαφορετικών πλατφορμών στο μέλλον. Εσωτερικά το Android χρησιμοποιεί το Linux για τη διαχείριση της μνήμης, τη διαχείριση των διεργασιών το networking και άλλες υπηρεσίες του λειτουργικού συστήματος. Ο τελικός χρήστης του Android δε θα δει ποτέ το Linux στη συσκευή του, ούτε και ο προγραμματιστής μίας εφαρμογής. Για τον προγραμματιστή όμως είναι καλό να γνωρίζει την ύπαρξη αυτού του επιπέδου. Μερικές διεργασίες, όπως ο χειρισμός του emulator, μπορούν να γίνουν πολλές φορές ευκολότερα μέσω εντολών Linux. Σελίδα 24

25 Τοπικές βιβλιοθήκες Πάνω από το χαμηλότερο επίπεδο του πυρήνα, βρίσκονται οι τοπικές βιβλιοθήκες του Android. Αυτές είναι γραμμένες σε γλώσσα προγραμματισμού C ή C++, χρησιμοποιούν την αρχιτεκτονική του hardware της συγκεκριμένης συσκευής και είναι προεγκατεστημένες από τον κατασκευαστή της συσκευής. Τέτοιες βιβλιοθήκες είναι η SQL Database που χειρίζεται την τοπική βάση δεδομένων της συσκευής, 2D and 3D Graphics που χειρίζεται τα γραφικά και άλλες. Αξίζει να σημειωθεί ότι αυτές οι βιβλιοθήκες δε χρησιμοποιούνται ποτέ ως ανεξάρτητες εφαρμογές αλλά υφίστανται μόνο για να καλούνται από υψηλότερου επιπέδου προγράμματα. Στις τελευταίες εκδόσεις το Android ο δίνεται στον προγραμματιστή η δυνατότητα να γράψει τις δικές του τοπικές βιβλιοθήκες, χρησιμοποιώντας το Native Development Kit (NDK) Επίπεδο χρόνου εκτέλεσης Στο ίδιο επίπεδο με τις τοπικές βιβλιοθήκες, ακριβώς πάνω από τον πυρήνα Linux βρίσκεται και το επίπεδο χρόνου εκτέλεσης (Android Runtime). Αυτό υλοποιείται μέσω του Dalvik Virtual Machine (VM). Το Dalvik VM είναι στην ουσία μία υλοποίηση της γλώσσας προγραμματισμού Java από την Google, η οποία είναι βελτιστοποιημένη για να χρησιμοποιείται σε φορητές συσκευές. Για την καλύτερη χρήση της περιορισμένης ενέργειας και μνήμης των κινητών τηλεφώνων, το Dalvik VM χρησιμοποιεί διαφορετικού τύπου εκτελέσιμα αρχεία και βιβλιοθήκες από τις τυποποιημένες εκδόσεις της Java Πλαίσιο εφαρμογών (Application Framework) Πάνω από τις τοπικές βιβλιοθήκες και το επίπεδο χρόνου εκτέλεσης βρίσκεται το application framework. Το επίπεδο αυτό αποτελείται από όλα τα υψηλού επιπέδου στοιχεία τα οποία χρησιμοποιεί ο προγραμματιστής για να αναπτύξει τις δικές του εφαρμογές. Το πλαίσιο αυτό είναι προεγκατεστημένο στη συσκευή, αλλά μπορεί να Σελίδα 25

26 επεκταθεί από τον προγραμματιστή με περισσότερα στοιχεία εάν αυτό είναι αναγκαίο. Τα πιο σημαντικά τμήματα του πλαισίου είναι τα παρακάτω: Activity Manager: Χειρίζεται το χρόνο ζωής των εφαρμογών. Με το χρόνο ζωής μίας Android εφαρμογής θα ασχοληθούμε στην επόμενη παράγραφο. Content Providers: Ενσωματώνουν πληροφορίες οι οποίες πρέπει να μοιραστούν μεταξύ διαφορετικών εφαρμογών. Για παράδειγμα μία εφαρμογή Android μπορεί να χρησιμοποιεί τις επαφές του χρήστη οι οποίες είναι αποθηκευμένες στη συσκευή. Resource Manager: Resource (πόρος) είναι ότι χρησιμοποιεί η εφαρμογή πέρα από τον ίδιο τον κώδικα. Για παράδειγμα μία εφαρμογή μπορεί να χρησιμοποιεί μια συγκεκριμένη εικόνα ως φόντο. Location Manager: Μέσω του Gps είναι δυνατό για μία Android συσκευή να εντοπίσει τη γεωγραφική της θέση. Notification Manager: Γεγονότα όπως μία εισερχόμενη κλήση, μπορούν να παρουσιαστούν με έναν διακριτικό τρόπο στον χρήστη Εφαρμογές και widgets Το ανώτερο επίπεδο του Android SDK αποτελείται από τις εφαρμογές που χρησιμοποιεί ο τελικός χρήστης. Οι χρήστες των κινητών Android βλέπουν μόνο αυτές τις εφαρμογές, χωρίς να ενδιαφέρονται για τις διεργασίες που γίνονται στο φόντο. Οι εφαρμογές είναι προγράμματα που όταν εκτελούνται καταλαμβάνουν ολόκληρη την οθόνη και αλληλεπιδρούν με τον χρήστη. Αντίθετα τα widgets μπορεί να είναι ορθογώνια που καταλαμβάνουν μόνο ένα μικρό μέρος της οθόνης. Σε κάθε κινητό Android υπάρχουν εγκατεστημένες από τον κατασκευαστή κάποιες από τις πιο συνήθεις εφαρμογές. Τέτοιες για παράδειγμα είναι: Phone dialer Contacts Web browser Android Market Σελίδα 26

27 Η τελευταία είναι πολύ σημαντική διότι δίνει στον χρήστη τη δυνατότητα να κατεβάσει στη συσκευή του και άλλες εφαρμογές. Οι εφαρμογές του Android Market μπορεί είτε να διανέμονται δωρεάν, είτε να απαιτείται ένα ποσό (συνήθως μικρό) για το κατέβασμά του. Η οποιαδήποτε εταιρία ή προγραμματιστής έχει τη δυνατότητα να ανεβάσει πληρώνοντας απλά ένα μικρό αντίτιμο την εφαρμογή του στο Android Market, δίνοντας την ευκαιρία σε εκατομμύρια χρήστες ανά τον κόσμο να την κατεβάσουν Χρόνος ζωής δραστηριότητας (Activity Lifecycle) Οι εφαρμογές Android λειτουργούν υλοποιώντας διαφορετικές δραστηριότητες (activities). Αυτό είναι πολύ σημαντικό, καθώς αποτελεί τη μέθοδο που χρησιμοποιεί το σύστημα ώστε να χειριστεί κατάλληλα την περιορισμένη μπαταρία ενός κινητού τηλεφώνου. Όταν μία δραστηριότητα ξεκινήσει να εκτελείται τοποθετείται στην κορυφή μίας λίστας και η προηγούμενη δραστηριότητα παραμένει στην ίδια λίστα κάτω από την τρέχουσα και δε θα ξαναέρθει στο προσκήνιο μέχρι να υπάρξει έξοδος από την καινούρια. Στην ουσία μία δραστηριότητα μπορεί να βρίσκεται σε τέσσερεις διαφορετικές καταστάσεις. i. Αν η δραστηριότητα είναι στην κορυφή της στοίβας με αποτέλεσμα να είναι ορατή στην οθόνη, λέμε ότι είναι ενεργεί ή ότι τρέχει. ii. iii. iv. Αν μια δραστηριότητα παραμείνει ορατή, αλλά χάσει την εστίασή της (αυτό μπορεί να συμβεί όταν μία άλλη δραστηριότητα που δεν καλύπτει ολόκληρη την οθόνη ή είναι διάφανη έρθει στο προσκήνιο), τότε λέμε ότι η δραστηριότητα είναι σε παύση (paused). Όταν μία δραστηριότητα είναι σε παύση είναι πλήρως ζωντανή (διατηρεί την κατάσταση και τις πληροφορίες της και παραμένει ορατή), αλλά μπορεί να καταστραφεί από το σύστημα σε περίπτωση που υπάρχει ακραία έλλειψη ελεύθερης μνήμης. Όταν μία δραστηριότητα είναι εντελώς κρυμμένη από μία άλλη τότε λέμε ότι είναι σταματημένη (stopped). Μία σταματημένη δραστηριότητα διατηρεί την κατάσταση και τις πληροφορίες της, αλλά δεν είναι πλέον ορατή στην οθόνη και ενδέχεται να καταστραφεί από το σύστημα αν η μνήμη που απασχολεί χρειαστεί αλλού. Αν μία δραστηριότητα είναι σε παύση ή σταματημένη, τότε μπορεί να αποδεσμευτεί η μνήμη της. Όταν τότε παρουσιαστεί ξανά στον χρήστη πρέπει να επανεκκινηθεί και να επαναφερθεί στην προηγούμενή της κατάσταση. Σελίδα 27

28 Το σχήμα 2.6 αποτελεί ένα διάγραμμα ροής που δείχνει τις βασικές καταστάσεις στις οποίες μπορεί να βρεθεί μία δραστηριότητα. Σχήμα 2.6: Ο κύκλος ζωής μίας δραστηριότητας (Πηγή: Online Android Documentation - Σελίδα 28

29 Τα ορθογώνια του σχήματος 2.6 περιέχουν μεθόδους επανάκλησης τις οποίες ο προγραμματιστής μπορεί να καλέσει για να εκτελέσει διάφορες λειτουργίες όταν η δραστηριότητα κινείται μεταξύ των διαφόρων καταστάσεων. Παρακάτω θα αναφερθούμε στις μεθόδους αυτές ξεχωριστά. oncreate(): Καλείται όταν η δραστηριότητα δημιουργηθεί πρώτη φορά. Εδώ πρέπει ο προγραμματιστής πρέπει να φροντίσει να κάνει το αρχικό σετάρισμα. Η μέθοδος παρέχει επίσης μία δέσμη (Bundle) η οποία περιέχει την προηγούμενη κατάσταση της δραστηριότητας (αν υπήρχε). Πάντα ακολουθείται από την onstart. onrestart(): Καλείται αφού η δραστηριότητα έχει σταματήσει και μόλις πριν αρχίσει ξανά. Πάντα ακολουθείται από την onstart. onstart(): Καλείται όταν η δραστηριότητα γίνει ορατή στον χρήστη. Ακολουθείται από την onresume αν η δραστηριότητα έρθει στο προσκήνιο ή από την onstop όταν γίνει κρυμμένη. onresume(): Καλείται όταν η δραστηριότητα αρχίσει να αλληλεπιδρά με τον χρήστη. Σε αυτό το σημείο η δραστηριότητα είναι στην κορυφή της activity stack και έχει εστίαση. Ακολουθείται πάντα από την onpause(). onpause(): Καλείται όταν το σύστημα είναι έτοιμο να συνεχίσει μία προηγούμενη δραστηριότητα. Εδώ πρέπει να λαμβάνεται μέριμνα ώστε να αποθηκεύονται τα μη αποθηκευμένα δεδομένα και να αποδεσμεύονται οι διεργασίες όπως animation που μπορεί να αταναλώνουν πολύ μνήμη και δεν είναι απαραίτητες όταν η δραστηριότητα είναι αόρατη. Οι κλήσεις αυτής της μεθόδου πρέπει να είναι πολύ γρήγορες, γιατί αλλιώς θα αργήσει να εμφανιστεί η νέα δραστηριότητα. Ακολουθείται είτε από την onresume() αν η δραστηριότητα επιστρέψει στο προσκήνιο ή από την onstop() αν γίνει αόρατη στον χρήστη. onstop(): Καλείται όταν η δραστηριότητα δεν είναι πλέον ορατή στον χρήστη γιατί μία άλλη δραστηριότητα την καλύπτει. Ακολουθείται είτε από την onrestart() αν η δραστηριότητα γίνει ξανά ενεργή ή από την ondestroy αν καταστραφεί. ondestroy(): Η τελευταία κλήση πριν η δραστηριότητα καταστραφεί. Αυτό μπορεί να συμβεί είτε γιατί ο προγραμματιστής την κατάστρεψε μέσω κώδικα ή γιατί το σύστημα την καταστρέφει προσωρινά για να σώσει χώρο. Σελίδα 29

30 Για τη σωστή ανάπτυξη των Android εφαρμογών είναι απαραίτητο να γίνει κατανοητός ο κύκλος ζωής των διεργασιών. Ένας χρήστης μπορεί να διακόψει την τρέχουσα διεργασία πατώντας το κουμπί back στη συσκευή του. Στην περίπτωση αυτή η διεργασία σταματάει και έρχεται στο προσκήνιο η επόμενη που είναι αποθηκευμένη στην στοίβα. Βέβαια ο προγραμματιστής μπορεί να παρακάμψει αυτή τη λειτουργία εάν επιθυμεί. Για παράδειγμα μπορεί να γίνει υλοποίηση ώστε όταν ο χρήστης πιέσει το back να παρουσιάζεται ένα μήνυμα που να ρωτάει τον χρήστη αν θέλει όντως να βγει από την τρέχουσα δραστηριότητα ή να ακυρώσει Android Application Project Εφόσον το Android SDK έχει εγκατασταθεί δίνεται στον χρήστη η δυνατότητα να δημιουργήσει με το Eclipse ένα Android Application Project. Με τη δημιουργία του project δημιουργείται αυτόματα ένα δέντρο αρχείων όπως αυτό του σχήματος 2.7. Σχήμα 2.7: Ένα Android Application Project Όπως βλέπουμε υπάρχει μία πληθώρα φακέλων και αρχείων που απαρτίζουν το project. Τα κυριότερα από αυτά είναι: Σελίδα 30

31 src Περιέχει όλο τον κώδικα Java που δημιουργεί ο προγραμματιστής. Στην ουσία ο φάκελος αυτός περιέχει όλες τις δραστηριότητες που απαρτίζουν την εφαρμογή αλλά και άλλες βοηθητικές Jave κλάσεις που ενδέχεται ο χρήστης να αναπτύξει. gen Περιέχει αρχεία Java τα οποία δημιουργεί αυτόματα το σύστημα για τις ανάγκες της αφαρμογής. Google APIs περιέχει κάποιες βασικές βιβλιοθήκες που χρησιμοποιεί η εφαρμογή bin Περιέχει, εκτός των άλλων, το εκτελέσιμο αρχείο που δημιουργεί η εφαρμογή. Τα εκτελέσιμα αρχεία του Android έχουν κατάληξη.apk και ανανεώνονται κάθε φορά που γίνεται compile. res Περιέχει όλους τους πόρους (resources) του project. Όπως έχει προαναφερθεί, πόρος είναι ότι χρησιμοποιεί η εφαρμογή πέρα από τον ίδιο τον κώδικα. Αυτός ο φάκελος περιέχει διάφορους υποφακέλους: o drawable-hdpi, drawable-ldpi, drawable-mdpi Περιέχουν αρχεία που μπορεί να χρησιμοποιεί η εφαρμογή, όπως εικόνες, ήχος κλπ. o layout Περιέχει κυρίως αρχεία τύπου xml στα οποία ορίζεται το περιεχόμενο της οθόνης σε κάθε δραστηριότητα. Το γεγονός ότι το γραφικό interface στο Android ορίζεται σε ξεχωριστά αρχεία κάνει περισσότερο ευέλικτη την ανάπτυξη, καθώς μπορεί να υλοποιηθούν αλλαγές στο γραφικό περιεχόμενο, χωρίς να χρειάζεται να αλλάξει ο κυρίως κώδικας. o values Το κύριο αρχείο που περιέχει είναι το strings.xml στο οποίο ορίζονται κάποιοι πόροι που θα χρειαστεί να χρησιμοποιήσει η εφαρμογή (κείμενα, χρώματα κλπ). Επίσης στον φάκελο αυτό μπορεί να δημιουργηθούν και άλλα αρχεία που να ορίζουν συγκεκριμένα στυλ γραφικών που υποστηρίζει η εφαρμογή. AndroidManifest.xml Το αρχείο αυτό είναι ιδιαίτερα σημαντικό καθώς ορίζει κάποια βασικά δεδομένα για το project, όπως το ποια έκδοση του Android SDK χρησιμοποιεί. Επίσης εδώ πρέπει να δηλωθούν όλες οι διαφορετικές δραστηριότητες που απαρτίζουν το project και κάποια δικαιώματα που μπορεί να απαιτούνται, όπως η χρήση του internet, η χρήση του Gps κλπ. Παραπάνω αναλύθηκαν οι βασικές πτυχές του Android προγραμματισμού, το πώς ο χρήστης μπορεί να δημιουργήσει ένα project με τη χρήση του Eclipse και τι περιέχει το project αυτό. Η γνώση αυτή είναι απαραίτητη για τη σωστή ανάπτυξη μίας Android εφαρμογής. Η βιβλιογραφία προσφέρει πληθώρα βιβλίων και άρθρων που δίνουν οδηγίες Σελίδα 31

32 για τον προγραμματισμό σε Android. Επίσης η Google έχει δημιουργήσει ένα εξαίσιο online-documentation όπου παρουσιάζονται οι διαθέσιμες τάξεις και βιβλιοθήκες (http://developer.android.com/guide/components/index.html). Τέλος υπάρχουν πολυάριθμα forums στο διαδύκτιο, όπου ο προγραμματιστής μπορεί να βρει πληροφορίες για συγκεκριμένα θέματα. Αξίζει να τονισθεί, ότι το Android SDK δεν είναι κάτι στατικό, αλλά συνεχώς επεκτείνεται με σκοπό την ενσωμάτωση νέων λειτουργιών, αλλά και την αντιμετώπιση σφαλμάτων Εκτέλεση της Android εφαρμογής Αφού δημιουργηθεί μία εφαρμογή ή τμήμα αυτής χωρίς σφάλματα, το Eclipse δίνει τη δυνατότητα άμεσης εκτέλεσής της είτε στον Emulator είτε σε μία πραγματική συσκευή. Στην πρώτη περίπτωση αρκεί να υπάρχει ένας emulator που να τρέχει εκείνη τη στιγμή στον υπολογιστή. Στη δεύτερη πρέπει η συσκευή να είναι συνδεδεμένη στον ηλεκτρονικό υπολογιστή μέσω usb. Στο σχήμα 2.8 παρουσιάζεται το μενού που δίνει στον χρήστη τη δυνατότητα να επιλέξει μεταξύ διαθέσιμων emulators και συσκευών. Σελίδα 32

33 Σχήμα 2.8: Επιλογές εκτέλεσης εφαρμογής Όπως έχει ήδη αναφερθεί, το εκτελέσιμο αρχείο του application είναι ένα αρχείο τύπου.apk το οποίο φέρει το όνομα της εφαρμογής και βρίσκεται στον φάκελο bin του package tree. Το αρχείο αυτό μπορεί να εγκατασταθεί και να εκτελεστεί ξεχωριστά σε μία συσκευή, χωρίς να απαιτείται η χρήση του Eclipse ή κάποιου άλλου περιβάλλοντος ανάπτυξης. Αυτό είναι και το αρχείο που θα ανέβει τελικά και στο Android Market ως τελική εφαρμογή, δίνοντας δυνατότητα σε χρήστες από όλο τον κόσμο να έχουν πρόσβαση σε αυτήν. Σελίδα 33

34 ΚΕΦΑΛΑΙΟ 3: ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PHP 3. Εισαγωγή στην γλώσσα προγραμματισμού PHP Η PHP είναι μία γενικού σκοπού server-side γλώσσα προγραμματισμού που βασίζεται στη δημιουργία scripts και σχεδιάστηκε για τη χρήση της σε διαδυκτιακό προγραμματισμό και την παραγωγή δυναμικών ιστοσελίδων. Στα πλαίσια της εργασίας η τα PHP scripts χρησιμοποιήθηκαν ως οι ενδιάμεσοι κρίκοι μεταξύ της Android εφαρμογής και της βάσης δεδομένων του Open eclass. Για το λόγο αυτό κρίνεται σκόπιμο να γίνει μία σύντομη περιγραφή της γλώσσας ώστε να είναι κατανοητή η χρήση της στην αναπτυχθείσα εφαρμογή. Στο παρόν κεφάλαιο δε δίνεται βάρος στην ανάπτυξη ιστοσελίδων μέσω PHP, καθώς αυτή η λειτουργία δεν χρησιμοποιήθηκε στα πλαίσια της εργασίας. Αντίθετα γίνεται εστίαση στο πως χρησιμοποιείται η γλώσσα για τη δημιουργία απλών web-services και τον χειρισμό βάσεων δεδομένων σε συνδυασμό με την MySql Γενικές πληροφορίες Η PHP αρχικά αναπτύχθηκε από τον Rasmus Lerdorf το Ο Lerdorf την ανέπτυξε με σκοπό να ικανοποιήσει την ανάγκη ύπαρξης ενός εύχρηστου τρόπου επεξεργασίας δεδομένων κατά τη δημιουργία ιστοσελίδων για τον παγκόσμιο ιστό. Αρχικά PHP σήμαινε Personal Home Page και κυκλοφόρησε ως ένα project ανοικτού λογισμικού. Με την πάροδο των χρόνων η PHP υπέστη επανεπεξεργασία με σκοπό την ικανοποίηση των αναγκών των χρηστών και το 1997 μετονομάστηκε στο σημερινό PHP: Hypertext Processor. H PHP χρησιμοποιείται γενικά ως server-side scripting γλώσσα προγραμματισμού, η οποία παρέχει τη δυνατότητα υποστήριξης interfaces όπως η MySql για τον χειρισμό βάσεων δεδομένων. Με τον τρόπο αυτό μπορεί να χρησιμοποιηθεί τόσο για απλές προσωπικές ιστοσελίδες, όσο και για περίπλοκες εμπορικές εφαρμογές. Μεγάλες και ιδιαίτερα δημοφιλείς ιστοσελίδες, όπως το Facebook ή η Wikipedia έχουν αναπτυχθεί με τη συμβολή της PHP. Επειδή η PHP είναι μίαν server-side γλώσσα προγραμματισμού, απαιτεί την ύπαρξη ενός server στον ηλεκτρονικό υπολογιστή για να λειτουργήσει. Στα πλαίσια της εργασίας χρησιμοποιήθηκε το πακέτο XAMPP το οποίο εκτός από την ίδια την PHP και την MySql Σελίδα 34

35 περιέχει και τον server apache. Με αυτόν τον τρόπο το XAMPP αποτελεί έναν εύκολο τρόπο εγκατάστασης όλων των εργαλείων που απαιτούνται ώστε η PHP να είναι λειτουργική. Μία σύντομη περιγραφή του XAMPP έγινε στο κεφάλαιο 1. Το Eclipse IDE παρέχει τη δυνατότητα ενσωμάτωσης της PHP. Πάντως PHP scripts μπορούν να γραφτούν και σε έναν απλό text editor όπως το notepad Συγγραφή και εκτέλεση ενός απλού προγράμματος σε PHP Εφόσον το XAMPP είναι εγκατεστημένο η χρήση της PHP γίνεται ιδιαίτερα εύκολη. Το XAMPP δημιουργεί έναν τοπικό Apache web server στο localhost του υπολογιστή. Έτσι πληκτρολογώντας απλά σε οποιονδήποτε web browser ο χρήστης οδηγείται στην αρχική σελίδα του XAMPP (σχήμα 3.1). Σχήμα 3.1: Η αρχική σελίδα του XAMPP Σελίδα 35

36 Από τη σελίδα αυτή ο χρήστης μπορεί να παραμετροποιήσει τον server, να βρει online documentation και να επιθεωρήσει τις βάσεις δεδομένων μέσω του εργαλείου phpmyadmin. Για τη συγγραφή ενός προγράμματος σε PHP δεν απαιτείται καμιά ιδιαίτερη προεργασία. Ο προγραμματιστής μπορεί να γράψει το παρακάτω πρόγραμμα σε οποιονδήποτε text editor (πχ notepad). <?php Echo "This is a simple PHP script!";?> Για να μπορεί να εκτελεστεί το παραπάνω πολύ απλό PHP πρόγραμμα απαιτείται να πληρούνται μόνο δύο προϋποθέσεις: Να αποθηκευτεί ως αρχείο PHP, δηλαδή με την κατάληξη.php. Στη συγκεκριμένη περίπτωση αποθηκεύτηκε ως simple.txt Να αποθηκευτεί στον υποφάκελο htdocs του κυρίως φακέλου xampp. O φάκελος xampp δημιουργείται κατά την εγκατάσταση του XAMPP σε κάποια τοποθεσία που θα επιλέξει ο χρήστης Εφόσον ικανοποιούνται οι παραπάνω κανόνες ο προγραμματιστής μπορεί απλά να ανοίξει τον web browser της επιλογής (πχ internet explorer ή Google chrome) του και να πληκτρολογήσει τη διεύθυνση To αποτέλεσμα παρουσιάζεται στο σχήμα 3.2 Σχήμα 3.2: Εκτέλεση του simple.php Σελίδα 36

37 Ο web-browser αναγνωρίζει από την κατάληξη.php ότι πρέπει να εκτελέσει κώδικα php, ενώ από τη διεύθυνση url αναγνωρίζει ποιο αρχείο πρέπει να φορτώσει και σε ποιον φάκελο θα το βρει. Το παραπάνω PHP script είναι εξαιρετικά απλό. Αρχική η ετικέτα <?php ορίζει ότι ακολουθεί κώδικας γραμμένος σε PHP. Η εντολή Echo απλώς εκτυπώνει την φράση που ακολουθεί και το κλείσιμο της ετικέτας με τους χαρακτήρες?> ορίζει ότι το PHP πρόγραμμα τελείωσε. Όπως βλέπουμε με την προϋπόθεση ότι το XAMPP είναι εγκατεστημένο η συγγραφή και εκτέλεση ενός PHP script είναι εξαιρετικά απλή και δεν απαιτεί την εγκατάσταση επιπλέον προγραμμάτων. Παρόλα αυτά συνίσταται η χρήση της PHP με έναν editor περισσότερο εξελιγμένο και εξειδικευμένο ώστε να είναι ευκολότερη η αποσφαλμάτωση και η ανάπτυξη πολύπλοκων προγραμμάτων. Το Eclipse IDE σε συνδυασμό με την εγκατάσταση των κατάλληλων plug-ins, δίνει τη δυνατότητα συγγραφής προγραμμάτων PHP σε ένα ιδιαίτερα εύχρηστο περιβάλλον Η χρήση του συστήματος MySql Όπως περιγράφηκε στο κεφάλαιο 1, το Open eclass αποθηκεύει όλα τα απαραίτητα για τη λειτουργία του δεδομένα σε μία ή περισσότερες βάσεις δεδομένων. Σχεδόν κάθε λειτουργία που διενεργείται στην πλατφόρμα αλληλεπιδρά με τις βάσεις αυτές. Οπότε για την ανάπτυξη μία mobile εφαρμογής που να υλοποιεί λειτουργίες του eclass, είναι απαραίτητη η δυνατότητα χειρισμού των συγκεκριμένων βάσεων δεδομένων. Ο χειρισμός των βάσεων δεδομένων από την PHP μπορεί να γίνει μέσω του συστήματος διαχείρισης βάσεων δεδομένων MySQL. Το MySQL είναι ένα ανοιχτού λογισμικού σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων. Βασίζεται στην γλώσσα προγραμματισμού SQL, η οποία χρησιμοποιείται για την εισαγωγή, διαγραφή και μετατροπή δεδομένων στη βάση. Η γλώσσα SQL χρησιμοποιεί μερικές απλές εντολές οι οποίες επιτρέπουν την αλληλεπίδραση με τη βάση. Οι πιο σημαντικές από αυτές θα εξεταστούν παρακάτω. Σελίδα 37

38 Η εντολή CREATE Η εντολή CREATE χρησιμοποιείται για τη δημιουργία ενός πίνακα στη βάση δεδομένων. Για παράδειγμα η παρακάτω εντολή δημιουργεί έναν πίνακα με τρεις στήλες: "CREATE TABLE mytable( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), age INT)" Ο πίνακας mytable αποτελείται από τις στήλες id, name και age. Μαζί με το όνομα κάθε στήλης δηλώνεται και ο τύπος των δεδομένων που περιέχει. Η στήλη id αποτελεί πρωτεύον κλειδί, που σημαίνει ότι δεν γίνεται δύο γραμμές του πίνακα να έχουν το ίδιο id. Γενικά θεωρείται απαραίτητο στη θεωρία των βάσεων δεδομένων να έχει κάθε πίνακας ένα πρωτεύον κλειδί, ώστε να είναι δυνατός ο διαχωρισμός των δεδομένων. Η εντολή CREATE δε χρησιμοποιήθηκε στην εφαρμογή, καθώς η βάση που δημιουργεί αυτόματα το Open eclass περιέχει όλους τους απαραίτητους πίνακες Η εντολή DROP Η εντολή DROP χρησιμοποιείται για να σβήσει έναν πίνακα από τη βάση. Για παράδειγμα ο πίνακας mytable που δημιουργήθηκε με τον κώδικα του προηγουμένου παραδείγματος μπορεί να σβηστεί με την παρακάτω εντολή: DROP TABLE mytable Η παραπάνω εντολή θα σβήσει τον πίνακα και όλα τα περιεχόμενά του. Η εντολή DROP δε χρησιμοποιήθηκε στην αναπτυχθείσα εφαρμογή καθώς δεν ήταν αναγκαίο το σβήσιμο κάποιου από τους πίνακες που δημιουργεί το Open eclass. Σελίδα 38

39 Η εντολή SELECT Η εντολή SELECT χρησιμοποιείται για την επιλογή δεδομένων από τη βάση. Για παράδειγμα η παρακάτω εντολή: SELECT * FROM mytable επιστρέφει όλες τις γραμμές του πίνακα. Επίσης είναι δυνατό να επιλεχθούν συγκεκριμένες στήλες και υπό συγκεκριμένες συνθήκες με τη χρήση της εντολής WHERE. Για παράδειγμα η: SELECT name FROM mytable WHERE age>18 θα επιλέξει μόνο το περιεχόμενο της στήλης name και μόνο για τις γραμμές όπου η ηλικία είναι μεγαλύτερη του 18. Η εντολή SELECT χρησιμοποιήθηκε σε όλες τις περιπτώσεις όπου χρειαζόταν να διαβαστούν τα στοιχεία ενός πίνακα. Για παράδειγμα στο Login απαιτείται να ελεγχθεί αν το ζεύγος username και κωδικού που δόθηκε υπάρχει στον πίνακα user Η εντολή INSERT Η εντολή INSERT χρησιμοποιείται για την εισαγωγή νέων δεδομένων σε έναν πίνακα της βάσης. Για παράδειγμα η εντολή: INSERT INTO mytable (name, age) VALUES( Andreas, 30 ) εισάγει μία νέα γραμμή στον πίνακα όπου οι στήλες name και age παίρνουν τις τιμές Andreas και 30 αντίστοιχα. Να σημειωθεί ότι δεν είναι δυνατό να εισαχθεί μέσω της Σελίδα 39

40 εντολής INSERT τιμή στην στήλη id, καθώς αυτή αποτελεί πρωτεύον κλειδί και συμπληρώνεται αυτόματα από το σύστημα. Η εντολή INSERT χρησιμοποιήθηκε σε όλες της περιπτώσεις που απαιτούνταν η εγγραφή δεδομένων στη βάση, όπως για παράδειγμα στη δημιουργία ενός νέου χρήστη Η εντολή DELETE Η εντολή DELETE χρησιμοποιείται για τη διαγραφή δεδομένων από έναν πίνακα. Για παράδειγμα η εντολή: DELETE FROM mytable WHERE name='andreas' θα σβήσει το στοιχείο που εισήχθη στο προηγούμενο παράδειγμα. Η εντολή DELETE χρησιμοποιήθηκε σε όλες τις περιπτώσεις όπου απαιτήθηκε διαγραφή στοιχείων, όπως για παράδειγμα στην απεγγραφή του χρήστη από κάποιο μάθημα Η εντολή UPDATE H εντολή UPDATE χρησιμοποιείται για την αλλαγή της τιμής ενός στοιχείου του πίνακα. Για παραδειγμα η εντολή: UPDATE example SET age='18' WHERE id='1' Θα θέση την τιμή της στήλης age στην γραμμή όπου το id είναι ίσο με ένα, ίση με 18. Η παλιά τιμή που υπήρχε στο συγκεκριμένο σημείο θα σβηστεί. Η εντολή UPDATE χρησιμοποιήθηκε σε περιπτώσεις που απαιτούνταν αλλαγές στα στοιχεία της βάσης Η χρήση της MySql από τα PHP scripts Σελίδα 40

41 Παραπάνω είδαμε μερικές από τις βασικές SQL εντολές που χρησιμοποιεί το σύστημα διαχείρισης MySql ώστε να αλληλεπιδράσει με μία βάση δεδομένων. Η PHP παρέχει μερικές πολύ εύχρηστες βιβλιοθήκες ώστε να είναι δυνατό να χρησιμοποιηθούν οι παραπάνω εντολές σε ένα script. Οι πιο σημαντικές παρουσιάζονται παρακάτω. mysql_connect Ανοίγει μία MySql σύνδεση. Δέχεται ως παραμέτρους το url του server ( localhost αν πρόκειται για τοπικό server), το username του διαχειριστή της βάσης δεδομένων στο εργαλείο phpmyadmin του XAMPP και το password του διαχειριστή. mysql_select_db Επιλέγει τη βάση δεδομένων την οποία θέλουμε να επεξεργαστούμε. Δέχεται ως όρισμα το όνομα της βάσεως δεδομένων. mysql_query Εκτελεί ένα ερώτημα SQL. Δέχεται ως παράμετρο το ερώτημα SQL, που είναι μία από τις εντολές που εξεταστήκαν στην προηγούμενη παράγραφο. mysql_fetch_array Επιστρέφει τις γραμμές που επιστράφηκαν από την εκτέλεση μίας εντολής INSERT. Δέχεται ως όρισμα το αποτέλεσμα της mysql_query. mysql_num_rows - Επιστρέφει των αριθμό των γραμμών που επιστράφηκαν από την εκτέλεση μίας εντολής INSERT. Δέχεται ως όρισμα το αποτέλεσμα της mysql_query. mysql_free_result Αποδεσμεύει τη μνήμη του αποτελέσματος της εκτέλεσης της SQL εντολής. Δέχεται ως όρισμα το αποτέλεσμα της mysql_query. mysql_close Κλείνει την MySql σύνδεση. Δέχεται ως όρισμα το αποτέλεσμα της mysql_connect Κλήση ενός PHP script από έναν client Με βάση τα παραπάνω στα πλαίσια της υπό ανάπτυξη εφαρμογής αναπτύχθηκαν PHP scripts τα οποία είχαν ως λειτουργία την αλληλεπίδραση με τις βάσεις δεδομένων του eclass, με την παροχή ή την επεξεργασία στοιχείων. Αυτά τα script τοποθετούνται στον server και μπορούν να κληθούν από όποιον client τα χρειαστεί. Στην περίπτωσή μας ο client ήταν η Android εφαρμογή η οποία υλοποιεί τις λειτουργίες του eclass. Η κλήση ενός script γίνεται απευθείας μέσω του url. Όπως αναφέραμε στην παράγραφο 3.2 η κλήση του simple.php μπορεί να γίνει με την πληκτρολόγηση στον browser της διεύθυνσης url H κλήση μέσω του Android Σελίδα 41

42 προγράμματος είναι παρόμοια, αλλά διαφέρει στο ότι το Android SDK δεν μπορεί να χρησιμοποιήσει τη λέξη localhost, η οποία πρέπει να αντικατασταθεί από την IP διεύθυνση του Android VM, που είναι Οπότε μέσα από τον κώδικα Android η κλήση θα είναι της μορφής Προφανώς αν ο server ήταν κάπου ανεβασμένος στο interntet θα απαιτούνταν η url διεύθυνσή του Πέρασμα παραμέτρων σε ένα PHP script μέσω του url Σε πολλές περιπτώσεις είναι επιθυμητό να κληθεί ένα script δίνοντας κατά την κλήση συγκεκριμένες τιμές σε παραμέτρους. Ως ευέλικτη γλώσσα η PHP παρέχει πολλές μεθόδους για το πέρασμα τιμών σε ένα PHP script. Μια από τις πιο συνηθισμένες και αυτή που χρησιμοποιήθηκε στην αναπτυχθείσα εφαρμογή, είναι ο καθορισμός των τιμών μέσω του url. Έστω ότι για παράδειγμα έχουμε ένα το αρχείο login.php το οποίο δέχεται ένα username και ένα password και τα χειρίζεται μετά ώστε να διαπιστώσει αν υπάρχουν στη βάση δεδομένων (με μία εντολή SELECT). Ας θεωρήσουμε για χάριν απλότητας ότι ο κωδικός δεν είναι κρυπτογραφημένος. Η διεύθυνση url γράφεται κανονικά με το όνομα του αρχείου ακολουθούμενο από την κατάληξη.php. Έπειτα προστίθεται το? το οποίο γνωστοποιεί στον server ότι ακολουθούν παράμετροι. Σε κάθε παράμετρο γράφεται το όνομά της, το οποίο πρέπει να είναι το ίδιο όπως η μεταβλητή είναι δηλωμένη στο script το σύμβολο της ισότητας = και η τιμή που θέλουμε να δώσουμε. Οι διαφορετικές μεταβλητές χωρίζονται με το σύμβολο &. Έτσι αν στο παράδειγμά μας το php script περιμένει δύο τιμές για τις μεταβλητές username και password η παρακάτω διεύθυνση θα το εκτελέσει δίνοντας τις τιμές Andreas και abc123 αντίστοιχα. Για να γίνει κλήση στον localhost από την Android εφαρμογή, απαιτείται απλά να αντικατασταθεί η λέξη localhost από το Η PHP παρέχει τη βιβλιοθήκη GET με την οποία μπορούν να διαβαστούν οι τιμές που ορίστηκαν και να αποδοθούν στις μεταβλητές του script. Με αυτή τη μέθοδο δίνεται η δυνατότητα ορισμού πολλών μεταβλητών οποιουδήποτε τύπου. Σελίδα 42

43 3.7. Ανταλλαγή δεδομένων με κωδικοποίηση JSON Στην προηγούμενη παράγραφο εξετάσαμε το πώς δίνονται τιμές σε ένα PHP script κατά την κλήση του. Όμως είναι πολύ σημαντικό και το να μπορεί ο client να διαβάσει την απάντηση του server. Γενικά σε μία server-client επικοινωνία χρησιμοποιούνται δύο μέθοδοι κωδικοποίησης των δεδομένων, η XML και η JSON. Και οι δύο θεωρούνται αποτελεσματικές και βρίσκουν χρήση σε πληθώρα εφαρμογών. Όμως στις εφαρμογές κινητής τηλεφωνίες, η κωδικοποίηση JSON προτιμάται καθώς έχει μεγαλύτερη αποδοτικότητα στην οικονομία της μνήμης, χαρακτηριστικό που είναι σημαντικό για τις κινητές συσκευές όπου υπάρχουν περιορισμοί. Η λέξη JSON προέρχεται από τα αρχικά του JavaScript Object Notation και ένα ανοιχτό text-based πρότυπο, το οποίο σχεδιάστηκε για ανταλλαγή δεδομένων με τρόπο που τόσο ο άνθρωπος όσο και οι υπολογιστές να μπορούν να αναγνώσουν. Η κωδικοποίηση JSON ορίστικε αρχικά από τον Douglas Crockford και περιγράφεται στο RFC Προήλθε από τη γλώσσα προγραμματισμού JavaScript με σκοπό την αναπαράσταση απλών δομών δεδομένων και συνειρμικών πινάκων. Παρά την καταγωγή της από την JavaScript, είναι πλέον ανεξάρτητη της γλώσσας προγραμματισμού και πάρα πολλές γλώσσες παρέχουν μεθόδους για τον χειρισμό JSON δεδομένων. Το JSON δημιουργεί αντικείμενα (JSON objects) που περιέχουν πληροφορίες. Σε κάθε δεδομένο αντιστοιχεί μία ετικέτα και η ίδια η τιμή. Το όνομα της ετικέτας βρίσκεται μέσα σε εισαγωγικά και χωρίζεται από την τιμή με το σύμβολο :. Τα διαφορετικά δεδομένα χωρίζονται με κόμμα, ενώ όλο το αντικείμενο περικλείεται από αγκύλες ( {} ). Για παράδειγμα έστω ότι έχουμε ένα JSON αντικείμενο που περιέχει ένα όνομα και μία ηλικία. Αυτό μπορεί να είναι της μορφής: { name : Andreas, age : 30} Βλέπουμε ότι τα δεδομένα μπορεί να είναι οποιουδήποτε τύπου. Εκτός από απλά αντικείμενα το JSON μπορεί α χειρίζεται και πίνακες αντικειμένων (JSON Arrays). Ένας πίνακας αντικειμένων JSON μπορεί να περιέχει πολλά αντικείμενα όπως αυτό παραπάνω τα οποία χωρίζονται με κόμμα. Όλος ο πίνακας περικλείεται από αγκύλες ( [] ). Για Σελίδα 43

44 παράδειγμα παρακάτω έχουμε έναν πίνακα από τρία αντικείμενα του προηγουμένου παραδείγματος. [{ name : Andreas, age : 30}, { name : John, age : 28}, { name : Maria, age : 29}] H PHP παρέχει τη βιβλιοθήκη json_encode, η οποία δέχεται ως όρισμα έναν πίνακα και τον κωδικοποιεί ως αντικείμενο JSON. Το Android SDK παρέχει μέσω των βιβλιοθηκών org.json.jsonobject και org.json.jsonarray πολλές μεθόδους για τον χειρισμό JSON αντικειμένων και πινάκων αντίστοιχα. Η κωδικοποίηση JSON χρησιμοποιήθηκε στην αναπτυχθείσα εφαρμογή, οποτεδήποτε απαιτούνταν λήψη στοιχείων από τη βάση δεδομένων του eclass. Ένα PHP script ανακτά τα δεδομένα από τη βάση και τα επιστρέφει σε μορφή JSON. Επίσης χρησιμοποιήθηκε για την ανταλλαγή απλών μηνυμάτων που συνηθίζεται να χρησιμοποιούνται στο networking (για παράδειγμα success ή failure ). Σελίδα 44

45 ΚΕΦΑΛΑΙΟ 4: ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ 4. Σχεδίαση και υλοποίηση της εφαρμογής 4.1. Αρχιτεκτονική συστήματος Κάθε πληροφοριακό σύστημα χαρακτηρίζεται από την ροή δεδομένων που διεξάγεται σε αυτό. Στην παρούσα εφαρμογή υπάρχει ροή δεδομένων μεταξύ τριών βασικών οντοτήτων: i. Βάσεις δεδομένων Open eclass ii. PHP scripts iii. Android application Όπως εξηγήθηκε δεν είναι δυνατόν μία εξωτερική εφαρμογή να έχει άμεση πρόσβαση στη βάση δεδομένων του server. Για τον λόγο αυτό χρησιμοποιούνται ως ενδιάμεσοι τα PHP scripts παρέχοντας πληροφορίες από τη βάση ή γράφοντας σε αυτήν. Η απλή αυτή αρχιτεκτονική παρουσιάζεται σχηματικά στο σχήμα 4.2. Η Android εφαρμογή ως client του συστήματος εκκινεί κάθε φορά τη διαδικασία κάνοντας κλήση σε κάποιο PHP script. Η κλήση μπορεί να περιέχει και τον ορισμό κάποιον παραμέτρων εάν αυτό είναι απαραίτητο. Το PHP script εκτελείται και αλληλεπιδρά με τη βάση δεδομένων κάνοντας χρήση του συστήματος διαχείρισης MySql. Οι πληροφορίες που ανακτώνται από τη βάση επιστρέφονται στην συσκευή η οποία μπορεί να τις χρησιμοποιήσει για την υλοποίηση των διαφόρων δραστηριοτήτων. Αξίζει να σημειωθεί ότι είναι πολύ σημαντικό το γεγονός ότι η Android εφαρμογή αλληλεπιδρά (έμμεσα) με την ίδια τη βάση που αλληλεπιδρά το eclass όπως παρέχεται από την ομάδα GUNet. Προφανώς αν ο χρήστης εκτελέσει κάποια αλλαγή μέσω της κινητής εφαρμογής (πχ εγγραφεί σε ένα μάθημα), αυτή η αλλαγή θα υφίσταται και όταν εισέλθει στο σύστημα μέσω του ηλεκτρονικού του υπολογιστή και κάποιου browser. Σελίδα 45

46 Σχήμα 4.1: Αρχιτεκτονική του συστήματος 4.2. Βασικές αρχές Στην ανάπτυξη της εφαρμογής χρησιμοποιήθηκαν κάποιες βασικές αρχές πολλές από τις οποίες είναι συνήθεις στην ανάπτυξη εφαρμογών φορητών συσκευών με περιορισμένες δυνατότητες. Η εφαρμογή έχει εύχρηστο user interface Στις εφαρμογές έξυπνων συσκευών λαμβάνεται πάντα μέριμνα ώστε όλο το περιεχόμενο να είναι ορατό σε κάθε συσκευή. Για παράδειγμα αν μία συσκευή έχει μικρότερη οθόνη από κάποια άλλη υπάρχει ο κίνδυνος κάποιο κουμπί στο κάτω μέρος της οθόνης να μην είναι προσβάσιμο. Κάτι τέτοιο μπορεί να αντιμετωπιστεί με τη χρήση της κάθετης κύλισης (scrolling), έτσι ώστε ακόμη και αν δε χωράει όλο το περιεχόμενο στην οθόνη, ο χρήστης θα έχει πάντα πρόσβαση σε αυτό. Επίσης, είναι σημαντικό το user interface να είναι εύκολο στην κατανόησή του δίνοντας τη δυνατότητα στον χρήστη να κατανοήσει τον τρόπο λειτουργίας και το πώς μπορεί να εκτελέσει μία ενέργεια. Όλο το networking εκτελείται στο background Πολλές φορές η αλληλεπίδραση εφαρμογών με το διαδίκτυο μπορεί να είναι αργή λόγω προβλημάτων στη σύνδεση. Αυτό δημιουργεί το πρόβλημα ότι ενδέχεται μία εφαρμογή να είναι απασχολημένη προσπαθώντας να βρει πρόσβαση στο internet και αυτό να την καταστήσει προσωρινά μη αποκρίσιμη. Για την αντιμετώπιση αυτής της δυσκολίας το Android SDK προσφέρει την κλάση AsyncTask η οποία δίνει τη δυνατότητα υλοποίησης διαδικασιών στο background ώστε να μην επηρεάζεται το user interface. Στην εφαρμογή λήφθηκε μέριμνα ώστε όλες οι κλήσεις σε PHP scripts να γίνονται στο Σελίδα 46

47 παρασκήνιο με αποτέλεσμα ο χρήστης να μπορεί να αλληλεπιδράσει με το interface (για παράδειγμα να πατήσει ένα κουμπί ή το πίσω), ακόμη και όταν η εφαρμογή προσπαθεί εκείνη την στιγμή να προσεγγίσει το διαδίκτυο. Όλα τα δεδομένα λαμβάνονται από τον server σε μορφή JSON - Η μορφή JSON αναλύθηκε στο προηγούμενο κεφάλαιο και χρησιμοποιείται σε εφαρμογές που εκτελούν server-client επικοινωνία. Ιδιαίτερα σε εφαρμογής κινητών συσκευών η χρήση του JSON συνίσταται, καθώς μειώνει τις απαιτήσεις σε μνήμη. Τα δεδομένα αποθηκεύονται πρόσκαιρα στο κινητό και αποδεσμεύονται τη στιγμή που δεν είναι πλέον απαραίτητα - Αυτό γίνεται για να μην επιβαρύνεται η μνήμη της συσκευής με επιπλέον δεδομένα. Έχει όμως το αρνητικό ότι δεν μπορεί να υπάρξει χρήση της εφαρμογής σε περίπτωση μη σύνδεσης στο internet. Η εφαρμογή είναι χωρισμένη σε δραστηριότητες Στον κεφάλαιο 2 αναλύθηκε ο τρόπος που οι Android εφαρμογές χωρίζονται σε δραστηριότητες. Στην εφαρμογή του mobile eclass όλες οι διαφορετικές οθόνες στις οποίες μπορεί να περιηγηθεί ο χρήστης αποτελούν διαφορετικές δραστηριότητες της οποίες ενεργοποιεί μέσω κάποιας διεπαφής. Ο χρήστης μπορεί να κλείσει την τρέχουσα δραστηριότητα πιέζοντας το πλήκτρο back της συσκευής, ενεργοποιώντας ξανά την προηγούμενη δραστηριότητα Δραστηριότητες της Android εφαρμογής Στα σχήματα 4.2 και 4.3 παρουσιάζεται το διάγραμμα ροής των δραστηριοτήτων (activities) της εφαρμογής (το διάγραμμα χωρίστηκε σε δύο σχήματα για λόγους χώρου). H εφαρμογή ξεκινάει όταν ο χρήστης πιέσει στην Android συσκευή το εικονίδιό της. Παρακάτω γίνεται μία σύντομη περιγραφή των διαφορετικών οθονών στις οποίες μπορεί να περιηγηθεί ο χρήστης, ενώ στα διαγράμματα φαίνεται πώς γίνεται η πρόσβαση σε κάθε σελίδα. Σελίδα 47

48 Σχήμα 4.2: Διάγραμμα ροής της Android εφαρμογής (μέρος 1) Το Main Page της εφαρμογής δίνει στον χρήστη δύο δυνατότητες, είτε να κάνει login ή να δημιουργήσει έναν καινούριο λογαριασμό Σελίδα 48

49 Η δραστηριότητα Create Account παρουσιάζει μία φόρμα όπου ο χρήστης δίνει τα απαραίτητα στοιχεία. Σε περίπτωση επιτυχημένης εγγραφής, ο χρήστης οδηγείται αυτόματα στη δραστηριότητα Login. Η δραστηριότητα Login παρουσιάζει μία φόρμα όπου ο χρήστης καλείται να συμπληρώσει το username και το password του. Σε περίπτωση επιτυχούς ταυτοποίησης των στοιχείων ο συνδεδεμένος πλέον χρήστης οδηγείται στη δραστηριότητα Main Menu. Στην δραστηριότητα Main Menu, ο χρήστης λαμβάνει ένα μήνυμα που τον καλωσορίζει στην πλατφόρμα. Οι αρχικές επιλογές που δίνονται είναι τρεις: Να δει τις ανακοινώσεις των μαθημάτων στα οποία είναι γραμμένος, να βρει διαθέσιμα μαθήματα και να περιηγηθεί στα μαθήματα στα οποία είναι ήδη συνδεδεμένος. Στην δραστηριότητα Announcements ο χρήστης μπορεί να δει τις ανακοινώσεις όλων των μαθημάτων στα οποία είναι γραμμένος. Αυτό κρίθηκε σκόπιμο, καθώς η επισκόπηση των ανακοινώσεων είναι η πρώτη λειτουργία που θα επιθυμεί κάποιος να κάνει μέσω της έξυπνης συσκευής του. Πατώντας με το δάχτυλο σε μία ανακοίνωση ο χρήστης μπορεί να δει το περιεχόμενό της. Πιέζοντας το κουμπί Find Lessons ο εκτελείται η δραστηριότητα Lessons η οποία παρουσιάζει όλα τα διαθέσιμα μαθήματα. Επιλέγοντας ένα μάθημα ο χρήστης μπορεί να εγγραφεί σε αυτό ή να απεγγραφεί από αυτό. Στην δραστηριότητα My Lessons ο χρήστης βλέπει τη λίστα με όλα τα μαθήματα στα οποία είναι εγγεγραμμένος. Επιλέγοντας κάποιο από αυτά του δίνεται η δυνατότητα να περιηγηθεί στη σελίδα του μαθήματος. Η δραστηριότητα Lesson Site δεν αναφέρεται σε κάποια ιστοσελίδα στο internet, αλλά στη σελίδα ενός μαθήματος, έτσι όπως αυτή ορίζεται στην εφαρμογή. Στον χρήστη παρουσιάζονται πέντε επιλογές: να δει τις ανακοινώσεις, να δει τις εργασίες, να δει και να κατεβάσει τα διαθέσιμα αρχεία, να δει την ατζέντα του μαθήματος και να εισέλθει στο φόρουμ. Η ροή της πλοήγησης από αυτή τη δραστηριότητα και έπειτα παρουσιάζεται στο σχήμα 4.3. Σελίδα 49

50 Σχήμα 4.3: Διάγραμμα ροής της Android εφαρμογής (μέρος 2) H δραστηριότητα Lesson Announcements έχει παρόμοια λειτουργικότητα με την Announcements που περιγράφηκε παραπάνω, αλλά η διαφορά είναι ότι παρουσιάζει μόνο τις ανακοινώσεις του συγκεκριμένου μαθήματος. Η δραστηριότητα Lesson Assignments παρουσιάζει τη λίστα με τις εργασίες του μαθήματος. Στην Agenda παρουσιάζονται τα events που υφίστανται στην agenda του μαθήματος. Επιλέγοντας ένα event, ο χρήστης μπορεί να δει το περιεχόμενό του. Σελίδα 50

51 Στην δραστηριότητα Lesson Files ο χρήστης λαμβάνει μία λίστα με τα αρχεία που είναι ανεβασμένα για το συγκεκριμένο μάθημα. Επιλέγοντας ένα αρχείο μπορεί να το αποθηκεύσει στην συσκευή του. Στην δραστηριότητα Lesson Forums παρουσιάζονται οι ομαδικές συζητήσεις του μαθήματος. Επιλέγοντας μία ο χρήστης μπορεί να δει τα διαφορετικά θέματα. Στην δραστηριότητα Forum Topics παρουσιάζονται οι θεματικές ενότητες του συγκεκριμένου φόρουμ. Επιλέγοντας μία ο χρήστης μπορεί να δει τις αναρτήσεις που έχουν γίνει σε κάθε θέμα. Στην δραστηριότητα Posts ο χρήστης βλέπει τις αναρτήσεις του φόρουμ. Επιλέγοντας μία μπορεί να δει το περιεχόμενο και δίνεται η δυνατότητα να αναρτήσει μία απάντηση αν το επιθυμεί. Στην δραστηριότητα Enter Reply Text, παρουσιάζεται στον χρήστη ένα πεδίο όπου μπορεί να συμπληρώσει το κείμενο της απάντησης. Αφού συμπληρώσει το κείμενο δίνονται οι επιλογές done όπου η απάντηση αναρτάται στο φόρουμ και cancel όπου η όλη διαδικασία ακυρώνεται χωρίς να αναρτηθεί τίποτα. Στα σχήματα 4.2 και 4.3 αναπαρίσταται με βέλη η ροή της πλοήγησης. Αξίζει να σημειωθεί ότι σε κάθε βέλος ισχύει και η ροή προς τα πίσω, καθώς η πίεση του πλήκτρου back της συσκευής κλείνει την τρέχουσα δραστηριότητα και η ροή επιστρέφει σε αυτήν η οποία την κάλεσε. Στην επόμενη παράγραφο θα ασχοληθούμε με κάθε δραστηριότητα αναλυτικότερα Παράδειγμα υλοποίησης δραστηριότητας Η αναπτυχθείσα εφαρμογή θα παρουσιαστεί εκτενώς στο επόμενο κεφάλαιο. Στην παρούσα παράγραφο όμως θα δοθεί ένα παράδειγμα υλοποίησης. Προφανώς η διδασκαλία των γλωσσών προγραμματισμού ξεπερνά τα όρια του παρόντος συγγράμματος. Σκοπός είναι να μπορέσει ο αναγνώστης να κατανοήσει τις βασικές αρχές του προγραμματισμού σε Android και PHP και το πώς αυτές χρησιμοποιήθηκαν στο συγκεκριμένο project. Στην προτεινόμενη βιβλιογραφία υπάρχουν προτάσεις για όποιον επιθυμεί να ασχοληθεί εκτενώς με το θέμα. Σελίδα 51

52 Η δραστηριότητα που θα αναλυθεί είναι η Login η οποία χειρίζεται τη σύνδεση του χρήστη στο σύστημα. Το σενάριο χρήσης είναι απλό: ο χρήστης δίνει σε μία φόρμα το username και το password του και η εφαρμογή στέλνει τις τιμές αυτές στο checklogin.php, το οποίο με τη σειρά του ελέγχει αν το συγκεκριμένο ζευγάρι τιμών υπάρχει στη βάση δεδομένων του eclass. Το PHP script επιστρέφει την απάντηση στην εφαρμογή, η οποία δρα αναλόγως Ορισμός γραφικού περιεχομένου Το γραφικός περιεχόμενο της δραστηριότητας ορίζεται στο login.xml που τοποθετείται στον φάκελο res/layout. Ο κώδικας xml του αρχείου παρουσιάζεται παρακάτω: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" <TextView συνθηματικό" android:text="παρακαλώ δώστε το όνομα χρήστη και το Σελίδα 52

53 android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:layout_marginbottom="5dip" android:textsize="20sp" /> <TextView android:text="όνομα χρήστη (Username)" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_margintop="10dp" android:layout_gravity="center" android:textsize="20sp" /> <EditText android:padding="10dip" android:layout_width="250dp" android:layout_gravity="center" android:layout_marginbottom="10dp" android:layout_height="50dp" android:lines="1" android:inputtype="texturi" android:imeoptions="actiongo" /> <TextView android:text="συνθηματικό (Password)" Σελίδα 53

54 android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_margintop="10dp" android:layout_gravity="center" android:textsize="20sp" /> <EditText android:layout_marginbottom="10dp" android:padding="10dip" android:layout_width="250dp" android:layout_gravity="center" android:layout_height="50dp" android:lines="1" android:password="true" android:inputtype="texturi" android:imeoptions="actiongo" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margintop="10dp" android:layout_marginbottom="10dp" /> </LinearLayout> Σελίδα 54

55 Στον κώδικα ορίζεται μία δομή LinearLayout η οποία περιέχει ορισμένα στοιχεία τα οποία τοποθετούνται από κάτω προς τα πάνω στο γραφικό περιβάλλον: Ένα ImageView που είναι το λογότυπο του OpenEclass. Το αρχείο logo.png βρίσκεται στο φάκελο res/drawable-mdpi. Ένα TextView που στην ουσία ορίζει ένα κείμενο που οδηγεί τον χρήστη στο τι πρέπει να κάνει. Το κείμενο αυτό είναι "Παρακαλώ δώστε το όνομα χρήστη και το συνθηματικό". Ένα TextView που χρησιμοποιείται ως επικεφαλίδα στο πεδίο όπου ο χρήστης δίνει το username του. Ένα EditText που ορίζει ένα πεδίο το οποίο ο χρήστης μπορεί να το επιλέξει με το δάχτυλο και να γράψει σε αυτό. Παρατηρούμε ότι το πεδίο αυτό έχει id=username, ώστε η δραστηριότητα να αναγνωρίσει ότι το κείμενο που έχει γραφεί είναι το όνομα χρήστη που δόθηκε. Ένα TextView που χρησιμοποιείται ως επικεφαλίδα στο πεδίο όπου ο χρήστης δίνει το συνθηματικό του. Ένα EditText που έχει id=password, ώστε η δραστηριότητα να αναγνωρίσει ότι το κείμενο που έχει γραφεί είναι το συνθηματικό που δόθηκε. Ένα Button το οποίο ορίζει μία διεπαφή και έχει id=submit. Το id αυτό θα το χρησιμοποιήσει η δραστηριότητα ώστε να χειριστεί το πάτημα του κουμπιού. Ως εικονίδιο της διεπαφής ορίζεται το αρχείο entergr.png, που είναι επίσης αποθηκευμένο στο φάκελο res/drawable-mdpi. Σε κάθε στοιχείο υπάρχουν ετικέτες που ορίζουν την ακριβή του θέση στην οθόνη. Το γραφικό περιεχόμενο που ορίστηκε παρουσιάζεται στο σχήμα 4.4. Σελίδα 55

56 Σχήμα 4.4: Γραφικό περιεχόμενο της δραστηριότητας Login Ο κώδικας Java της δραστηριότητας Όπως αναφέρθηκε κάθε δραστηριότητα στο Android αποτελεί μία κλάση Java. Η δραστηριότητα Login.java δηλώνεται ως: public class Login extends Activity implements OnClickListener που δηλώνει ότι η κλάση είναι δημόσια, αποτελεί δραστηριότητα και υλοποιεί έναν OnClickListener, δηλαδή ορίζει διεπαφές και γεγονότα που αυτές πυροδοτούν. Η πρώτη μέθοδος που καλείται στον κύκλο ζωής μίας δραστηριότητας είναι η oncreate. Σε αυτή τη μέθοδο ορίζεται ότι το γραφικό περιβάλλον της δραστηριότητας υπάρχει στο αρχείο login.xml (παράγραφος 4.4.1). Επίσης ορίζει στη διεπαφή με id submit στην οποία υπάρχει ένας onclicklistener, όπου γίνεται χειρισμός της πίεσης της διεπαφής. Σελίδα 56

57 @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.login); View SubmitButton = findviewbyid(r.id.submit); SubmitButton.setOnClickListener(this); } Σε αυτό το σημείο ο χρήστης μπορεί να δει το γραφικό περιεχόμενο και να συμπληρώσει τις τιμές που θέλει στα δύο πεδία. Όταν πιέσει το Είσοδος τότε καλείται η μέθοδος: public void onclick(view v) { switch (v.getid()) { case R.id.submit: EditText Name=(EditText) findviewbyid(r.id.username); username=name.gettext().tostring(); EditText Pass=(EditText) findviewbyid(r.id.password); password=pass.gettext().tostring(); checklogin=new CheckLogin(); Στο σημείο αυτό η εφαρμογή checklogin.execute(); συλλέγει και αποθηκεύει τις τιμές που συμπλήρωσε ο χρήστης στα δύο πεδία. Έπειτα καλείται το αντικείμενο checklogin της κλάσης CheckLogin break; το οποίο στέλνεις τις τιμές στο PHP scriptq: } } Σελίδα 57

58 private class CheckLogin extends AsyncTask<String, Void, String> protected String doinbackground(string... urls) { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http:// /lokas/checklogin.php?myusername="+username+"&myp assword="+password); try { ResponseHandler<String> responsehandler=new BasicResponseHandler(); responsehandler); String responsebody = httpclient.execute(httppost, JSONObject response=new JSONObject(responseBody); String attributeid="wrong"; attributeid = response.getstring("username"); user_id = response.getint("id"); return attributeid; } catch (JSONException e) { System.out.println("JSON EXP"); return "error"; } catch (ClientProtocolException e) { System.out.println("CP EXP"); return "error"; } catch (IOException e) { e.printstacktrace(); System.out.println("IO EXP"); Η κλάση CheckLogin είναι return ασύγχρονη, "error"; που σημαίνει ότι η κύρια λειτουργία της γίνεται στο background χωρίς να } επηρεάζει την αποκρισημότητα της εφαρμογής. Η εφαρμογή κάνει μία κλήση στο: protected void onpostexecute(string response) { System.out.println(response); Σελίδα 58

59 rd όπου username και password είναι οι τιμές που έδωσε ο χρήστης και περνούν ως παράμετροι στο checklogin.php. Το PHP script θα κάνει τον έλεγχο και σε περίπτωση αποτυχίας θα επιστρέψει ένα αντικείμενο JSON με την ένδειξη wrong: {"username":"wrong","password":"wrong","id":0} Σε αυτή την περίπτωση εμφανίζεται απλά το μήνυμα Λάθος username ή/και password. Σε περίπτωση που δεν υπήρχε σύνδεση στο internet τότε εμφανίζεται το μήνυμα: "Κάτι συνέβη. Παρακαλώ ελέγξτε τη σύνδεση στο διαδύκτιο".σε περίπτωση επιτυχίας αντίθετα θα επιστραφούν τα στοιχεία του χρήστη: {"username":"and1","password":"785f0e7403e7756a988b39dafb2f59f6","id" :"29"} Στην περίπτωση αυτή καλείται η μέθοδος gotomainmenu(), η οποία οδηγεί τον ταυτοποιημένο χρήστη στην δραστηριότητα MainMenu. public void gotomainmenu(){ Intent MainMenu = new Intent(); MainMenu.setClass(Login.this, MainMenu.class); MainMenu.putExtra("username", username); MainMenu.putExtra("user_id", user_id); startactivity(mainmenu); Στη νέα δραστηριότητα δίνονται τα username και user_id του χρήστη. Τέλος καλείται η finish(); μέθοδος finish() ώστε η δραστηριότητα Login να ολοκληρώσει τον κύκλο ζωής της. } Το PHP script checklogin.php Όπως είδαμε η δραστηριότητα εκτελεί κλήση στο checklogin.php. Ο κώδικα αρχίζει με την ετικέτα <?php και με τις πρώτες γραμμές το script συνδέεται στη βάση δεδομένων. Οι δύο τελευταίες γραμμές είναι απαραίτητες για το σωστό χειρισμό των ελληνικών χαρακτήρων. Σελίδα 59

60 <?php $host="localhost"; // Host name $username="root"; // Mysql username $password="imdb"; // Mysql password $db_name="neweclass"; // Database name $tbl_name="user"; // Table name // Connect to server and select databse. $link=mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); Το σύμβολο $ χρησιμοποιείται από την PHP για να δηλώσει ότι ακολουθεί μεταβλητή. mysql_query("set character set 'greek'",$link); Έπειτα το script διαβάζει τα ορίσματα που δόθηκαν από την εφαρμογή: mysql_query("set NAMES 'utf8'",$link); // username and password sent from form $myusername=$_get['myusername']; $mypassword=$_get['mypassword']; // To protect MySQL injection (more detail about MySQL injection) $myusername = stripslashes($myusername); $mypassword = stripslashes($mypassword); Παρατηρούμε ότι στο συνθηματικό χρησιμοποιείται η μέθοδος md5 η οποία κρυπτογραφεί $myusername = mysql_real_escape_string($myusername); το συνθηματικό που δόθηκε. Αυτό γίνεται γιατί τα συνθηματικά στη βάση δεδομένων του eclass $mypassword αποθηκεύονται = md5(mysql_real_escape_string($mypassword)); κωδικοποιημένα. Η κωδικοποίηση θα αναλυθεί και στο επόμενο κεφάλαιο. Το sript χρησιμοποιεί τις τιμές που διάβασε για να εκτελέσει το επιθυμητό ερώτημα στη βάση: $sql="select * FROM $tbl_name WHERE username= '$myusername' and password='$mypassword' and statut=5"; $result=mysql_query($sql); $count=mysql_num_rows($result); Σελίδα 60

61 Το ερώτημα επιλέγει τις γραμμές του πίνακα όπου το username και το password είναι ίδια με τα δεδομένα και το statut είναι ίσο με 5 (για εισαγωγή εκπαιδευόμενου). Η μεταβλητή count κρατάει τον αριθμό των γραμμών που επέστρεψε η εφαρμογή και που αναμένεται να είναι ή 0 (αν δεν υπάρχει τέτοιος χρήστης) ή 1 (εφόσον δεν επιτρέπεται παραπάνω από ένας χρήστες να έχουν το ίδιο username). Αν count=1 τότε επιστρέφονται τα στοιχεία του χρήστη σε μορφή JSON: if($count==1){ $row=mysql_fetch_array($result); $Data = array('username' => $myusername, 'password' => $mypassword, 'id'=> $row['user_id']); header('content-type: text/plain'); echo json_encode($data); Αλλιώς επιστρέφεται η τιμή wrong : } else { } $Data = array('username' => 'wrong', 'password' => 'wrong', 'id' => 0); header('content-type: text/plain'); echo json_encode($data); } Ο κώδικας PHP τελειώνει με την ετικέτα?>.?> Σελίδα 61

62 ΚΕΦΑΛΑΙΟ 5: ΠΑΡΟΥΣΙΑΣΗ ΤΗΣ ΑΝΑΠΤΥΧΘΕΙΣΑΣ ΕΦΑΡΜΟΓΗΣ 5. Παρουσίαση της αναπτυχθείσας εφαρμογής Στην προηγούμενη παράγραφο έγινε αναφορά στη σχεδίαση της εφαρμογής και στις μεθόδους υλοποίησής της. Στο παρόν κεφάλαιο θα γίνει μία εκτενής παρουσίαση όλων των δραστηριοτήτων της εφαρμογής που αναπτύχθηκε. Κάθε δραστηριότητα αποτελεί και μία κλάση java στο Android project που δημιουργήθηκε (σχήμα 5.1). Σχήμα 5.1: Τα αρχεία.java που αντιστοιχούν στις δραστηριότητες της εφαρμογης Σε κάθε δραστηριότητα θα δίνεται έμφαση στις κλήσεις που αυτή μπορεί να κάνει σε PHP scripts, ώστε να φανεί ο τρόπος αλληλεπίδρασης της εφαρμογής με τον server και με τη βάση δεδομένων του Open eclass. Επίσης δίνεται μία πληθώρα screenshots, ώστε να γίνει κατανοητή η γραφική σχεδίαση της εφαρμογής και ο τρόπος με τον οποίο υλοποιούνται τα διάφορα σενάρια λειτουργίας. Σελίδα 62

63 5.1. Application Launch Η εκκίνηση της εφαρμογής δεν αποτελεί ξεχωριστή δραστηριότητα, αλλά κρίνεται σκόπιμο να αναλυθεί σύντομα, για την καλύτερη κατανόηση του τρόπου λειτουργίας του Android. Η εφαρμογή μπορεί να εγκατασταθεί στη συσκευή ή στον emulator απευθείας από το eclipse ή μέσω του εκτελέσιμου αρχείου eclass.apk. Εφόσον η εφαρμογή είναι φορτωμένη στη συσκευή το εικονίδιό της είναι ορατό στη λίστα με τις διαθέσιμες εφαρμογές της συσκευής (σχήμα 5.2). Σχήμα 5.2: Το εικονίδιο της εγκατεστημένης εφαρμογής στον emulator Παρατηρείται ότι ως εικονίδιο χρησιμοποιήθηκε το logo του eclass. Όλες οι εικόνες που χρησιμοποιεί το eclass είναι διαθέσιμες στον φάκελο που έχει εγκατασταθεί η πλατφόρμα, στη διαδρομή template\classic\img. Έτσι όσες από αυτές τις εικόνες χρειάζονται αντιγράφηκαν στον υποφάκελο drawable-mdpi του φακέλου res του Android project. Ο ορισμός του εικονιδίου της εφαρμογής γίνεται στο αρχείο AndroidManifest. Αν δεν επιλεχθεί κάποιο αρχείο, το Android χρησιμοποιεί για την εφαρμογή ως προεπιλογή το γνωστό android logo (σχήμα 5.3). Σελίδα 63

64 Σχήμα 5.3: Το προεπιλεγμένο Android εικονίδιο 5.2. Main Page Η αρχική σελίδα (σχήμα 5.4) απλώς δίνει δύο επιλογές στον χρήστη. Είτε να εισέλθει στο σύστημα, εάν ήδη διαθέτει λογαριασμό, είτε να δημιουργήσει έναν νέο λογαριασμό. Σχήμα 5.4: Main Page Σελίδα 64

65 Η σελίδα αποτελείται από το logo του eclass, το οποίο χρησιμοποιήθηκε σε όλες τις δραστηριότητες ως σήμα κατατεθέν, ένα κείμενο που ενημερώνει τον χρήστη για το τι μπορεί να εκτελέσει και δύο κουμπιά, ένα για κάθε λειτουργία. Πάνω σε κάθε κουμπί υπάρχει κείμενο που εξηγεί τη λειτουργία του. Αυτές είναι οι standard διεπαφές που παρέχει το Android SDK. Υπάρχει όμως η δυνατότητα να χρησιμοποιηθούν και άλλες εικόνες ως κουμπιά εάν αυτό είναι επιθυμητό Create Account Η δραστηριότητα Create Account δίνει στον χρήστη τη δυνατότητα να εγγραφή στην πλατφόρμα. Η εγγραφή που μπορεί να γίνει είναι μόνο για χρήστη με ρόλο εκπαιδευόμενου. Η εφαρμογή παρουσιάζει μία φόρμα όπου ο χρήσης εισάγει τα απαιτούμενα στοιχεία. Επειδή τα στοιχεία είναι πολλά ολόκληρο το περιεχόμενο της οθόνης, εκτός από το logo που είναι πάντα ορατό, μπορεί να κυληθεί (scroll) κάθετα (σχήμα 5.5). Σχήμα 5.5: Η φόρμα εισαγωγής στοιχείων νέου λογαριασμού Σελίδα 65

66 Τα στοιχεία που δίνει ο χρήστης είναι τα εξής: Όνομα Επώνυμο Συνθηματικό Επιβεβαίωση συνθηματικού Αριθμός μητρώου Σχολή Τμήμα Γλώσσα Κάποια από τα στοιχεία μπορούν να έχουν μόνο προεπιλεγμένες τιμές. Για παράδειγμα το Γλώσσα μπορεί να πάρει μόνο τις τιμές Ελληνικά, English και Espanol. Σε αυτή την περίπτωση ο χρήστης δεν πληκτρολογεί το όνομα, αλλά του δίνεται μία λίστα όπου μπορεί να διαλέξει από τις προϋπάρχουσες επιλογές (σχήμα 5.6). Σχήμα 5.6: Επιλογή γλώσσας Σελίδα 66

67 Όπως παρατηρείται στο σχήμα 5.8 στο τέλος της φόρμας υπάρχει επίσης ένα κουμπί. Αυτή τη φορά όμως δεν χρησιμοποιήθηκε το default κουμπί του Android SDK, αλλά η εικόνα της διεπαφής Εγγραφή του Open eclass. Όταν πιεστεί το Εγγραφή εκτελούνται πρώτα μερικοί έλεγχοι πριν τα στοιχεία σταλούν στον server. Ποιο συγκεκριμένα ελέγχεται εάν: όλα τα πεδία είναι συμπληρωμένα. οι κωδικοί που δόθηκαν στα πεδία Password και Retype Password είναι ταυτόσημοι. ο κωδικός έχει μήκος μεγαλύτερο ή ίσο από τέσσερεις χαρακτήρες. Ο περιορισμός αυτός δόθηκε ενδεικτικά για λόγους ανάπτυξης (ώστε να μην απαιτείται να γράφονται συνέχεια μεγάλα passwords). Μπορεί όμως εύκολα να επεκταθεί σε απαίτηση περισσότερων χαρακτήρων ή/και ύπαρξη κεφαλαίων και μικρών και ειδικών χαρακτήρων ή αριθμών. Τέτοιες τεχνικές γενικά συνίστανται στα πληροφοριακά συστήματα, καθώς καθιστούν τους κωδικούς των χρηστών περισσότερο ασφαλείς. το έχει τη μορφή μίας έγκυρης διεύθυνσης ηλεκτρονικού ταχυδρομείου. Πρέπει να σημειωθεί, ότι δεν ελέγχεται αν η διεύθυνση υπάρχει, παρά μόνο αν είναι της μορφής που μπορεί να έχει ένα . Έτσι αν ο χρήστης δώσει ως το τότε αυτό θα περάσει τον έλεγχο, αλλά αν δώσει για παράδειγμα δε θα περάσει. Ο έλεγχος του αν το αντιστοιχεί σε κάποια υπαρκτή διεύθυνση, είναι ευθύνη συνήθως του server, ο οποίος στέλνει σε πολλά συστήματα ένα μήνυμα ενεργοποίησης του λογαριασμού στη δοθείσα διεύθυνση. Στο παρόν σύστημα δεν διενεργείται κανένας τέτοιος έλεγχος. ο αριθμός μητρώου που δόθηκε είναι πραγματικά ένας αριθμός. Σε περίπτωση που έστω και ένας από τους παραπάνω ελέγχους αποτύχει, η διαδικασία εγγραφής σταματάει και παρουσιάζεται ένα μήνυμα που εξηγεί το λόγο (σχήμα 5.7). Σελίδα 67

68 Σχήμα 5.7: Αποτυχία εγγραφής χρήστη Εάν αντίθετα όλοι οι έλεγχοι πετύχουν τότε αρχίζει η διαδικασία εγγραφής του χρήστη. Η εφαρμογή καλεί το PHP script με τίτλο checkcreate.php δίνοντας ως παραμέτρους όλες τις επιλογές του χρήστη. Το script συνδέεται με τη βάση neweclass και αρχικά ελέγχει αν το username ήδη υπάρχει στη βάση δεδομένων. O έλεγχος γίνεται με την εντολή: SELECT * FROM user WHERE username='$myusername' όπου myusername είναι το username που δόθηκε ως παράμετρος, δηλαδή το username που όρισε ο χρήστης (το σύμβολο $ χρησιμοποιείται πάντα στην PHP για να δηλώσει ότι ακολουθεί μεταβλητή). Αν η ερώτηση επιστρέψει τιμή τότε αυτό σημαίνει ότι το username υπάρχει ήδη και ο χρήστης ενημερώνεται ώστε να επιλέξει κάποιο καινούριο (σχήμα 5.8). Σελίδα 68

69 Σχήμα 5.8: Οι δύο πιθανές απαντήσεις του server στο αίτημα εγγραφής Αν το username δεν υπάρχει τότε εκτελείται η SQL εντολή INSERT INTO user(nom, prenom, username, password, , statut, am, department, lang, registered_at, expires_at) VALUES('$myname', '$mysurname', '$myusername', '$mypassword', '$my ', 5, '$mynumber', '$myfaculty', '$mylanguage', , ) Με την εντολή αυτή εισάγεται ο χρήστης στο σύστημα. Αξίζει να σημειωθεί ότι ως statut ορίζεται το 5 που ορίζει ότι ο χρήστης είναι εκπαιδευόμενος. Επίσης ο κωδικός δεν αποθηκεύεται όπως τον έδωσε ο χρήστης, αλλά πρώτα κωδικοποιείται με το πρότυπο md5. Αυτό γίνεται ώστε κάποιος που έχει πρόσβαση στη βάση, να μην έχει τη δυνατότητα του να υποκλέψει τους κωδικούς των χρηστών. Η PHP παρέχει τη βιβλιοθήκη md5 η οποία δέχεται ως όρισμα μία σειρά χαρακτήρων και την κωδικοποιεί. Για παράδειγμα η λέξη MD5 αν κρυπτογραφηθεί δίνει τη σειρά χαρακτήρων: 7f138a09169b250e9dcb Σελίδα 69

70 Περισσότερες πληροφορίας για τη μέθοδο κρυπτογράφησης md5 μπορούν να βρεθούν στο διαδύκτιο. Παραπάνω αναλύθηκαν κάποιοι έλεγχοι που γίνονται στη διαδικασία εγγραφής ενός χρήστη στην πλατφόρμα. Η επιλογή είναι ενδεικτική και σε διαφορετικές υλοποιήσεις μπορεί να επιλεχθούν διαφορετικά πρότυπα Login Ο χρήστης που δημιουργήθηκε, μπορεί πλέον να κάνει login ώστε να εισέλθει στην εφαρμογή. Η δραστηριότητα Login (αναλύθηκε στην παράγραφο 4.4 ως παράδειγμα, αλλά παρουσιάζεται και εδώ για λόγους συνοχής) παρουσιάζει μία φόρμα όπου ο χρήστης καλείται να δώσει το username και το password του (σχήμα 5.11). Όπως βλέπουμε ο κωδικός δίνεται με την μορφή που δίνονται οι κωδικοί στο Android ( hidden ). Όταν πατηθεί το πλήκτρο enter, η δραστηριότητα καλεί το checklogin.php δίνοντας ως παραμέτρους τις εισαχθείσες τιμές. Το script διαπράττει τον έλεγχο ταυτοποίησης του χρήστη. Το script κάνει στη βάση το παρακάτω ερώτημα: SELECT * FROM user WHERE username='$myusername' and password='$mypassword' and statut=5 Όπου myusername και mypassword είναι οι παράμετροι που εστάλησαν από τον client. Πρέπει να σημειωθεί όμως ότι το PHP script πρώτα κρυπτογραφεί τον κωδικό κατά md5 και μετά διαπράττει το ερώτημα. Το statut=5 σημαίνει ότι ο χρήστης πρέπει να είναι εκπαιδευόμενος. Η τιμή 5 δίνεται από το eclass για όλους τους χρήστες αυτής της κατηγορίας. Σελίδα 70

71 Σχήμα 5.9: Η φόρμα Login Σε περίπτωση αποτυχίας ταυτοποίησης παρουσιάζεται ένα ενημερωτικό μήνυμα στον χρήστη πως δόθηκε λάθος username ή/και password. Σε περίπτωση επιτυχίας ο ταυτοποιημένος πλέον χρήστης οδηγείται στη δραστηριότητα Main Menu όπου το σύστημα τον καλωσορίζει με το username του (σχήμα 5.10). Σελίδα 71

72 Σχήμα 5.10: Αποτυχία ταυτοποίησης Από την απάντηση του checklogin.php η εφαρμογή λαμβάνει εκτός των άλλων και το user_id του συγκεκριμένου χρήστη, το οποίο κρατείται από αυτό το σημείο και έπειτα για την αλληλεπίδραση του με το σύστημα Main Menu Η δραστηριότητα αυτή παρουσιάζει το κύριο μενού το οποίο λαμβάνει ο ταυτοποιημένος πλέον χρήστης (σχήμα 5.11). Κάτω από το logo της εφαρμογής, ένα γραπτό μήνυμα καλωσορίζει τον χρήστη στο σύστημα και στην οθόνη δίνονται τρεις επιλογές Έλεγχος ανακοινώσεων Εύρεση μαθημάτων Προβολή λίστας μαθημάτων στα οποία ο χρήστης είναι εγγεγραμμένος. Στη συγκεκριμένη δραστηριότητα δεν απαιτείται κάποια αλληλεπίδραση με το internet και τη βάση δεδομένων του Open eclass. Σελίδα 72

73 Σχήμα 5.11: Main Menu 5.6. Check Announcements Στην δραστηριότητα Check Announcements ο χρήστης λαμβάνει μία λίστα με τις ανακοινώσεις όλων των μαθημάτων στα οποία είναι εγγεγραμμένος. Αυτό κρίθηκε πολύ σημαντικό ως λειτουργία, καθώς το σενάριο χρήσης του ελέγχου των ανακοινώσεων μέσω της εφαρμογής είναι πολύ συχνό. Σελίδα 73

74 Σχήμα 5.12: Λίστα ανακοινώσεων Με το που δημιουργείται η δραστηριότητα γίνεται κλήση του getuserlessons.php, το οποίο λαμβάνει ως παράμετρο το user_id και εκτελεί στη βάση το ερώτημα: SELECT * FROM course_user WHERE user_id=$id Το script επιστρέφει τα cours_id για τα μαθήματα στα οποία είναι γραμμένος ο χρήστης και έπειτα εκτελεί για το κάθε ένα το ερώτημα: SELECT * FROM cours WHERE cours_id=$cours_id ώστε να πάρρει για κάθε μάθημα τον τίτλο του (στήλη intitule στον πίνακα cours ). Έπειτα η εφαρμογή καλεί το checkannouncements.php το οποίο μέσω του ερωτήματος: SELECT * FROM annonces επιστρέφει όλες τις ανακοινώσεις του συστήματος και η εφαρμογή, αλλά η εφαρμογή επιλέγει μόνο αυτές που αφορούν τα συγκεκριμένα course_id που λήφθηκαν πριν. Έτσι ο Σελίδα 74

75 χρήστης λαμβάνει μία λίστα με τις ανακοινώσεις των μαθημάτων στα οποία είναι γραμμένος (σχήμα 5.12). Η λίστα δημιουργείται με τη χρήση της βιβλιοθήκης android.widget.listview που παρέχει το Android SDK. Όπως φαίνεται στο σχήμα παρουσιάζεται ο τίτλος του μαθήματος στο οποίο ανήκει η ανακοίνωση και ο τίτλος της ανακοίνωσης. Πατώντας πάνω σε ένα στοιχείο της λίστας ο χρήστης μπορεί να δει το περιεχόμενο της ανακοίνωσης (σχήμα 5.13). Ο διάλογος που φαίνεται στο σχήμα δημιουργείται με τη βοήθεια της Android βιβλιοθήκης android.content.dialoginterface. Μέσω της διεπαφής OK ο χρήστης μπορεί να κλείσει τον διάλογο Σχήμα 5.13: Προβολή περιεχομένου ανακοινώσεων Όπως βλέπουμε έχει ληφθεί μέριμνα, ώστε η εφαρμογή να υποστηρίζει και κείμενο γραμμένο με ελληνικούς χαρακτήρες. Σελίδα 75

76 5.7. Find Lessons Στην δραστηριότητα αυτή ο χρήστης λαμβάνει μία λίστα με όλα τα μαθήματα που έχουν δημιουργηθεί στο σύστημα (σχήμα 5.14) και μπορεί να εγγραφεί σε ή να απεγγραφεί από αυτά. Όπως φαίνεται στο σχήμα στο δοκιμαστικό σύστημα δημιουργήθηκαν τρία μαθήματα. Αρχικά η εφαρμογή καλεί το getcourses.php το οποίο εκτελεί το ερώτημα: SELECT * FROM cours το οποίο επιστρέφει όλα τα μαθήματα. Τα στοιχεία που επιλέγονται και επιστρέφονται σε μορφή JSON είναι τα περιεχόμενα της στήλης cours_id ώστε να ληφθεί το id που θα χρησιμοποιηθεί αργότερα και intitule ώστε να παρουσιαστεί στον χρήστη ο τίτλος του μαθήματος Σχήμα 5.14: Λίστα με όλα τα μαθήματα του συστήματος Σελίδα 76

77 Πιέζοντας σε κάποιο μάθημα της λίστας ο χρήστης μπορεί να αναγνώσει την περιγραφή του. Επίσης του δίνεται η δυνατότητα να εγγραφεί σε αυτό ή, αν είναι ήδη εγγεγραμμένος, να απεγγραφεί από αυτό (σχήμα 5.15). Η περιγραφή του μαθήματος λαμβάνεται μέσω κλήσης στο getdescription.php. To script λαμβάνει ως όρισμα το cours_id και εκτελεί αρχικά το ερώτημα: SELECT * FROM $course_units WHERE course_id='$id' Από το ερώτημα λαμβάνεται η τιμή του unit_id, η οποία χρησιμοποιείται στο: SELECT * FROM $unit_resources where unit_id='$id2' από το οποίο λαμβάνεται το περιεχόμενο της στήλης description. Με τον τρόπο αυτό ο χρήστης βλέπει την περιγραφή του μαθήματος. Έπειτα καλείται το checkusercourse.php το οποίο δέχεται ως όρισμα το cours_id του μαθήματος και το user_id του χρήστη και ελέγχει αν αυτός είναι εγγεγραμμένος στο μάθημα. Ο έλεγχος γίνεται με το ερώτημα: SELECT * FROM $tbl_name WHERE cours_id='$course_id' and user_id='$user_id' Σελίδα 77

78 Σχήμα 5.15: Προβολή περιγραφής μαθήματος και δυνατότητα εγγραφής/απεγγραφής Εάν ο χρήσης δεν είναι εγγεγραμένος στο μάθημα, το κουμπί στον διάλογο φέρνει την ετικέτα Εγγραφή. Αν πατηθεί το κουμπί, γίνεται κλήση στο subscribe.php το οποίο με την παρακάτω SQL εντολή εγγράφει τον χρήστη στο μάθημα INSERT INTO cours_user(cours_id, user_id, statut, team, tutor, editor, receive_mail) VALUES($course_id, $user_id, 5, 0, 0, 0, 1) Τα course_id και user_id δίνονται ως παράμετροι από την εφαρμογή, το statut=5 ορίζει ότι ο χρήστης είναι εκπαιδευόμενος ενώ οι υπόλοιπες τιμές είναι default επιλογές του eclass. Εάν ο χρήστης είναι εγγεγραμένος στο μάθημα, το κουμπί στον διάλογο φέρνει την ετικέτα Απεγγραφή. Πατώντας το κουμπί γίνεται κλήση στο unsubscribe.php, το οποίο δέχεται επίσης ως ορίσματα τα user_id και course_id και εκτελεί την εντολή: DELETE FROM cours_user WHERE cours_id='$course_id' and user_id='$user_id' Σελίδα 78

79 με την οποία ο η γραμμή του πίνακα cours_user που συνδέει τον χρήστη με το μάθημα διαγράφεται. Και στις δύο περιπτώσεις ο χρήστης λαμβάνει ένα μήνυμα ότι η εγγραφή ή η απεγγραφή εκτελέστηκαν με επιτυχία MyLessons Η συγκεκριμένη δραστηριότητα παρουσιάζει μία λίστα με όλα τα μαθήματα στα οποία ο χρήστης είναι εγγεγραμμένος (σχήμα 5.16). Η εύρεση της λίστας γίνεται μέσω του getuserlessons.php στο οποίο η εφαρμογή δίνει το user_id και εκτελεί το ερώτημα: SELECT * FROM $tbl_name WHERE user_id=$id Επιλογή ενός από τα μαθήματα της λίστας, οδηγεί στη δραστηριότητα Lesson Site η για το συγκεκριμένο μάθημα. Στη δραστηριότητα δίνεται το cours_id, ώστε να γνωρίζει ποιανού μαθήματος τα στοιχεία πρέπει να παρουσιάσει. Σχήμα 5.16: Λίστα των μαθημάτων στα οποία ο χρήστης έχει εγγραφεί Σελίδα 79

80 5.9. Lesson Site Η δραστηριότητα αυτή παρουσιάζει το κύριο μενού της σελίδας του μαθήματος (σχήμα 5.17). Κάτω από το logo της εφαρμογής, ένα γραπτό μήνυμα καλωσορίζει τον χρήστη στο μάθημα και στην οθόνη δίνονται πέντε επιλογές Έλεγχος ανακοινώσεων μαθήματς Εύρεση εργασιών Προβολή και κατέβασμα αρχείων Προβολή ατζέντας Προβολή φόρους και ανάρτηση απάντησης. Στη συγκεκριμένη δραστηριότητα δεν απαιτείται κάποια αλληλεπίδραση με το internet και τη βάση δεδομένων του Open eclass. Σχήμα 5.17: Σελίδα μαθήματος Σελίδα 80

81 5.10 Lesson Announcements Η δραστηριότητα αυτή έχει παρόμοια λειτουργικότητα με την Check Announcements η οποία περιγράφηκε στην παράγραφο 5.6. Η διαφορά έγκειται στο ότι ο χρήστης λαμβάνει τώρα μία λίστα μόνο με τις ανακοινώσεις του συγκεκριμένου μαθήματος (σχήμα 5.18). Η εφαρμογή καλεί την δραστηριότητα checklessonannouncements.php, περνώντας ως παράμετρο το course_id του μαθήματος. Το script εκτελεί το εξής ερώτημα στη βάση: SELECT * FROM annonces where cours_id='$id' Έτσι συλλέγονται τα απαιτούμενα στοιχεία για τις επιθυμητές ανακοινώσεις. Το script επιστρέφει σε JSON τα περιεχόμενα των στηλών title και contenu, οι οποίες περιέχουν τον τίτλο και το περιεχόμενο της ανακοίνωσης αντίστοιχα. Σχήμα 5.18: Λίστα ανακοινώσεων του μαθήματος Σελίδα 81

82 Στην λίστα παρουσιάζεται ο τίτλος της ανακοίνωσης. Πιέζοντας πάνω σε μία από τις ανακοινώσεις ο χρήστης μπορεί να αναγνώσει το περιεχόμενό της (σχήμα 5.19). Σχήμα 5.19: Περιεχόμενο ανακοίνωσης Lesson Assignments Στην δραστηριότητα αυτή ο χρήστης μπορεί να δει τις εργασίες του μαθήματος. Οι πληροφορίες που απαιτούνται για τη συγκεκριμένη λειτουργία δεν είναι διαθέσιμες στην κεντρική βάση δεδομένων του eclass που δημιουργήθηκε (neweclass), αλλά στη βάση που έχει δημιουργήσει η πλατφόρμα για το συγκεκριμένο μάθημα. Όπως προαναφέρθηκε, η βάση αυτή φέρει το όνομα του κωδικού του μαθήματος. Οπότε η πρώτη λειτουργία που εκτελεί η δραστηριότητα, είναι να καλέσει το getlessoncode.php δίνοντας ως όρισμα το course_id. Το script εκτελεί το ερώτημα SELECT * FROM course WHERE cours_id='$id' Σελίδα 82

83 και επιστρέφει το περιεχόμενο της στήλης code. Πλέον το όνομα της βάσης στην οποία πρέπει να συνδεθεί η εφαρμογή είναι γνωστό. Μόλις ανακτηθεί ο κωδικός, καλείται το getassignments.php στο οποίο ο κωδικός αυτός δίνεται ως παράμετρος. Το script εκτελεί στην βάση που του δόθηκε το ερώτημα: SELECT * FROM assignments με το οποίο λαμβάνονται όλα τα στοιχεία του πίνακα. Για κάθε εγγραφή το script επιστρέφει σε μορφή JSON τις εξής στήλες: title description group_submissions submission_date deadline Αρχικά χρησιμοποιείται μόνο ο τίτλος, ώστε να παρουσιαστεί στη λίστα με τις εργασίες (σχήμα 5.20). Σχήμα 5.20: Λίστα εργασιών μαθήματος Σελίδα 83

84 Πιέζοντας πάνω σε μία από τις ανακοινώσεις ο χρήστης μπορεί να αναγνώσει το περιεχόμενό της (σχήμα 5.21). Στον διάλογο παρουσιάζεται και πάλι ο τίτλος με κόκκινα γράμματα και από κάτω το περιεχόμενο της εκφώνησης. Πιο κάτω και με μικρότερα γράμματα ο χρήστης μπορεί να δει τις ημερομηνίες υποβολής και προθεσμίας, καθώς και το αν η εργασία είναι προσωπική ή ομαδική. Η τελευταία πληροφορία συλλέγεται από το περιεχόμενο της στήλης group_submissions το οποίο είναι 0 αν η εργασία είναι ατομική και 1 εάν είναι ομαδική. Σχήμα 5.21: Περιεχόμενο εργασίας Σελίδα 84

85 5.12. Lesson Files Μέσω της δραστηριότητας αυτής ο χρήστης μπορεί να κάνει download των αρχείων που έχουν ανέβει στη βάση του συγκεκριμένου μαθήματος. Τα αρχεία μπορεί να είναι οποιουδήποτε τύπου, από ένα απλό αρχείο κειμένου, ως μία φωτογραφία. Τα αρχεία βρίσκονται επίσης στη βάση δεδομένων του μαθήματος, οπότε η πρώτη ενέργεια είναι και πάλι η λήψη του κωδικού του μαθήματος με την διαδικασία που περιγράφηκε στην προηγούμενη παράγραφο. Έπειτα καλείται το getfiles.php το οποίο λαμβάνει ως παράμετρο τον κωδικό του μαθήματος, ώστε να γνωρίζει σε ποια βάση πρέπει να συνδεθεί. Το ερώτημα που εκτελείται είναι το: SELECT * FROM dropbox_file όπου dropbox_file είναι το όνομα του πίνακα όπου αποθηκεύονται πληροφορίες για τα αρχεία. Το script επιστρέφει σε μορφή JSON τα περιεχόμενα των στηλών: title description author uploaddate filename Αρχικά χρησιμοποιείται μόνο ο τίτλος, ώστε να παρουσιαστεί στη λίστα με τις εργασίες (σχήμα 5.20). Σελίδα 85

86 Σχήμα 5.22: Λίστα με τα αρχεία του μαθήματος Όπως βλέπουμε ο τίτλος του αρχείου περιέχει και την κατάληξη του αρχείου, έτσι ώστε να φαίνεται και ο τύπος του. Η στήλη title περιέχει το όνομα του αρχείου όπως αυτό αποθηκεύτηκε από τον χρήστη που το έκανε upload στην ηλεκτρονική πλατφόρμα. Αντίθετα η στήλη filename περιέχει ένα τυχαίο (random) όνομα που δίνει η πλατφόρμα στο αρχείο. Για παράδειγμα στο αρχείο Tulips.jpg δόθηκε το όνομα 4ff95fd5ig0i.jpg. Αυτό το όνομα προφανώς δεν ενδιαφέρει τον χρήστη ώστε να προβληθεί στην οθόνη, αλλά είναι απαραίτητο στην εφαρμογή για να μπορέσει να κάνει download το αρχείο. Πιέζοντας σε ένα αρχείο εμφανίζεται ένας διάλογος που προβάλλει πληροφορίες για αυτό (σχήμα 5.23). Σελίδα 86

87 Σχήμα 5.23: Πληροφορίες αρχείου Εκτός από τον τίτλο, ο χρήστης μπορεί να αναγνώσει και το περιεχόμενο της στήλης description. Επίσης δίνονται δύο επιλογές Download και Close. Σε περίπτωση που πιεστεί το Κλείσιμο ο διάλογος κλείνει χωρίς να εκτελεστεί κάποια άλλη εργασία. Το ίδιο γίνεται και πατώντας απλά το πλήκτρο back της συσκευής, αλλά θεωρήθηκε πως η ύπαρξη ενός επιπλέον κουμπιου καθιστά την εφαρμογή πιο εύχρηστη. Αν ο χρήστης επιλέξει να κατεβάσει το αρχείο και πιέσει την διεπαφή Κατέβασμα Αρχείου τότε η εφαρμογή καλεί το download.php δίνοντας ως ορίσματα τόσο τον κωδικό του μαθήματος, όσο και το περιεχόμενο της στήλης filename. Το script χρειάζεται να γνωρίζει τη διαδρομή στην οποία είναι αποθηκευμένο το αρχείο στον server. Στον τοπικό server που στήθηκε το eclass η διαδρομή αυτή είναι η: C:\\xampp\\htdocs\\openeclass2.5\\courses\\".$code."\\dropbox\\".$filename Σελίδα 87

88 Σε διαφορετικά server configurations ενδέχεται η διαδρομή αυτή να είναι ελαφρώς διαφορετική, οπότε θα πρέπει να υπάρξει η κατάλληλη μετατροπή και στο script. Το script εκτελεί το κατέβασμα του αρχείου. Στην Android εφαρμογή δημιουργείται ένα αντικείμενο τύπου File στο οποίο γράφεται το αρχείο και έπειτα αποθηκεύεται στην SD card της συσκευής. Δυστυχώς ο Android emulator δεν επιτρέπει τη δυνατότητα εγγραφής αρχείων στην SD card ώστε να παρουσιαστεί εδώ screenshot, αλλά η λειτουργία δοκιμάστηκε και σε πραγματική συσκευή και λειτουργεί Lesson Agenda H δραστηριότητα Lesson Agenda παρουσιάζει μία λίστα με τα συμβάντα του μαθήματος (σχήμα 5.24). Τα συμβάντα αποθηκεύονται τόσο στην κεντρική βάση δεδομένων του eclass όσο και στις επί μέρους βάσεις των μαθημάτων. Οπότε είναι δυνατόν να ληφθούν και από τις δύο πηγές. Η λογική που ακολουθήθηκε ήταν να διαβαστούν από την κεντρική βάση δεδομένων (neweclass) και να επιλεχθούν μόνο αυτές του συγκεκριμένου μαθήματος. Σελίδα 88

89 Σχήμα 5.24: Λίστα συμβάντων μαθήματος Η πρώτη λειτουργία που εκτελείται είναι η λήψη του κωδικού του μαθήματος. Έπειτα καλείται το getevents.php το οποίο συνδέεται με τη βάση δεδομένων neweclass και εκτελεί το ερώτημα: SELECT * FROM agenda where lesson_code='$code' Όπου agenda είναι το όνομα του πίνακα όπου αποθηκεύονται τα συμβάντα. Το script επιστρέφει ένα JSON array που για κάθε εγγραφή περιέχει τα περιεχόμενα των titre contenu day Στη λίστα εμφανίζεται μόνο ο τίτλος του event. Σελίδα 89

90 Επιλέγοντας ένα συμβάν ο χρήστης μπορεί να δει το περιεχόμενο (σχήμα 5.25). Οι πληροφορίες που προβάλλονται είναι και πάλι ο τίτλος, το κείμενο που περιέχει το συμβάν και η ημερομηνία που συνέβη. Σχήμα 5.25: Περιεχόμενο συμβάντος Lesson Forum Στην παρούσα δραστηριότητα ο χρήστης μπορεί να δει τις διαφορετικές συζητήσεις που υπάρχουν για το συγκεκριμένο μάθημα (σχήμα 5.26). Η δραστηριότητα καλεί το getforum.php με όρισμα τον κωδικό του μαθήματος. Το script συνδέεται με τη βάση δεδομένων του μαθήματος και εκτελεί το ερώτημα: SELECT * FROM forums Σελίδα 90

91 και επιστρέφει για κάθε συζήτηση σε μορφή JSON τα περιεχόμενα των στηλών: forum_id forum_name forum_desc To forum_name είναι και ο τίτλος της περιοχής συζητήσεων που παρουσιάζεται στη λίστα. Σχήμα 5.26: Λίστα των περιοχών συζητήσεων του μαθήματος Επιλέγοντας μία περιοχή συζητήσεων ο χρήστης μπορεί να δει την περιγραφή του forum αλλά και να επιλέξει να δει τα θέματα που έχουν ήδη αναρτηθεί (σχήμα 5.27). Σε περίπτωση που πιεστεί το Κλείσιμο ο διάλογος κλείνει χωρίς να εκτελεστεί κάποια άλλη Σελίδα 91

92 εργασία, όπως γίνεται και αν πιεστεί το πλήκτρο back της συσκευής (ή το Esc του ηλεκτρονικού υπολογιστή σε περίπτωση που χρησιμοποιούμε τον Android emulator). Εάν ο χρήστης επιλέξει την διεπαφή Θέματα τότε η εφαρμογή εκτελεί την δραστηριότητα Topics. Στην δραστηριότητα περνάνε οι τιμές των user_id, course_id και forum_id, ώστε να μπορεί να γίνει χρήση τους στις διάφορες λειτουργίες. Σχήμα 5.27: Περιγραφή Forum Topics Στην δραστηριότητα Topics προβάλλεται μία λίστα με τα διάφορα θέματα που υπάρχουν αναρτημένα στο forum (σχήμα 5.28). Η εφαρμογή καλεί το PHP script Σελίδα 92

93 gettopics.php δίνοντας ως παραμέτρους τον κωδικό του μαθήματος και το forum_id. Το script συνδέεται με τη βάση δεδομένων που έχει ως όνομα τον κωδικό που παρέλαβε και εκτελεί το ερώτημα: SELECT * FROM topics WHERE forum_id='$id' Το ερώτημα επιστρέφει όλες τις στήλες που έχουν το συγκεκριμένο forum_id και δίνει στην εφαρμογή ένα JSON array, όπου για κάθε γραμμή παρέχονται τα περιεχόμενα των στηλών: topic_id topic_title topic_time topic_replies Στη λίστα παρουσιάζεται το περιεχόμενο της στήλης topic_title Σχήμα 5.28: Λίστα με τα θέματα μίας περιοχής συζητήσεων Σελίδα 93

94 Αν ο χρήστης πιέσει σε κάποιο από τα θέματα λαμβάνει έναν διάλογο με περισσότερες πληροφορίες για το θέμα. Στον διάλογο προβάλλεται και πάλι ο τίτλος του θέματος καθώς και ο αριθμός των απαντήσεων όπως αυτός παρέχεται από την στήλη topic_replies. Αξίζει να σημειωθεί ότι στον αριθμό των απαντήσεων δε λαμβάνεται υπόψη η αρχική δημοσίευση του θέματος. Οπότε αν για παράδειγμα έχουμε 1 Απάντηση αναμένεται η ύπαρξη δύο δημοσιεύσεων στο θέμα. Πιέζοντας το κουμπί Αναρτήσεις εκτελείται η δραστηριότητα Post, μέσω της οποίας ο χρήστης μπορεί να αναγνώσει τις υπάρχουσες δημοσιεύσεις, αλλά και να δημιουργήσει μία απάντηση η οποία θα δημοσιευθεί στην περιοχή συζητήσεων. Στην δραστηριότητα περνάν ως παράμετροι τα user_id, course_id, forum_id και topic_id. Σχήμα 5.29: Περιεχόμενο θέματος Σελίδα 94

95 5.16. Posts Στην δραστηριότητα αυτή ο χρήστης λαμβάνει μία λίστα με όλες τις δημοσιεύσεις του θέματος (σχήμα 5.30). Η δραστηριότητα εκτελεί κλήση στο getposts.php δίνοντας τον κωδικό του μαθήματος και το topic_id ως παραμέτρους. Το PHP script συνδέεται με τη βάση δεδομένων του συγκεκριμένου μαθήματος και εκτελεί το ερώτημα: SELECT * FROM posts WHERE topic_id='$id' Στην εφαρμογή επιστρέφεται ένα JSON array, που για κάθε post παρέχει τα εξής στοιχεία: post_id post_time nom prenom Στην λίστα προβάλλεται το όνομα του χρήστη που έκανε τη δημοσίευση και η ώρα και ημερομηνία της ανάρτησης. Σελίδα 95

96 Σχήμα 5.30: Λίστα δημοσιεύσεων του θέματος Πατώντας σε ένα στοιχείο της λίστας, ο χρήστης μπορεί να αναγνώσει το περιεχόμενο της ανάρτησης (σχήμα 5.31). Για τη λήψη του περιεχομένου πρέπει να καλεστεί το getposttext.php καθώς το eclass αποθηκεύει το κείμενο της δημοσίευσης σε διαφορετικό πίνακα. To script λαμβάνει από την εφαρμογή τον κωδικό του μαθήματος και το post_id, συνδέεται με τη βάση δεδομένων του μαθήματος και εκτελεί το ερώτημα: SELECT * FROM posts_text WHERE post_id='$id' To κείμενο της ανάρτησης επιστρέφεται σε ένα JSON object και η εφαρμογή του παρουσιάζει μέσω ενός διαλόγου στον χρήστη. Σελίδα 96

97 Σχήμα 5.31: Περιεχόμενο δημοσίευσης Στην δραστηριότητα υπάρχει και η επιλογή Post Reply που δίνει τη δυνατότητα στον χρήστη να αναρτήσει τη δική του απάντηση. Αν πιεστεί το κουμπί εκτελείται η δραστηριότητα Enter Text, η οποία θα αναλυθεί στην επόμενη παράγραφο. Η συγκεκριμένη δραστηριότητα καλείται με τη μέθοδο startactivityforresult η οποία γνωστοποιεί στην εφαρμογή ότι η αρχική δραστηριότητα (Posts) περιμένει από την κληθείσα (Enter Text) κάποιο αποτέλεσμα. Όταν τελειώσει η δραστηριότητα Enter Text τότε στην Posts εκτελείται αυτόματα η μέθοδος onactivityresult η οποία λαμβάνει το αποτέλεσμα της δραστηριότητας και ξαναφορτώνει τα Posts ώστε να εμφανιστεί και η ανάρτηση που μόλις έγινε (σχήμα 5.32) Σελίδα 97

98 Σχήμα 5.32: Η νέα απάντηση του χρήστη Enter Text H δραστηριότητα Enter Text παρέχει στον χρήστη ένα πλαίσιο κειμένου, στο οποίο αυτός μπορεί να εισάγει το κείμενο της δημοσίευσης (σχήμα 5.33). Η δραστηριότητα έχει λάβει από την Posts κατά την κλήση της τις τιμές των user_id, course_code, forum_id και topic_id. Πιέζοντας στο πλαίσιο κειμένου, εμφανίζεται το default soft keyboard της συσκευής και ο χρήστης πληκτρολογεί το κείμενο. Αν ο χρήστης πιέσει το cancel ή το πλήκτρο back της συσκευής, τότε η δραστηριότητα κλείνει χωρίς να διεξαχθεί κάποια άλλη ενέργεια. Στην δραστηριότητα Posts επιστρέφεται μία λογική (boolean) μεταβλητή με την τιμή false, ώστε να γνωρίζει ότι δεν έγινε ανάρτηση. Εάν ο χρήστης πιέσει το done τότε αρχίζει η διαδικασία της ανάρτησης. Αρχικά καλείται το getnomprenom.php με παράμετρο το user_id. Αυτό γίνεται γιατί μαζί με τη Σελίδα 98

99 δημοσίευση απαιτείται να αποθηκευτεί και το ονοματεπώνυμο του χρήστη που την έκανε. Το script εκτελεί στη βάση δεδομένων neweclass το ερώτημα: SELECT * FROM user WHERE user_id='$id' Σχήμα 5.33: Η δραστηριότητα Enter Text To script επιστρέφει ένα αντικείμενο JSON με το περιεχόμενο των στηλών nom και prenom για τον συγκεκριμένο χρήστη και η εφαρμογή τα αποθηκεύει. Αμέσως μόλις ληφθούν με επιτυχία οι τιμές η δραστηριότητα καλεί το insertpost.php δίνοντας εφτά ορίσματα: course_code forum_id topic_id user_id time nom Σελίδα 99

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

GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Περιγραφή Πλατφόρμας Η πλατφόρμα eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και αποτελεί την πρόταση του Ακαδημαϊκού Διαδικτύου

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

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

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

ΕΚΠΑ η-τάξη Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης

ΕΚΠΑ η-τάξη Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης ΕΚΠΑ η-τάξη Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Περιγραφή Πλατφόρμας Η πλατφόρμα η-τάξη είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και υποστηρίζει την Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης

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

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

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

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

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

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Ηµεροµηνία Μάιος 2004 Πίνακας Περιεχοµένων ΕΙΣΑΓΩΓΗ 3 ΦΙΛΟΣΟΦΙΑ ΠΛΑΤΦΟΡΜΑΣ 4 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ

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

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ... 22 ΕΠΙΚΟΙΝΩΝΙΑ... 23

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ... 22 ΕΠΙΚΟΙΝΩΝΙΑ... 23 Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης GUnet e-class Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης

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

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

Open eclass 2.1 Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Open eclass 2.1 Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Περιγραφή Πλατφόρµας Η πλατφόρµα Open eclass είναι ένα ολοκληρωµένο Σύστηµα ιαχείρισης Ηλεκτρονικών Μαθηµάτων και αποτελεί την πρόταση του Πανελλήνιου

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

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

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

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

XAMPP Apache MySQL PHP javascript xampp

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

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

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

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

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

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

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

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

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών

Digital Academy. Εισαγωγή στην ανάπτυξη Android Εφαρμογών Digital Academy Εισαγωγή στην ανάπτυξη Android Εφαρμογών Περιεχόμενα ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΕΝΟΤΗΤΑ 1 ΠΡΩΤΗ ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ ANDROID... 4 1.1 ΕΙΣΑΓΩΓΗ... 4 1.2 ΠΗΓΕΣ ΓΝΩΣΗΣ... 4 1.3 ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ... 5 1.4

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

Αξιολόγηση της επίσημης Moodle Mobile εφαρμογής

Αξιολόγηση της επίσημης Moodle Mobile εφαρμογής Αξιολόγηση της επίσημης Moodle Mobile εφαρμογής ΣΕΜΙΝΑΡΙΟ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ ΑΛΕΞΑΝΔΡΟΣ ΚΑΝΤΑΣ ΠΡΩΤΟ ΣΕΜΙΝΑΡΙΟ ΔΕΥΤΕΡΟΥ ΚΥΚΛΟΥ ΕΚΠΑΙΔΕΥΣΗΣΗΣ ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΚΡΗΤΗΣ Αυτή η εργασία

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

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

Προγραμματισμός διαδικτυακών εφαρμογών με PHP ΕΣΔ516: Τεχνολογίες Διαδικτύου Προγραμματισμός διαδικτυακών εφαρμογών με PHP Ερωτήματα μέσω Περιεχόμενα Περιεχόμενα Λογισμικό για εφαρμογές Web Η τριεπίπεδη αρχιτεκτονική (3-tier architecture) Εισαγωγή

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

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

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ -Για τους Φοιτητές- Έκδοση 1.2 Οκτώβριος 2015 Υπεύθυνος Σύνταξης: Χρήστος Λάζαρης (lazaris@aueb.gr) Πίνακας Περιεχομένων Εισαγωγή...

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

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425 Cloud Computing with Google and Microsoft Despoina Trikomitou Andreas Diavastos Class: EPL425 Σχεδιάγραμμα Εισαγωγή Τεχνολογίες Cloud Computing Περιγραφή Εργασίας Επιτεύγματα Εργασίας Συμπεράσματα Cloud

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

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

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). ΙΔΡΥΜΑ ΝΕΟΛΑΙΑΣ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΥΟΥ Καλαμάτα, 2015 Το Διαδίκτυο Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network). Πρόκειται

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

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

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

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

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

Τεχνικός Εφαρμογών Πληροφορικής Τεχνικός Εφαρμογών Πληροφορικής ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής Περιεχόμενα 1.Τι είναι η Php; 2.Πως γίνετε η γραφή

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

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

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com / ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com / 1. Τι είναι το wikidot Το wikidot είναι ένας δικτυακός τόπος στον οποίο κάθε χρήστης έχει το δικαίωμα να δημιουργήσει

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

Ψηφιακό Σχολείο 2.0. Βασικές έννοιες Υποδομές Ηλεκτρονική Μάθηση Διαχείριση Ηλεκτρονικής Τάξης Οργάνωση Ηλεκτρονικού Μαθήματος

Ψηφιακό Σχολείο 2.0. Βασικές έννοιες Υποδομές Ηλεκτρονική Μάθηση Διαχείριση Ηλεκτρονικής Τάξης Οργάνωση Ηλεκτρονικού Μαθήματος Βασικές έννοιες Υποδομές Ηλεκτρονική Μάθηση Διαχείριση Ηλεκτρονικής Τάξης Οργάνωση Ηλεκτρονικού Μαθήματος Βασικές έννοιες Υποδομές H ενσωμάτωση των Τεχνολογιών Πληροφορικής και Επικοινωνίας (ΤΠΕ) στην

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Android Grid Application Θωμάς Αντώνιος (3050073) Καραβέλλας Θεμιστοκλής (3050055) 1. Εισαγωγή Το Android αποτελεί ένα λειτουργικό σύστημα για κινητές συσκευές. Το λειτουργικό αυτό

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

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) - 1 - Αθήνα, 16 Μαρτίου 2007. 1. Εισαγωγή

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7. Οδηγίες Αναβάθμισης (Upgrade) - 1 - Αθήνα, 16 Μαρτίου 2007. 1. Εισαγωγή Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης eclass 1.7 Οδηγίες Αναβάθμισης (Upgrade) Ομάδα Εργασίας: Τσιμπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 16 Μαρτίου 2007 1. Εισαγωγή Η πλατφόρμα eclass είναι ένα

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

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

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

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

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college.

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college. Χρήση της Διεπαφής Προγραμματισμού Εφαρμογής Google Maps για τη δημιουργία διαδραστικού χάρτη με τα Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς της ΟΥΝΕΣΚΟ στη Θεσσαλονίκη Εμμανουήλ Τσάμης 1, Κωνσταντίνος

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

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα Λιόλιου Γεωργία ΕπιβλέπουσαΚαθηγήτρια: ΣατρατζέµηΜάγια, καθηγήτρια, τµ. ΕφαρµοσµένηςΠληροφορικής, ΠΑΜΑΚ Εισαγωγή Γενικά στοιχεία εφαρµογή

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

Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών

Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών Υπηρεσία Ασύγχρονης Τηλεκπαίδευσης Εθνικό & Καποδιστρικό Πανεπιστήμιο Αθηνών ΤΣΙΜΠΑΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΞΗΝΤΑΡΙΔΗΣ ΙΩΑΝΝΗΣ Κέντρο Λειτουργίας και Διαχείρισης Δικτύου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή

Μια καλή επιλογή θα ήταν www.epipla-onomasas.gr (χωρίζοντας τις λέξεις με παύλα -) ή Τι είναι ένα CMS CMS ή Σύστημα Διαχείρισης Περιεχομένου (Content Management System) ονομάζουμε ένα λογισμικό που μας βοηθά να ελέγχουμε και να διαχειριζόμαστε έναν ιστότοπο δημόσιας ή περιορισμένης πρόσβασης.

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ PHP Για να γίνουμε όλοι καλύτεροι άνθρωποι Τι έχει το μενού σήμερα??? 1. Τι είναι η PHP??? Τι είναι

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

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

Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. (www.sch.gr) 2. Τοπικά 3. Σε δωρεάν Server Γεώργιος Χρ. Μακρής Εγκατάσταση Joomla 1. Στο Π.Σ.Δ. (www.sch.gr) 2. Τοπικά 3. Σε δωρεάν Server 2012 Γ ε ώ ρ γ ι ο ς Χ ρ. Μ α κ ρ ή ς ( h t t p : / / u s e r s. s c h. g r / g m a k r i s ) Περιεχόμενα

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

Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία

Ξεκινώντας με το MIT Αρρ Inventor. 1 η Εργασία Ξεκινώντας με το MIT Αρρ Inventor 1 η Εργασία Απαιτήσεις 1. Σύνδεση στο Διαδίκτυο (διότι οι εφαρμογές δημιουργούνται online) 2. Εγκατεστημένος ο Browser Google Chrome 3. Υπαρκτός λογαριασμός Gmail 4. Κατεβάστε

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

ΚΕΠΛΗΝΕΤ ΕΒΡΟΥ. Καλτσίδης Χρήστος

ΚΕΠΛΗΝΕΤ ΕΒΡΟΥ. Καλτσίδης Χρήστος Καλτσίδης Χρήστος Μάρτιος 2009 Υπηρεσία Φιλοξενίας Ιστοσελίδων στο ΠΣΔ Η υπηρεσία φιλοξενίας σελίδων στο Πανελλήνιο Σχολικό Δίκτυο έχει σκοπό την προβολή των δραστηριοτήτων των σχολικών μονάδων και του

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

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. 3. Η υλοποίηση απλών ερωτημάτων mysql

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

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

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

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

Παρουσίαση Θερινού Σχολείου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Παρουσίαση Θερινού Σχολείου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Παρουσίαση Θερινού Σχολείου Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας 2 Στόχος Στόχος Θερινού Σχολείου 3 η εντατική, πρακτική εκπαίδευση των συμμετεχόντων με απώτερο σκοπό τη συμμετοχή τους στη συνεργατική ανάπτυξη Έργου

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

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

Αποτελεί την πρόταση του GUnet. ασύγχρονης τηλεκπαίδευσης. Είναι ένα ανοικτό αρθρωτό σύστημα διαχείρισης ηλεκτρονικών μαθημάτων Open eclass -GUnet Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης ης ΣΥΝΕ ΡΙΟ ΗΜΙΟΥΡΓΩΝ ΕΛΛΑΚ 19-20 Ιουνίου 2009 ΤΣΙΜΠΑΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Υπεύθυνος Ομάδας Ασύγχρονης Τηλεκπαίδευσης GUnet η πλατφόρμα με δυο λόγια Αποτελεί

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

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) - 1 - Αθήνα, 1 Ιουνίου 2007. 1. Εισαγωγή

Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0. Οδηγίες Αναβάθµισης (Upgrade) - 1 - Αθήνα, 1 Ιουνίου 2007. 1. Εισαγωγή Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης eclass 2.0 Οδηγίες Αναβάθµισης (Upgrade) Οµάδα Εργασίας: Τσιµπάνης Κωνσταντίνος, Εξηνταρίδης Γιάννης Αθήνα, 1 Ιουνίου 2007 1. Εισαγωγή Η πλατφόρµα eclass είναι ένα ολοκληρωµένο

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: http://www.greektuts.net/greek-in-joomla/ 1) Εμφάνιση ιστοσελίδας Ανοίγουμε το πρόγραμμα πλοήγησης (Firefox, Chrome, Internet Explorer κτλ) και στη γραμμή διευθύνσεων πληκτρολογούμε τη διεύθυνση http://localhost ή http://127.0.0.1. Αν δεν βλέπουμε

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ ΟΔΗΓΟΣ ΣΥΝΔΕΣΗΣ ΣΤO ΔΙΚΤΥΟ ΤΟΥ ΤΠΚ ΜΕΣΩ ΤΗΣ ΥΠΗΡΕΣΙΑΣ ΑΠΟΜΑΚΡΥΣΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ VPN ΥΣΠΤ Η υπηρεσία πρόσβασης στο δίκτυο δεδομένων του ΤΠΚ μέσω εικονικού ιδιωτικού δικτύου

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

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

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

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

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

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

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

Εργαστήριο #10 (Ε10) 1

Εργαστήριο #10 (Ε10) 1 Εργαστήριο #10 Από τα προηγούμενα εργαστήρια......θα χρειαστείτε ορισμένες από τις οδηγίες μορφοποίησης CSS (ανατρέξτε στις εκφωνήσεις του 8 ου και 9 ου εργαστηρίου).! Οδηγίες Στη δυναμική δημιουργία ιστοσελίδων

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

Παρουσίαση υπηρεσιών Τηλεδιάσκεψης και Aσύγχρονης εξ αποστάσεως εκπαίδευσης στο Πανελλήνιο Σχολικό Δίκτυο

Παρουσίαση υπηρεσιών Τηλεδιάσκεψης και Aσύγχρονης εξ αποστάσεως εκπαίδευσης στο Πανελλήνιο Σχολικό Δίκτυο Παρουσίαση υπηρεσιών Τηλεδιάσκεψης και Aσύγχρονης εξ αποστάσεως εκπαίδευσης στο Πανελλήνιο Σχολικό Δίκτυο Δρ. Αύγουστος Τσινάκος ΠΛΗΝΕΤ Δυτικής Θεσ/νίκης tsinakos@uom.gr Παν. Μακεδονίας Ομάδα Εργασίας

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

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Β5.1.2 Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Τι θα μάθουμε σήμερα: Να ορίζουμε τι είναι πρωτόκολλο επικοινωνίας Να εξηγούμε τη χρησιμότητα των πρωτοκόλλων επικοινωνίας Να ονομάζουμε τα σημαντικότερα

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER Η εφαρμογή LiveTripTraveller διατίθεται για κινητά τηλέφωνα με λειτουργικό σύστημα Android. Στο υπο-ιστοσελίδα www.livetrips.com/sources μπορείτε να κατεβάσετε την εφαρμογή

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

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

Εφαρμογή Διαχείρισης Ψηφιακής Πληροφορίας ΟΔΗΓΟΣ ΧΡΗΣΗΣ System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 25 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Λογισμική Εφαρμογή Διαχείρισης Ψηφιακής

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

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer

Σεμινάριο joomla! 3. Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer Σεμινάριο joomla! 3 Διοργάνωση: Άλφα Εκπαιδευτική Εισηγητής: Μοτσενίγος Ιωάννης Ηλεκτρονικός Μηχανικός-Σύμβουλος Internet Marketing- Web Designer Ξεκινώντας:Τι είναι τα CMS Η Joomla είναι λογισμικό κατασκευής

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

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

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

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

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

Πλοήγηση www / Με τον Internet Explorer Πλοήγηση www / Με τον Internet Explorer Περιεχόμενα 1.Eισαγωγή 2.Το περιβάλλον του Internet Explorer 3.Οδηγίες πλοήγησης 4.Αποθήκευση αρχείων 5.Αγαπημένα 6.Ασφαλής σύνδεση 7.Διακομιστής μεσολάβησης 1.Εισαγωγή

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΕΦΑΡΜΟΓΩΝ JAIN-SIP-PROXY και SIP-COMMUNICATOR Εισαγωγή Αυτές οι οδηγίες περιγράφουν τα βήματα για να εγκαταστήσουμε τις εφαρμογές JAIN- SIP-Proxy και SIP-Communicator.

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

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

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

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

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

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

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

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

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής Εργαλεία και τεχνικές από την πλευρά του πελάτη Java Applet

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

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

GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης GUnet eclass 1.7 Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Εγχειρίδιο Χρήστη - Φοιτητή Η πλατφόρμα eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και αποτελεί την πρόταση του Ακαδημαϊκού

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

Ενημέρωση σε Windows 8.1 από τα Windows 8

Ενημέρωση σε Windows 8.1 από τα Windows 8 Ενημέρωση σε Windows 8.1 από τα Windows 8 Τα Windows 8.1 και τα Windows RT 8.1 είναι βασισμένα στα Windows 8 και στα Windows RT, για να σας προσφέρουν βελτιώσεις στην εξατομίκευση, την αναζήτηση, τις εφαρμογές,

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

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

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

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

DreamSpark. Τώρα λοιπόν που μάθατε περι τίνος πρόκειται, ας δούμε πώς μπορεί κάποιος να κατεβάσει λογισμικό από το site του DreamSpark.

DreamSpark. Τώρα λοιπόν που μάθατε περι τίνος πρόκειται, ας δούμε πώς μπορεί κάποιος να κατεβάσει λογισμικό από το site του DreamSpark. DreamSpark Το DreamSpark είναι μια πρωτοβουλία της Microsoft, για δωρεάν παροχή λογισμικού σε φοιτητές και άλλα μέλη ακαδημαϊκών ιδρυμάτων, για ερευνητικούς-εκπαιδευτικούς σκοπούς και όχι μόνο. To λογισμικό

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

Δράση Α8. Πρακτική εκπαίδευση του προσωπικού ενδοσχολικής τεχνικής υποστήριξης. Υπηρεσίες Πανελλήνιου Σχολικού Δικτύου

Δράση Α8. Πρακτική εκπαίδευση του προσωπικού ενδοσχολικής τεχνικής υποστήριξης. Υπηρεσίες Πανελλήνιου Σχολικού Δικτύου Οριζόντιο Έργο Υποστήριξης Σχολείων, Εκπαιδευτικών και Μαθητών στο Δρόμο για το ΨΗΦΙΑΚΟ ΣΧΟΛΕΙΟ, νέες υπηρεσίες Πανελλήνιου Σχολικού Δικτύου και Στήριξη του ΨΗΦΙΑΚΟΥ ΣΧΟΛΕΙΟΥ Δράση Α8 Πρακτική εκπαίδευση

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

ΟΔΗΓΟΣ ΑΡΧΑΡΙΩΝ. Περιεχόμενα

ΟΔΗΓΟΣ ΑΡΧΑΡΙΩΝ. Περιεχόμενα ΟΔΗΓΟΣ ΑΡΧΑΡΙΩΝ Περιεχόμενα 1) Εισαγωγή 2) Οδηγός εγγραφής στο site της PCnews 3) Βρείτε τα καλύτερα του site Γίνετε φίλοι μας στο Facebook 4) Σχετικά με τον τύπο αρχείου PDF - 1 - Εισαγωγή Καλωσορίσατε

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

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014 Εισαγωγικές έννοιες Ιωάννης Γ. Τσούλος 2014 Διάγραμμα παρουσιάσεως 1. Κατηγορίες κινητών τηλεφώνων 2. Κατηγορίες έξυπνων κινητών τηλεφώνων 3. Προγραμματισμός κινητών συσκευών 4. Ξεκίνημα με το Eclipse

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

e-κπαίδευση Πλατφόρµα Ασύγχρονης Τηλε-κπαίδευσης Οδηγίες χρήσης για τους σπουδαστές του ΤΕΙ Αθήνας και τους επισκέπτες της δικτυακής πύλης e-κπαίδευση

e-κπαίδευση Πλατφόρµα Ασύγχρονης Τηλε-κπαίδευσης Οδηγίες χρήσης για τους σπουδαστές του ΤΕΙ Αθήνας και τους επισκέπτες της δικτυακής πύλης e-κπαίδευση e-κπαίδευση Πλατφόρµα Ασύγχρονης Τηλε-κπαίδευσης Οδηγίες χρήσης για τους σπουδαστές του ΤΕΙ Αθήνας και τους επισκέπτες της δικτυακής πύλης e-κπαίδευση - 0 - Πίνακας Περιεχοµένων 1 Εισαγωγή.. 2 1.1 Σχολές/Τµήµατα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη 1 3 η ενότητα: Εισαγωγή στις Βάσεις Δεδομένων και στην MySQL

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

Το Έργο Συνεισφοράς. Ανάπτυξη εφαρμογής για κινητές συσκευές του Σ.Δ.Μ. Open eclass. Θερινό Σχολείο, 14 20 Ιουλίου 2014

Το Έργο Συνεισφοράς. Ανάπτυξη εφαρμογής για κινητές συσκευές του Σ.Δ.Μ. Open eclass. Θερινό Σχολείο, 14 20 Ιουλίου 2014 Θερινό Σχολείο, 14 20 Ιουλίου 2014 Το Έργο Συνεισφοράς Ανάπτυξη εφαρμογής για κινητές συσκευές του Σ.Δ.Μ. Open eclass Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Θέμα Γενική Περιγραφή 2 Συνεργατική ανάπτυξη Έργου

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

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε! Θέλετε να μάθετε πως μπορείτε να έχετε πρόσβαση στις 5250 οθόνες μέσω browser, χωρίς αλλαγή στις υπάρχουσες εφαρμογές και χωρίς εγκατάσταση στον client? Αν Ναι, δείτε πως με το λογισμικό axes μπορείτε!

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

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

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP Εισαγωγή... 1 Σε Ποιους Απευθύνεται το Βιβλίο... 1 Η Οργάνωση του Βιβλίου... 2 Ο Πηγαίος Κώδικας του Βιβλίου... 3 Συμβάσεις που Χρησιμοποιούνται σε Αυτό το Βιβλίο... 3 Μέρος Ι: Εγκατάσταση και ιαμόρφωση

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

SingularLogic Σεπτέμβριος 2014

SingularLogic Σεπτέμβριος 2014 LIVE UPDATE Έκδοση 5 SingularLogic Σεπτέμβριος 2014 SingularLogic Live Update (SLUC) Είναι μια ανεξάρτητη εφαρμογή που σας επιτρέπει με εύκολο τρόπο: Να ενημερώνεστε για τις τρέχουσες προσφορές της SingularLogic

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

Εργαστήριο Βάσεων Δεδομένων

Εργαστήριο Βάσεων Δεδομένων Εργαστήριο Βάσεων Δεδομένων Άσκηση 2 Σκοπός της άσκησης είναι: 1. Με δεδομένο το σχεσιακό διάγραμμα, η υλοποίηση μιας βάσης σε MySQL. 2. Η εισαγωγή δεδομένων στη βάση. Για το κείμενο των προδιαγραφών της

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

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

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

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

Ηλεκτρονικές Υπηρεσίες

Ηλεκτρονικές Υπηρεσίες ΕΓΧΕΙΡΙ ΙΟ Ο ΗΓΙΩΝ ΔΑΠΥ Ηλεκτρονικές Υπηρεσίες Πίνακας Υποβολών & Υπολοίπων ανά Ασφαλιστικό Ταμείο Πίνακας Περιεχομένων 1. Εισαγωγή... 3 1.1 Συμβατότητα Browser... 3 1.2 Διεύθυνση πρόσβασης... 3 1.3 Login

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

ΕΙΣΑΓΩΓΗ... 4 ΕΓΓΡΑΦΗ... 5 ΤΑ ΜΑΘΗΜΑΤΑ ΜΟΥ... 6 ΑΛΛΑΓΗ ΤΟΥ ΠΡΟΦΙΛ ΜΟΥ... 7 ΛΙΣΤΑ ΜΑΘΗΜΑΤΩΝ... 8 ΤΟ ΗΜΕΡΟΛΟΓΙΟ ΜΟΥ... 9 ΟΙ ΑΝΑΚΟΙΝΩΣΕΙΣ ΜΟΥ...

ΕΙΣΑΓΩΓΗ... 4 ΕΓΓΡΑΦΗ... 5 ΤΑ ΜΑΘΗΜΑΤΑ ΜΟΥ... 6 ΑΛΛΑΓΗ ΤΟΥ ΠΡΟΦΙΛ ΜΟΥ... 7 ΛΙΣΤΑ ΜΑΘΗΜΑΤΩΝ... 8 ΤΟ ΗΜΕΡΟΛΟΓΙΟ ΜΟΥ... 9 ΟΙ ΑΝΑΚΟΙΝΩΣΕΙΣ ΜΟΥ... Εγχειρίδιο Φοιτητών GUnet e-class Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Εγχειρίδιο Φοιτητών Συντάκτης Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης Ηµεροµηνία Νοέµβριος

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΦΟΙΤΗΤΩΝ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΦΟΙΤΗΤΩΝ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΦΟΙΤΗΤΩΝ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ [1] Το πρόγραμμα ΕΠΕΑΕΚ και οι δράσεις του τμήματος ΔΓΕ... 3 [2] Τι είναι η πλατφόρμα eclass;... 5 [3] Πώς μπορώ να επισκεφθώ την πλατφόρμα eclass ;... 5

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

Σενάριο Εστίασης Win XP:

Σενάριο Εστίασης Win XP: Σενάριο Εστίασης Win XP: Υλικό: 1 Η/Υ (backoffice), 1 POS, 1 router Motorola, 1 PDA. Σενάριο: Sync του backoffice με το POS και merge του POS με το PDA. Προϋποθέσεις Software: 1) BACK OFFICE : WIN XP pro,.net

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

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

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

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

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

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

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

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

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

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

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

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

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

ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ 2 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 351 ΟΙ ΨΗΦΙΑΚΕΣ ΕΙΚΟΝΙΚΕΣ ΚΟΙΝΟΤΗΤΕΣ ΩΣ ΔΟΜΕΣ ΣΤΗΡΙΞΗΣ ΤΟΥ ΕΚΠΑΙΔΕΥΤΙΚΟΥ ΈΡΓΟΥ Τζουμάκας Βασίλης Καθηγητής Πληροφορικής στο Παπαστράτειο Γυμνάσιο Αγρινίου vtzoum@sch.gr

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

Το Open Eclass ως Σύστημα Διαχείρισης Μάθησης

Το Open Eclass ως Σύστημα Διαχείρισης Μάθησης Θερινό Σχολείο, 14 20 Ιουλίου 2014 Το Open Eclass ως Σύστημα Διαχείρισης Μάθησης Βάλια Τριπερίνα Γιώργος Φουρτούνης Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Περιγραφή 2 Συστήματα διαχείρισης μάθησης Open eclass

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

www.e-katartisi.com Equal Society e-learning platform

www.e-katartisi.com Equal Society e-learning platform www.e-katartisi.com Equal Society e-learning platform Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΕΙΣΟ ΟΣ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ Για να εισέλθετε στην πλατφόρµα τηλεκατάρτισης της Equal Society και να έχετε πρόσβαση στα περιεχόµενά

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

Εγχειρίδιο εκπαιδευτή

Εγχειρίδιο εκπαιδευτή Εγχειρίδιο εκπαιδευτή Καλώς ήλθατε στο Ηλεκτρονικό Περιβάλλον Μάθησης http://elearning.kekdiastasi.edu.gr/ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή... 3 2. Τι είναι η Πλατφόρµα Τηλεκατάρτισης... 4 3. Απαραίτητος

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

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word Επειδή οι μεταγενέστερες εκδόσεις του Word δεν περιλαμβάνουν στο μενού τη δυνατότητα δημιουργίας πολλαπλών

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

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

ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ ΓΡΕΒΕΝΩΝ ΤΜΗΜΑ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Θέμα : ΥΛΟΠΟΙΗΣΗ ΞΕΝΟΓΛΩΣΣΗΣ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΕΦΑΡΜΟΓΗΣ ΣΕ ΠΛΑΤΦΟΡΜΑ ANDROID Όνοματεπώνυμο : Στέκας Ιγνάτιος Επιβλέπων : Σωτήριος Κοντογιάννης Ημερομηνία

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

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

Οδηγός γρήγορης εκκίνησης Χρήση του Office 365 σε τηλέφωνο Windows Phone Οδηγός γρήγορης εκκίνησης Έλεγχος ηλεκτρονικού ταχυδρομείου Ρυθμίστε το Windows Phone για αποστολή και λήψη ηλεκτρονικού ταχυδρομείου από το λογαριασμό του

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΔΙΕΥΘΥΝΣΗ ΜΗΧΑΝΟΡΓΑΝΩΣΗΣ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου Συντάκτες: Παναγιώτα Μπούγια Θεοδώρα Νάνου Ιανουάριος 2015 Περιεχόμενα 1. Εισαγωγή...

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

Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning

Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning Εισαγωγή Η εφαρμογή των περιοδικών etwinning δίνει τη δυνατότητα σε εκπαιδευτικούς που έχουν λογαριασμό στο Πανελλήνιο Σχολικό Δίκτυο και που έχουν

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

Πλατφόρμα ηλεκτρονικής παρακολούθησης μαθημάτων εξ αποστάσεως Οδηγός Χρήστη www.schoolessons.gr

Πλατφόρμα ηλεκτρονικής παρακολούθησης μαθημάτων εξ αποστάσεως Οδηγός Χρήστη www.schoolessons.gr Πλατφόρμα ηλεκτρονικής παρακολούθησης μαθημάτων εξ αποστάσεως Οδηγός Χρήστη www.schoolessons.gr Σύντομη Περιγραφή Η πλατφόρμα ηλεκτρονικής παρακολούθησης μαθημάτων εξ αποστάσεως της δίνει τη δυνατότητα

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ

ΟΔΗΓΟΣ ΧΡΗΣΗΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ ΟΔΗΓΟΣ ΧΡΗΣΗΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ ΠΕΡΙΕΧΟΜΕΝΑ 1. URL Διεύθυνση WebMail... 3 2. Εγκατάσταση Πιστοποιητικού Ασφάλειας... 3 2.1 Εγκατάσταση Πιστοποιητικού στον Internet Explorer... 3 2.2 Εγκατάσταση Πιστοποιητικού

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

ZTrade Quick Start User Manual Version 2.2

ZTrade Quick Start User Manual Version 2.2 ZTrade Quick Start User Manual Version 2.2 1. Εισαγωγή Το κείμενο αυτό περιγράφει τις βασικές λειτουργίες της εφαρμογής ZΤrade για την παρακολούθηση των αγορών και την διαχείριση των χαρτοφυλακίων. Για

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

SilverPlatter WebSPIRS 4.1.

SilverPlatter WebSPIRS 4.1. WebSPIRS 4.1. Η υπηρεσία WebSPIRS από τη SilverPlatter αποτελεί ένα φιλικό εργαλείο πρόσβασης και αναζήτησης σε περιεχόμενα βάσεων δεδομένων. Η Βιβλιοθήκη και Κέντρο Πληροφόρησης του Πανεπιστημίου Θεσσαλίας

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

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0 Δομές Δεδομένων 5ο εξάμηνο Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse v1.0 Τις σημειώσεις κράτησαν και διαμόρφωσαν σε word οι: Κονδύλη Γαλήνη, ΑΜ 5576 Μάλλιου Χριστίνα, ΑΜ 5413

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

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

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

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

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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