thumbnail of DyslexHero

DyslexHero

A mobile app for improving children’s cognitive abilities

Unity
NodeJS
Express
MongoDB
Socket.IO
D3

Timeline: September 2016 - April 2017 (8 months)

Deliverables: Project plan, System Architecture Design, Final product (mobile application + web application + backend server)


Background

Situation overview

It is the Final Year Project of my bachelor’s degree in Computer Science at the University of Hong Kong. The project consists of the following components:

  • Project management
  • Software design
  • Implementation
  • Testing
  • Configuration management

I chose the topic of Open Crowdsourcing and created the project plan.

The goal

The goal of the project is to participate in the whole software development process and carry out the project with milestones, continuous monitoring and deliverables. All deliverables adhered to IEEE Software Engineering standards.

I defined three objectives:

  1. to develop a mobile application for improving children’s cognitive abilities;
  2. to develop a web analytics dashboard for data visualization and management; and
  3. to provide analyzed data for investigating symptoms of dyslexia.

The Problem

Dyslexic children are not stupid or lazy.

In traditional Chinese thought, children who learn, write and read slowly are always branded as “lazy”. However, many possibilities could lead to troubles with learning. One of the common possibilities is dyslexia. Dyslexia is one of the Specific Learning Difficulties (SpLDs). Children with dyslexia not only have difficulties in reading and writing but also have difficulties in pronouncing multisyllabic words and distinguishing words with similar sounds. Most people are unfamiliar with dyslexia or neglect the importance of intervention. They might not consider bringing their children to have a formal screening test. Even if they wanted to, the screening test might cost several thousand Hong Kong dollars which is not affordable to lower-income families. Therefore, a simple, free-of-charge, easy-to-use application is necessary for testing their children and alerting the parents to signs and symptoms of dyslexia in advance.

The Solution

DyslexHero - A mobile app for improving children’s cognitive abilities

Poster This project consists of two applications.

  1. A mobile application for preschool to kindergarten children

It provides a set of training games designed for preschool to kindergarten children. The application evaluates the children’s performance in different abilities:

  • Phonological awareness: the ability to manipulate meaningful sounds in human languages
  • Processing speed: the ability to solve problems or tasks quickly
  • Orthographic awareness: the ability to form, store and recall words
  • Working memory: the ability to remember and transform the information at the same time
  • Memory span: the ability to receive the verbal information and repeat it in sequence

  1. A web analytics dashboard for parents and researchers

It provides interactive charts on gender, education level distribution and the average score on individual games. It analyzes the game exercises and children’s performance more accessible and efficient. In the long term, after collecting sufficient data, it should be able to discover the weakest abilities of dyslexic children and find the most effective training method to help them. The collected data could also help researchers to design a better assessment method by analyzing the incorrect answers from the children.

Research

Comparative analysis

I compared three similar applications that help children with dyslexia or other special educational needs.

  1. Eye Games

It is an Android application that provides many matching games for improving children’s visual perception. They will learn to make connections between pictures, letters, shapes and backgrounds. However, there is only a single game mode, which is to select identical objects. The children may easily get bored.

  1. Galaxy Maze

It is an Android application of a ball rolling game to improve children’s memory. Children need to roll the ball to finish the maze. Parents can adjust the game difficulty and starting point of the maze. The idea of parent involvement is good, but the variety of the game level is not large enough. Also, the interface could be more colourful.

  1. Dyslexia Quest

It is an iOS application with six games for testing memory and learning skills. The interface is attractive and provides information about the users’ strengths and weaknesses. The overall idea and game design are excellent, but the application is not designed for preschool and kindergarten children.

Key insights

I identified several advantages and disadvantages among the above applications, and I concluded with the following insights:

  • Need to avoid repeated game contents
  • Good to have parents' involvement
  • Need to evaluate the effectiveness of the game exercises

Design

Game content

DyslexHero determines the difficulties of the game exercise based on their education level. It divides into three stages: Beginner(preschool), Intermediate(K1-K2) and Advanced(K3).

It includes 5 game exercises, each corresponding to one specific category of weak abilities. It randomly generates all the questions in each category. The children will be required to play all the games once before they can freely play the game exercise.

As the target users are young, they may not fully understand the games' written instructions. Therefore, the games will involve verbal instructions. I applied a text-to-speech (TTS) extension for generating voice dialogue.

The five types of game exercises are:

  1. Phonological awareness: listen and identify whether two words are same, different or rhyme
  2. Processing speed: visual scanning tasks with different type of objects and colors
  3. Orthographic awareness: Writing the alphabets and recognizing letters with similar appearance
  4. Working memory: View a sequence of digits/alphabets/symbols and recall them in reverse order
  5. Memory span: listen to the numbers/alphabets and recall them in sequence

System design

System Architecture

This project has a client-server architecture. It is mainly constructed by four components:

  1. Node.js

It is an open-source JavaScript runtime environment. It is used to build the server in this project for handling requests from the application, and storing and receiving data from MongoDB.

  1. Socket.io

It is a JavaScript library that enables bidirectional event-based communication. One part of Socket.io is used as a server-side library for Node.js server. Another part is for the client-side application.

  1. MongoDB

It is an open-source, document-oriented database program. It stores all the data in this project, including user registration information, players’ scores and game questions.

  1. Express Application

It is a flexible and minimal web application framework based on Node.js. It is used to invoke a series of middleware functions and to visualize the game statistics.

Development platform

The Node.js server, database and web application are hosted in a Virtual Private Server (VPS) provided by DigitalOcean. The operating system of the VPS is Ubuntu LTS 14.04. Express framework is used for developing the web analytics dashboard.

Unity is the main development platform used in the game application. It supports cross-platform game development for Android, iOS, Windows, Linux, etc. It also supports C# and JavaScript programming languages. Unity Community provides many assets and tutorials that are a good reference for the project. The testing platform of the application is an iPad Air 2 with iOS 10.3.1.

Final Product

These are the screen captures of the final product.

Next Steps

While this project is useful for testing student abilities and getting an understanding of dyslexia, there are several possible improvements that can be made in the future to further increase the flexibility, efficiency, and effectiveness of research.

  1. Question Customization

It would be better if the researchers could customize the questions in the games on the web interface. For example, they may customize the symbols showing on the buttons in the working memory game, or they may change the items showing in the processing speed game. Those customizations could also affect children’s performance in the games. Therefore, with this feature, they can assess the children with different variables and find the most effective methods to help them.

  1. Changing Education Level

The game difficulties depend on users’ education level. In the current version, if the users go up one grade in school, they must create a new account for playing the games with higher difficulties. Otherwise, the collected data will remain on the old education level and may affect the accuracy of the data analysis.

Final Thoughts

To me, this project was not only a software development exercise but also an opportunity to find a meaningful way to solve real problems. The idea is to help parents to spot the sign of dyslexia as soon as possible and support children through early intervention. Although there are no resources to continue developing this project, I wish the project could raise awareness of dyslexia.