Skip to content

Latest commit

 

History

History
106 lines (66 loc) · 5.39 KB

SOFTWARE_ARCHITECTURE.md

File metadata and controls

106 lines (66 loc) · 5.39 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.

Note

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 remote 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 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.

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:

We are also building machine learning models that work across languages. As an example, the same model used for predicting the reading level of English storybooks can be used for predicting the reading level of Hindi storybooks.


elimu.ai - Free open-source learning software for out-of-school children ✨🚀

Website 🌐  •  Wiki 📃  •  Projects 👩🏽‍💻  •  Milestones 🎯  •  Community 👋🏽  •  Support 💜