SudoCapp

SudoCapp

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

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

Περιγραφή του προβλήματος

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

Η πρόκληση που αναλαμβάνουμε να αντιμετωπίσουμε είναι η παροχή ίσων ευκαιριών για αυτά τα παιδιά, προάγοντας την αυτονομία τους και διευκολύνοντας την καθημερινότητά τους μέσω της ψηφιακής τεχνολογίας. Η εφαρμογή μας προσπαθεί να καλύψει αυτό το κενό, αξιοποιώντας τις δυνατότητες της τεχνητής νοημοσύνης για τη δημιουργία ενός εικονικού φίλου που θα ενισχύει την ανεξάρτητη διαβίωση των παιδιών με ειδικές εκπαιδευτικές ανάγκες ή/και αναπηρία και θα προωθεί την κοινωνική συμπερίληψη. Με αυτόν τον τρόπο, συνεισφέρουμε στους δυο από τους 17 στόχους της Ατζέντας 2030 για τη Βιώσιμη Ανάπτυξη (Sustainable Development Goals – SDGs). Συγκεκριμένα, η εφαρμογή μας εναρμονίζεται με τον στόχο 4, «Ποιοτική Εκπαίδευση» (SDG 4) και τον στόχο 11, «Βιώσιμες Πόλεις και Κοινότητες».

Περιγραφή προτεινόμενης λύσης

Η εφαρμογή μας αξιοποιεί την τεχνητή νοημοσύνη (AI) για να υποστηρίξει την καθημερινότητα των παιδιών με ειδικές εκπαιδευτικές ανάγκες ή/και αναπηρία, προσφέροντάς τους έναν ψηφιακό φίλο που λειτουργεί ως υπενθύμιση βασικών ρουτινών και βοηθά στην ανάπτυξη αυτονομίας. Λειτουργεί μέσω φωνητικής επικοινωνίας, επιτρέποντας στα παιδιά να αλληλεπιδρούν με φυσικό τρόπο. Χρησιμοποιώντας τεχνολογίες αναγνώρισης ομιλίας και επεξεργασίας φυσικής γλώσσας (NLP), η εφαρμογή κατανοεί λέξεις και φράσεις που χρησιμοποιούν τα παιδιά, προσαρμόζοντας τις απαντήσεις και τις ενέργειές της στις ατομικές ανάγκες τους. Μέσα από ένα ολοκληρωμένο σύστημα υπενθυμίσεων, βοηθά τα παιδιά να ολοκληρώσουν καθημερινές ρουτίνες, όπως το ξύπνημα, το βούρτσισμα των δοντιών, την προετοιμασία για το σχολείο, τα γεύματα, κ.ά., ενώ παρέχει θετική ενίσχυση για την επίτευξή τους.

Η “SudoCapp” μπορεί να εγκατασταθεί σε οποιαδήποτε φορητή συσκευή (κινητά ή tablet), καθιστώντας την εύκολα διαθέσιμη για οικογένειες και εκπαιδευτικούς. Παράλληλα, οι δυνατότητες AI επιτρέπουν συνεχή βελτίωση, προσφέροντας εξατομικευμένες εμπειρίες για κάθε παιδί.

Θεωρούμε ότι η “SudoCapp” γεφυρώνει το ψηφιακό χάσμα, προάγοντας τη συμπερίληψη παιδιών με ειδικές εκπαιδευτικές ανάγκες ή/και αναπηρία στην κοινωνία. Η συμπερίληψη επιτυγχάνεται με την ενίσχυση της αυτοπεποίθησή τους, την καλλιέργεια κοινωνικών δεξιοτήτων και τη διευκόλυνση της εκμάθησης δεξιοτήτων καθημερινής ζωής τους, μέσω ενός ένα εργαλείου που μπορεί να χρησιμοποιηθεί ευρύτερα από εκπαιδευτικά ιδρύματα, γονείς, και ειδικούς.

Περιγραφή τεχνολογίας που χρησιμοποιήθηκε

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

Κεντρικό ρόλο στην εφαρμογή μας παίζουν οι τεχνολογίες Speech Recognition (αναγνώριση ομιλίας) και Text-to-Speech (μετατροπή κειμένου σε ομιλία). Μέσω του Speech Recognition, η εφαρμογή αναγνωρίζει λέξεις και φράσεις που χρησιμοποιούν τα παιδιά, επιτρέποντάς τους να αλληλεπιδρούν φυσικά και άμεσα. Παράλληλα, το Text-to-Speech δίνει τη δυνατότητα στη “SudoCapp” να επικοινωνεί φωνητικά, ενισχύοντας την κατανόηση και την προσβασιμότητα της εφαρμογής.

