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

Μέγεθος: 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 μπορούν να βρεθούν στην ιστοσελίδα Το πακέτο 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 όπου παρουσιάζονται οι διαθέσιμες τάξεις και βιβλιοθήκες ( Τέλος υπάρχουν πολυάριθμα 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=" 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(" 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 Προσομοιωτής

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

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

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

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

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

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

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

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

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

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

Open eclass Documentation 1/16 Περιγραφή Πλατφόρμας

Open eclass Documentation 1/16 Περιγραφή Πλατφόρμας Open eclass Documentation 1/16 Περιγραφή Πλατφόρμας Περιγραφή Πλατφόρμας Open eclass (ver.3.5) 1. Εισαγωγή Η πλατφόρμα Open eclass είναι ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών Μαθημάτων και

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

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

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

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

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010 Python και Python και Νίκος Νοδαράκης 17 Μαΐου 2010 Python και Τι είναι το ; Περιγραφή του Ορισµός Το είναι µια στοίβα λογισµικού για ϕορητές συσκευές που περιλαµβάνει ένα λειτουργικό σύστηµα, middleware

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

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

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

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

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Βιβλιογραφία: Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Προγραμματισμός Android Ian Clifton. AndroidTM User Interface Design, Addison-Wesley, 2013 P. Deitel. H. Deitel, A. Deitel.

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

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

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

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

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

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

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

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

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

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

XAMPP Apache MySQL PHP javascript xampp

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

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

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

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

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

Συνοπτικός Οδηγός Χρήσης του 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

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

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

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA Καλωσορίσατε στην πλατφόρμα ηλεκτρονικής μάθησης E-Agiografia, Η Media Suite έχει αναπτύξει το Ολοκληρωμένο Σύστημα Τηλεκατάρτισης (e-learning) με την επωνυμία

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

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

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

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

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

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

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

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

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

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

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

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

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

databases linux - terminal (linux / windows terminal)

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

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

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

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Βάσεις Δεδομένων 2η εργαστηριακή άσκηση Εισαγωγή στο περιβάλλον της oracle Δημιουργία πινάκων Δρ. Εύη Φαλιάγκα 1. Login Χρησιμοποιώντας έναν web explorer, μπαίνετε στο http://10.0.0.6:8080/apex και συμπληρώνετε

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

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α 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 είναι ένας δικτυακός τόπος στον οποίο κάθε χρήστης έχει το δικαίωμα να δημιουργήσει

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

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

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

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

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

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

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

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

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

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

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2 ΔΕΣΠΟΙΝΑ ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ dpap@unipi.gr ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΜΕ POWER DESIGNER ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΤΗΣ ΜΕ XAMPP (1/7) ΑΣΚΗΣΗ

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

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

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

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

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης

Διπλωματική Εργασία. Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης ΠΜΣ Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας Διπλωματική Εργασία Μουσικές Εφαρμογές σε Περιβάλλον Κινητών Συσκευών Android με Χαρακτηριστικά Εξατομίκευσης Ονοματεπώνυμο: Βλάχος Αθανάσιος Επιβλέπων

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

Εγχειρίδιο Χρήστη - Μαθητή

Εγχειρίδιο Χρήστη - Μαθητή Εγχειρίδιο Χρήστη - Μαθητή 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα

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

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

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

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

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

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

Εγκατάσταση 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 ) Περιεχόμενα

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

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

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

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

Η χρήση του MOODLE από την οπτική γωνία του ιαχειριστή

Η χρήση του MOODLE από την οπτική γωνία του ιαχειριστή Ανοικτή και Εξ Αποστάσεως Εκπαίδευση Χρησιµοποιώντας το Εκπαιδευτικό Περιβάλλον του MOODLE. Open and Distance Learning Using MOODLE Learning Environment Αθανάσιος Ι. Μάργαρης, Ευθύµιος. Κότσιαλος Πανεπιστήµιο

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΦΙΛΟΣΟΦΙΑ ΠΛΑΤΦΟΡΜΑΣ... 4

ΕΙΣΑΓΩΓΗ ΦΙΛΟΣΟΦΙΑ ΠΛΑΤΦΟΡΜΑΣ... 4 Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης η-τάξη Εθνικόν και Καποδιστριακόν Πανεπιστήµιον Αθηνών Οµάδα Ασύγχρονης Τηλεκπαίδευσης Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης Συντάκτης Εθνικό & Καποδιστριακό Πανεπιστήµιο

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

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

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

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

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

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

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

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

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

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

Άσκηση. Εξοικείωση με την πλατφόρμα Moodle

