Skip to content

Latest commit

 

History

History
111 lines (69 loc) · 7.16 KB

SOFTWARE_ARCHITECTURE.md

File metadata and controls

111 lines (69 loc) · 7.16 KB

xprize-no-text_banner

A collection of educational Android apps teaches children basic literacy and numeracy in a fun and engaging way.

elimu.ai Software Architecture 🏛

Table of contents
  1. Learning Platform
  2. Software Dependencies
  3. Software Scalability
  4. Data Collection
  5. Artificial Intelligence (AI)

Learning Platform

The elimu.ai software is a platform of educational content and Android apps.

Instead of having one large Android application containing everything, the elimu.ai software has been architected such that there are many smaller applications, each with their own specific responsibility.

Broadly speaking, there are three categories of Android applications:

  1. Infrastructural applications
  2. Literacy apps/games
  3. Numeracy apps/games

elimu ai Software Architecture

Software Dependencies 🔄

As depicted in the diagram above, several of the elimu.ai applications communicate with each other. As an example; When the app for reading storybooks (Vitabu) is opened, it asks the content-provider app to provide a list of storybooks. This means that the storybooks app depends on the content-provider app to be installed.

Software Scalability

The software platform is being built to handle scaling to many different languages. A collection of many smaller apps, all categorized by literacy/numeracy skills makes it possible to easily adjust the complete curriculum when localizing from one language to another.

The file size of the apps, games and multimedia is kept as small as possible in order to make the distribution easier in locations with limited Internet connectivity. In addition, the software has been designed to work offline so that it can be used in rural areas.

Localization 🇺🇸🇵🇭🇮🇳

For instructions on how to add support for a new language, see LOCALIZATION.md.

Content Crowdsourcing ✍🏽

Another way to ensure software scalability is through crowdsourcing. By using the elimu.ai Crowdsource Android app or the elimu.ai Webapp, the crowd is able to upload and peer review educational content on the platform, and thus help speed up the expansion to more languages. As an example, such a task might involve transcribing a few audio recordings, peer reviewing existing audio transcriptions, translating a storybook, recording audio files for an entire storybook, labelling videos by content, etc.

Distribution 📦

When distributing the software, there are two main questions that need to be answered:

  1. Does the child already have access to an Android device?
  2. Does the device have access to an Internet connection?

Based on the answers to the above questions, the following are the necessary steps for distributing the software:

  1. If a child already has access to an Android device and access to an Internet connection, the household (e.g. parents) can download and install the software by:

    • Download the elimu.ai Appstore.
    • Install and launch the Appstore. Then select the child's mother tongue as the language of instruction.
    • Wait for the Appstore to automatically download all the required infrastructural and literacy/numeracy apps/games. (See SOFTWARE_INSTALLATION.md)
  2. If a child already has access to an Android device, but no access to an Internet connection, the software can be installed by:

    • Download a ZIP file from the elimu.ai website meant for offline installation. This file contains all the Android apps, educational content, as well as an installation script (Unix/Windows).
    • Bring the file, a laptop, and a USB cable to the household.
    • Connect the USB cable to the Android device, and execute the installation script in order to automatically install all the Android APK files and content.
  3. If a child does not already have access to an Android device:

    • Obtain an Android device with 6" display or larger. Make sure the Android version installed on the device is supported by the elimu.ai software.
    • Download the elimu.ai Appstore.
    • Install and launch the Appstore. Then select the child's mother tongue as the language of instruction.
    • Wait for the Appstore to automatically download all the required infrastructural and literacy/numeracy apps/games. (See SOFTWARE_INSTALLATION.md)
    • Bring the device to the household.

Data Collection 📊

In order to measure how well the elimu.ai software is working, usage data is collected from the Android devices so that we can analyze the learning of each child. This enables us to carefully monitor how changes in code or content produce different learning outcome, as well as continuously improve the software.

The data is synced between the Android devices and the webapp's REST API whenever an Internet connection is available.

For assessing the learning outcome of the children, we are collecting data categorized according to the subtasks defined in the Early Grade Reading Assessment (EGRA) and Early Grade Mathematics Assessment (EGMA) standards.

Artificial Intelligence (AI) 🤖

Using TensorFlow, one machine learning model is trained per language, for each of these categories:

The elimu.ai Crowdsource Android app is used for labeling handwritten letters and numbers.


About the elimu.ai Community

elimu ai-tagline