This was the last week of project development. The integration between the database and the web application is now complete. In addition, the text-to-speech API was replaced.

Database

The database was implemented using Cloud Firestore, a flexible and scalable NoSQL cloud database on Google Cloud infrastructure, to manage the data across client and server development. Within our database, we maintain four primary collections:

  1. Absences: These are linked to user activities where presence detection is employed. During activities, if the user doesn't interact with the robot within a specified timeframe, it initiates a search using rotation-based and facial detection via the camera. If unsuccessful, the activity concludes and a notification is sent to the database. Additionally, a notification is scheduled for the graphical interface in subsequent iterations with time of occurrence.
  2. Lesson: This collection encompasses activities associated with learning materials, housing questions and answers for each chapter. Upon completion, the activity's duration and the final grade for the corresponding chapter are transmitted to the database.
  3. Custom Activities: These are customizable activities that can be added to the graphical interface, each comprising a set of related questions and answers.
  4. Key: This collection contains the access keys for the graphical interface.

When Alix initializes, it requests data from the database. Consequently, adding new questions to the graphical interface requires a reboot of the robot for the updated data to take effect.

                                                                 View of Cloud Firestore database

                                                             View of Cloud Firestore database

Graphical Interface for teachers, parents and guardians

The graphical interface was developed using Angular and comprises three views: login, dashboard and question form.

                                                                          Login view

                                                                      Login view

Dashboard Page: this is the default view the user is taken after logging into the application. This view serves as the hub for data visualization. It features a dashboard displaying an overview of all lessons available, showcasing the final grade and duration taken to complete each lesson. Additionally, there is a “Notifications” drop-down list that is updated in real-time with the student’s absence information, sorted from the most recent to the oldest. The side navigation bar allows easy navigation between the dashboard, question form and logout.

                                                                          Dashboard view

                                                                      Dashboard view

Question Form Page: it can be accessed through the “Question Form” button on the navigation bar. On this view users can input new questions and corresponding answers into the database via the submit button.

                                                               Custom Question view

                                                           Custom Question view

Upon completing interactions with the dashboard, and optionally adding new questions to the system, users can log out from the the application using the “Logout” button.

Cloud Text-to-Speech

We updated the interface used for text-to-speech conversion. Initially, we employed a Python library to connect with Google Translate's text-to-speech API, but the generated speech lacked appeal and was sluggish.

To enhance the quality of speech synthesis, we transitioned to a different approach using an API powered by Google AI. Leveraging the Cloud Text-to-Speech API, we gained access to multiple speech models developed by Google. This shift aimed to produce more natural-sounding speech audio, enhancing the overall user experience.