Άσκηση. Εξοικείωση με την πλατφόρμα Moodle ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Μηχανικών Πληροφορικής ΤΕ Συστήματα Τηλεκπαίδευσης Άσκηση Εξοικείωση με την πλατφόρμα Moodle Με την άσκηση αυτή θα ενημερωθείτε και θα αρχίσετε να εξοικειώνεστε με το Σύστημα Διαχείρισης

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

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

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

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

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

ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA ΟΛΟΚΛΗΡΩΜΕΝΟ ΣΥΣΤΗΜΑ ΤΗΛΕΚΑΤΑΡΤΙΣΗΣ E-AGIOGRAFIA Καλωσορίσατε στην πλατφόρμα ηλεκτρονικής μάθησης E-Agiografia, Η Media Suite έχει αναπτύξει το Ολοκληρωμένο Σύστημα Τηλεκατάρτισης (e-learning) με την επωνυμία

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

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

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

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

Edmodo Σύντομος οδηγός για εκπαιδευτικούς

Edmodo Σύντομος οδηγός για εκπαιδευτικούς Edmodo Σύντομος οδηγός για εκπαιδευτικούς Δημήτρης Συμεωνίδης (www.demsym.com) Τι είναι το Edmodo Το Edmodo είναι μια δωρεάν και ασφαλής πλατφόρμα κοινωνικής δικτύωσης και ηλεκτρονικής μάθησης ειδικά σχεδιασμένη

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

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ: 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. Αν δεν βλέπουμε

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

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

Περιεχόμενα. Εισαγωγή. Οδηγός Χρήστη - Φοιτητή 1 από 14 04/03/2008 05:18 ΜΜ Οδηγός Χρήστη - Φοιτητή Περιεχόμενα Εισαγωγή Άδεια εισόδου Χαρτοφυλάκιο Χρήστη Αλλαγή του προφίλ μου Εγγραφή σε μάθημα Το Ημερολόγιο μου Οι Ανακοινώσεις μου Έξοδος Ηλεκτρονικό

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού Π λ ό λ Α όλ Π ώ Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης Σκοπός και χρησιμότητα της δημιουργίας portal για το τομέα Μικροϋπολογιστών.

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

Μέρος 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 στην

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

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

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

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

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία AtYourService CY : Create a REST API Δημήτρης Χριστοδούλου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Το γεγονός ότι αποτελεί λογισµικό ανοικτού κώδικα το καθιστά αρκετά ευέλικτο σε συνεχείς αλλαγές και βελτιώσεις. Υπάρχει µια πληθώρα χρηστών που το χρ

Το γεγονός ότι αποτελεί λογισµικό ανοικτού κώδικα το καθιστά αρκετά ευέλικτο σε συνεχείς αλλαγές και βελτιώσεις. Υπάρχει µια πληθώρα χρηστών που το χρ ΤΕΙ Ιονίων Νήσων Άλλες Πλατφόρµες Ασύγχρονης Τηλεκπαίδευσης εκτός του e-class Είναι ένα πακέτο λογισµικού για διεξαγωγή ηλεκτρονικών µαθηµάτων µέσω διαδικτύου, το οποίο προσφέρει ολοκληρωµένες Υπηρεσίες

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

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

Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Moodle Πλατφόρμα Ασύγχρονης Τηλεκπαίδευσης Moodle Κάργα Σουλτάνα MSc Πληροφορικός skarga@uom.gr Κατσάνα Αικατερίνη MSc Πληροφορικός akatsana@uom.gr «18 ο Συνάντηση Εκπαιδευτικών για θέματα Τ.Π.Ε. στη Δυτική Μακεδονία»,

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή Εγχειρίδιο Φοιτητών 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από

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

ΥΠΗΡΕΣΙΑ. Ηλεκτρονική ιαχείριση Τάξης. Οδηγίες χρήσης για τον µαθητή.

ΥΠΗΡΕΣΙΑ. Ηλεκτρονική ιαχείριση Τάξης. Οδηγίες χρήσης για τον µαθητή. ΥΠΗΡΕΣΙΑ Ηλεκτρονική ιαχείριση Τάξης Οδηγίες χρήσης για τον µαθητή http://eclass.sch.gr Η υπηρεσία ηλεκτρονικής διαχείρισης τάξης αναπτύχθηκε από το Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών για λογαριασµό

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

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

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

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

Epsilon Net PYLON Platform

Epsilon Net PYLON Platform Epsilon Net PYLON Platform Οδηγίες Εγκατάστασης Top 1 / 31 Περιεχόμενα 1 ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ... 3 2 ΕΓΚΑΤΑΣΤΑΣΗ ΕΦΑΡΜΟΓΗΣ... 5 3 ΕΓΚΑΤΑΣΤΑΣΗ DEMO... 7 4 ΕΓΚΑΤΑΣΤΑΣΗ ΠΡΟΤΥΠΗΣ ΒΑΣΗΣ... 8 4.1 Φόρτωση πρότυπης

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

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

