Upgrading Mathematical Training Applications for Kids

About Customer

The Customer is a non-profit organization based in Europe that creates mobile applications to train children’s mathematical, logical, and memory skills. The organization offers two free math learning applications to children, parents, and teachers. One of the applications provides a predetermined learning path, while the other offers a flexible learning path, allowing children to focus on specific topics and skip others.

Challenge

The Customer encountered several challenges with their existing apps, including an outdated framework, slow performance, high maintenance costs, and inflexibility. The apps were built using the Cocoon.io framework, which reached its end-of-life in early 2019, making it difficult to update them for the latest versions of Android and iOS. Additionally, the apps were slow to respond, with some actions taking more than 5 seconds to complete, leading to frustration for teachers and students alike. The Customer was also spending a significant amount on Microsoft Azure services for hosting and data storage, with suboptimal efficiency. Furthermore, the apps lacked flexibility, as they did not have relevant functionality to adapt to the changing needs of teachers and students. For instance, if a teacher was unavailable, it was impossible to reassign their pupils to another teacher. As a result, the Customer decided to modernize the applications to optimize maintenance costs. However, they lacked the in-house expertise to handle the task.

Solution

The Customer sought Spybrick’s expertise in mobile app modernization, and the team successfully executed the project. To support the latest versions of Android and iOS, Spybrick’s team migrated the apps from the outdated Cocoon.io framework to Apache Cordova. In addition, the team carried out code optimization and bug fixing to enhance the apps’ performance. They also conducted an in-depth analysis of the Azure resources and optimized the databases, app services, and other elements to reduce maintenance costs.

As part of the modernization process, Spybrick’s team introduced new functionality to the teacher’s interface, such as the ability to reassign pupils to different teachers and view their own profiles. To streamline deployment, the team utilized Azure DevOps Services, which allowed for automation and a smooth transition between application versions. The Blue-Green deployment method was used, which eliminated downtime and ensured continuity of services. The team set up two matching virtual environments, Blue and Green, with the former receiving all user traffic, while the latter was idle. During the production deployment, users were gradually moved to the Green environment from Blue until all traffic was directed to the new application version.

In the project, Spybrick’s team used a variety of technologies and tools, including Apache Cordova, Microsoft SQL Server, Azure App Services, Azure DevOps Services and more.

Result

After Spybrick’s modernization and optimization, the Customer obtained revamped applications with improved functionality and efficiency. By migrating from the outdated Cocoon.io framework to Apache Cordova, the apps were brought up-to-date and optimized for the latest Android and iOS versions. The team’s examination of the apps detected several performance issues related to slow-running SQL Server queries, which were resolved via code optimization and bug fixing.

In addition, Spybrick’s team facilitated better usability by implementing new functionality, such as the ability for teachers to reassign pupils to different teachers and bind a backup account in case a teacher was unavailable. The team also enabled teachers to view their own profiles and delete pupils and teachers from the system. These changes resulted in an improved user experience, as well as greater flexibility in terms of app usage.

Moreover, Spybrick optimized the databases and Azure App Services to reduce maintenance costs significantly. By removing unnecessary elements such as duplicated and inactive accounts or non-relevant training progress records, diplomas and reward charts, the database’s size was reduced, which led to decreased storage and maintenance costs. The optimization of Azure App Services also contributed to a 4-fold decrease in maintenance costs, which allowed the Customer to allocate resources more efficiently.

Technologies

The technology stack used for the project included Microsoft SQL Server, .NET Framework , C#, Microsoft Azure, ASP.NET Web API, ORM, Unity Container, Visual Studio, Azure DevOps Services, Apache Cordova, and Angular