Για την κατανόηση και την απόκριση στις ανάγκες των χρηστών, δημιουργήσαμε ένα καλά δομημένο σύστημα λεξικών (dictionaries) και ενσωματωμένης βάσης δεδομένων. Τα λεξικά αυτά λειτουργούν ως η «νοημοσύνη» της εφαρμογής, συνδέοντας λέξεις ή φράσεις με συγκεκριμένες ενέργειες και απαντήσεις. Το σύστημα λήψης αποφάσεων βασίζεται σε μια ιεραρχία λέξεων-κλειδιών, επιτρέποντας την εξατομίκευση της εμπειρίας για κάθε παιδί.

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

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

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

Σύνδεση με τους στόχους Βιώσιμης Ανάπτυξης

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

Η λύση μας συνδέεται άμεσα με τους εξής στόχους βιώσιμης ανάπτυξης:

  • SDG 4 – Ποιοτική Εκπαίδευση: Ενισχύει την προσβασιμότητα στην εκπαίδευση, προσφέροντας στα παιδιά με ειδικές εκπαιδευτικές ανάγκες υποστήριξη για την ανάπτυξη ανεξάρτητης διαβίωσης και καλλιέργεια δεξιοτήτων ζωής. Δημιουργεί ένα φιλικό περιβάλλον που προάγει την ισότητα ευκαιριών στην εκπαίδευση.
  • SDG 11 – Βιώσιμες Πόλεις και Κοινότητες: Με τη χρήση τεχνολογιών που ενισχύουν την κοινωνική ένταξη, η εφαρμογή υποστηρίζει τη δημιουργία κοινοτήτων όπου τα παιδιά με ειδικές εκπαιδευτικές ανάγκες ή/και αναπηρία γίνονται ισότιμα μέλη, συμβάλλοντας σε πιο βιώσιμες και ανθεκτικές κοινότητες.

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

Περιγραφή κοινωνικού αντίκτυπου

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

Στην περιοχή της Φλώρινας, συνεργαζόμαστε με το Κέντρο Φυσικής Ιατρικής και Αποκατάστασης του Γενικού Νοσοκομείου Φλώρινας (πρώην ΚΕΚΥΚΑΜΕΑ) για να πραγματοποιήσουμε δοκιμές της εφαρμογής με παιδιά που συμμετέχουν σε δραστηριότητες υποστήριξης. Επιπλέον, η εφαρμογή μπορεί να χρησιμοποιηθεί και σε άλλες παρόμοιες δομές, όπως είναι τα Κέντρα Δημιουργικής Απασχόλησης Ατόμων με Αναπηρία (ΚΔΑΠΑμεΑ), τα ειδικά σχολεία, σε δομές προσχολικής αγωγής και ακόμη και σε σχολεία γενικής εκπαίδευσης όπου φοιτούν παιδιά με ειδικές εκπαιδευτικές ανάγκες ή/και αναπηρία. Με τον τρόπο αυτό, προωθούμε την ενίσχυση της κοινωνικής συμπερίληψης και την υποστήριξη της εκπαίδευσης και της ανάπτυξης των παιδιών με ειδικές εκπαιδευτικές ανάγκες ή/και αναπηρία, ανεξαρτήτως του περιβάλλοντός τους.

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

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

Συνεργασίες με τοπικούς φορείς

Για την ανάπτυξη της εφαρμογής, συνεργαστήκαμε στενά με την Ξένια Καϊμάρα-Ρίζου, ψυχολόγο στο Κέντρο Φυσικής Ιατρικής και Αποκατάστασης Φλώρινας και διδάκτορα με μεταδιδακτορική εξειδίκευση: The Conjunction of Educational Psychology with Educational Technology (Ιόνιο Πανεπιστήμιο).

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

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

Επόμενο βήμα είναι η αξιολόγηση της εφαρμογής από πραγματογνώμονες επί του περιεχομένου και της τεχνολογίας, όπως δάσκαλοι ειδικής αγωγής και πληροφορικοί, αλλά και τους γονείς των παιδιών με αναπηρία. Στη συνέχεια η εφαρμογή θα δοκιμαστεί με παιδιά από το Κέντρο Φυσικής Ιατρικής και Αποκατάστασης Φλώρινας κατόπιν σχετικής αδείας του Επιστημονικού Συμβουλίου του Γενικού Νοσοκομείου Φλώρινας και τη σύμφωνη γνώμη των γονέων των παιδιών. Αυτή η διαδικασία θα μας επιτρέψει να αξιολογήσουμε την εφαρμογή σε πραγματικές συνθήκες και να την βελτιώσουμε περαιτέρω.

Σε σχέση με τα ζητήματα ηθικής και δεοντολογίας στην επιστημονική έρευνα, η εφαρμογή μας είναι εναρμονισμένη με τη Διακήρυξη του Ελσίνκι (World Medical Association, 2013) και τον Νόμο 4624/2019 «Γενικός Κανονισμός για την Προστασία Δεδομένων (ΕΕ) 2016/679».