Σύστημα διαχείρισης περιεχομένου (Content Management System) Τι είναι ένα CMS Σύστημα διαχείρισης περιεχομένου (Content Management System) Λογισμικό το οποίο χρησιμοποιείται για την οργάνωση, ταξινόμηση και αρχειοθέτηση πληροφορίας Χρησιμοποιούνται για τη δημιουργία

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή Εγχειρίδιο Φοιτητών 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από

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

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

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

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

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

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ Κεφάλαιο 2. Το περιβάλλον του παγκόσμιου Ιστού Επιμέλεια: Καραγιάννης Σπύρος Καθηγητής ΠΕ19 Πλεονεκτήματα παγκόσμιου Ιστού Εξυπηρετητής Ιστού & Ιστοσελίδες Κύριες

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr 1 Δομημένος προγραμματισμός έναντι αντικειμενοστρεφούς

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

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Διαδικτυακές Εφαρμογές Ενότητα 1: JPA Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η Δ.Πολίτης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

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

Application... 4 Java Development Kit... 4 Android SDK... 5 Android Studio... 6 Genymotion... 8 ια ο Web Panel... 10

Application... 4 Java Development Kit... 4 Android SDK... 5 Android Studio... 6 Genymotion... 8 ια ο Web Panel... 10 Α. Η Η Α Α Α Α Ω Η Η Η Α Ε ογ οο η η ω ο όγιο ογ ά ο ε Android Ο ο ώ Α ιθ ός Μη Ε ο ο: Ι ιά ς ή ιος ώο : de01135 ύω Κθη η ής: ω ή ς Κο ο ιά ς Η Η κ β ά 6 Π ι χό ισ ω ή... 3... 4 Γ Application... 4 Java

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

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

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

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

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

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

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

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

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων) Τι είναι το Wordpress: To Wordpress είναι ένα δωρεάν ανοικτού κώδικα (open source) λογισμικό (εφαρμογή), με το οποίο μπορεί κάποιος να δημιουργεί

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ CLAROLINE Κατάλογος περιεχομένων Εγγραφή μαθητή στο Claroline...2 Εγγραφή σε μάθημα...3 Τα μαθήματά μου...4 Αλλαγή του προφίλ μου (Manage my account)...4

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

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

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

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

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

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

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

Ενημέρωση σε 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, για να σας προσφέρουν βελτιώσεις στην εξατομίκευση, την αναζήτηση, τις εφαρμογές,

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

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων World Wide Web Παγκόσμιος Ιστός Internet - WWW Internet: παγκόσμιο δίκτυο υπολογιστών που βασίζεται στο πρωτόκολο επικοινωνίας TCP/IP και

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

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I) JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I) Δημήτρης Μακρής Advanced Topics in Telecoms 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 1 Ο ΒΗΜΑ: ΞΕΚΙΝΩΝΤΑΣ ΤΟ JOOMLA 2 Ο ΒΗΜΑ: ΔΙΑΧΕΙΡΙΖΟΝΤΑΣ

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

ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ Α_ΤΕΤΡΑΜ_ ΕΣΠΕΡΙΝΟ ΛΥΚΕΙΟ ΛΑΡΙΣΑΣ. ΘΕΜΑ: E-LEARNING Αντζελα Πιετρη-Αριστελα Γκιονι ESPERINO LYKEIO LARISAS

ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ Α_ΤΕΤΡΑΜ_ ΕΣΠΕΡΙΝΟ ΛΥΚΕΙΟ ΛΑΡΙΣΑΣ. ΘΕΜΑ: E-LEARNING Αντζελα Πιετρη-Αριστελα Γκιονι ESPERINO LYKEIO LARISAS ΕΡΕΥΝΗΤΙΚΗ ΕΡΓΑΣΙΑ Α_ΤΕΤΡΑΜ_2014-15 ΕΣΠΕΡΙΝΟ ΛΥΚΕΙΟ ΛΑΡΙΣΑΣ ΘΕΜΑ: E-LEARNING Αντζελα Πιετρη-Αριστελα Γκιονι ΜΑΘΗΣΗ Μάθηση είναι μια μόνιμη αλλαγή στη συμπεριφορά του ατόμου, η οποία είναι αποτέλεσμα εμπειρίας

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

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

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

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

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

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

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

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

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

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

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

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

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

Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 ο Μάθημα

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

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

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

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