Πηγές

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

Επιστημονική Καθοδήγηση:

  • Παρουσίαση της Ξένιας Καϊμάρα με τίτλο «Κατανόηση της Νοητικής Αναπηρίας: Είδη Αναπηρίας, Ανάγκες και Καθημερινές Προκλήσεις».

Βιβλιογραφία και Άρθρα:

  • «The Conjunction of Educational Psychology with Educational Technology» (Ξένια Καϊμάρα, Ιόνιο Πανεπιστήμιο).
  • Kaimara, P. (2023). Digital Transformation Stands Alongside Inclusive Education: Lessons Learned from a Project Called “Waking Up in the Morning”. Technology, Knowledge and Learning, 29(3). https://doi.org/10.1007/s10758-023-09667-5
  • Kaimara, P., Deliyannis, I., Oikonomou, A. (2022). Content Design for Inclusive Educational Environments. In: Daniela, L. (eds) Inclusive Digital Education. Educational Communications and Technology: Issues and Innovations, pp 97–121. Springer, Cham. https://doi.org/10.1007/978-3-031-14775-3_6
  • Καϊμάρα, Π. (2022). Σχεδιασμός και ανάπτυξη διαδραστικών συστημάτων εκπαίδευσης-ψυχαγωγίας στη συνεκπαίδευση: τα διαδραστικά εκπαιδευτικά προγράμματα και οι οπτικοακουστικές τέχνες ως γέφυρα ανάμεσα σε παιδιά τυπικής ανάπτυξης και παιδιά με ειδικές εκπαιδευτικές ανάγκες ή /και αναπηρία. Διδακτορική Διατριβή. Τμήμα Τεχνών Ήχου και Εικόνας, Ιόνιο Πανεπιστήμιο. http://dx.doi.org/10.12681/eadd/52582
  • Φύλλο Εφημερίδας της Κυβέρνησης. (2019). Νόμος 4624/2019 (ΦΕΚ 137/Α’/29-08-2019): Αρχή Προστασίας Δεδομένων Προσωπικού Χαρακτήρα, μέτρα εφαρμογής του Κανονισμού (ΕΕ) 2016/679… Προεδρία της Δημοκρατίας, Υπουργείο Οικονομιών, Υπουργείο Δικαιοσύνης – Εθνικό Τυπογραφείο.
  • United Nations Department of Global Communications (2020). Sustainable Development Goals: Guidelines for the use of the SDG logo including the colour wheel, and 17 icons. https://www.un.org/sustainabledevelopment/wp-content/uploads/2019/01/SDG_Guidelines_AUG_2019_Final.pdf
  • World Medical Association. (2013). Declaration of Helsinki – Ethical Principles for Medical Research Involving Human Subjects. JAMA, 310(20), 2191. https://doi.org/10.1001/jama.2013.281053

Στάδια υλοποίησης

Έρευνα και σχεδιασμός

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

Σχεδιασμός χαρακτήρα

Για τον σχεδιασμό του χαρακτήρα που θα βρίσκεται στην οθόνη της εφαρμογής μια απλή επιλογή είναι το https://www.bitmoji.com/ Μπορούμε να δημιουργήσουμε έναν χαρακτήρα και μετά μας δίνει διάφορα emojis βασισμένα σε αυτόν. Δεν έχουν κίνηση αλλά υπάρχει μεγάλη ποικιλία και από χαρακτήρες και από stickers. Θα χρειαστούμε 10 εικόνες, μία για κάθε κατάσταση που ελέγχουμε και μία η οποία θα είναι η γενική. Τις αποθηκεύουμε τοπικά σε έναν φάκελο και τους δίνουμε ονόματα που περιγράφουν την κατάσταση τους.

Σχεδιασμός οθόνης στο AppInventor

Η εφαρμογή θα αποτελείται από μια μόνο οθόνη στην οποία το μεγαλύτερο μέρος θα το καταλαμβάνει μια εικόνα όπου θα εμφανίζουμε τα στιγμιότυπα από το avatar που έχουμε φτιάξει. Επίσης θα προσθέσουμε ένα label στο οποίο θα φαίνεται η ώρα και ένα button με το οποίο θα μπορούμε να κάνουμε reset στην κατάσταση των εργασιών που θα ελέγχουμε για να δοκιμάζουμε την εφαρμογή. Θα χρειαστούμε τρία clocks. Το ρολόι TimeClock θα εκτελείται διαρκώς κάθε δευτερόλεπτο και απλά θα αλλάζει την ώρα στο label. Το ρολόι MainClock θα τρέχει κάθε 20 δευτερόλεπτα και θα ελέγχει αν υπάρχει κάποια εργασία που πρέπει να γίνει ώστε να την ξεκινήσει. Το ρολόι ResponseClock θα τρέχει και αυτό κάθε 20 δευτερόλεπτα και θα ελέγχει την ολοκλήρωση μιας εργασίας που έχουμε ξεκινήσει. Τέλος θα χρειαστούμε το SpeechRecognizer και το TextToSpeech καθώς και μια βάση δεδομένων TinyDB για να κρατάμε την κατάσταση των εργασιών.

Όλα τα στοιχεία της οθόνης
Όλες οι εικόνες που θα χρησιμοποιήσουμε
Η εικόνα θα πρέπει να είναι clickable γιατί πατώντας πάνω της θα μπορούμε να μιλάμε στην εφαρμογή
Το MainClock θα έχει Interval 20 δευτερόλεπτα και θα είναι αρχικά ενεργοποιημένο
Το ResponseClock θα έχει και αυτό interval 20 δευτερόλεπτα και θα είναι αρχικά απενεργοποιημένο
Το TimeClock θα τρέχει κάθε 1 δευτερόλεπτο και θα είναι αρχικά ενεργοποιημένο
Στην βάση δεδομένων δίνουμε ένα όνομα στο namespace το οποίο να σχετίζεται με τα δεδομένα που κρατάει. Στην περίπτωση μας θα κρατάει την κατάσταση των εργασιών

Αναγνώριση θετικών και αρνητικών απαντήσεων

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

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

Θετικές προτροπές

Όταν ο χρήστης θα απαντάει θετικά για την ολοκλήρωση μιας εργασίας τότε θα πρέπει να του δίνουμε ένα θετικό feedback. Θα κάνουμε μια λίστα με πιθανές θετικές αποκρίσεις από την εφαρμογή και κάθε φορά θα διαλέγουμε μία τυχαία.

Όσες περισσότερες φράσεις τόσο καλύτερα

Βασικές μεταβλητές

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

Λίστες και λεξικά με τις καθημερινές εργασίες

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

Τα ονόματα των εργασιών

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

Προσοχή να έχουμε τα ίδια ονόματα με την βασική λίστα εργασιών!

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

Προσοχή πάλι να έχουμε τα ίδια ονόματα με την λίστα των εργασιών

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

Το λεξικό με τις προτροπές στις αρνητικές απαντήσεις του χρήστη

Τέλος θα χρειαστούμε και ένα λεξικό που θα έχει τις εικόνες για την κάθε κατάσταση.

Αρχικοποίηση των εργασιών

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

Όταν ξεκινάει η εφαρμογή όλες οι εργασίες είναι ανολοκλήρωτες. Επίσης όταν αλλάξει η ημέρα πάλι οι εργασίες θα πρέπει να ξεκινάν από την αρχή. Θα χρειαστούμε λοιπόν μια διαδικασία η οποία να κάνει αρχικά όλες τις εργασίες “Not started”.

Ονομάζω την διαδικασία Mark_all_tasks_as_not_started

Όταν ξεκινάει η εφαρμογή θα ελέγχω αν η βάση είναι άδεια (σημαίνει ότι ανοίγει για πρώτη φορά η εφαρμογή) και τότε θα αρχικοποιώ την βάση δεδομένων.

Κατά την διάρκεια των δοκιμών θα χρειαστεί να μπορώ να αρχικοποιώ τις εργασίες “χειροκίνητα” και για αυτό καλώ την διαδικασία και όταν πατηθεί το πλήκτρο reset

Ρολόι TimeClock

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

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

Το TimeClock θα καλεί την διαδικασία Write_time και αν η ώρα είναι 0:00 δηλαδή μεσάνυχτα τότε θα αρχικοποιεί τις εργασίες για την επόμενη ημέρα.

Ρολόι MainClock και ResponseClock

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

Και πάμε τώρα στο MainClock. Εδώ θα πάρουμε με την σειρά όλα τα tasks και θα ελέγχουμε αν η ώρα έχει περάσει και αν αυτό το task δεν έχει ξεκινήσει ακόμα. Αν ισχύει αυτό τότε η εφαρμογή θα λέει την αντίστοιχη προτροπή και θα αποθηκεύει στην βάση δεδομένων την κατάσταση του task ως Started. Επίσης θα αλλάζει την εικόνα και θα σταματάει το MainClock ενώ παράλληλα θα ξεκινάει το ResponseClock.

Το ResponseClock θα ελέγχει τις απαντήσεις του χρήστη και αν είναι θετικές θα ολοκληρώνει το task αλλιώς θα συνεχίζει να δίνει προτροπές.

Επικοινωνία με τον χρήστη

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

Σχόλια

Δεν υπάρχουν ακόμη σχόλια. Γιατί δεν ξεκινάτε τη συζήτηση;

Αφήστε μια απάντηση