Modernization of Math Training Applications for Children
The Customer is a European non-profit organization that develops mobile applications for training mathematical, logical and memory abilities in children. The Customer has two applications for math learning and provides them for free to children, parents and teachers. One of the applications offers a preset learning path. The other one suggests a flexible learning path, which allows children to solve problems on topics they want to focus on and skip the others.
The Customer faced several challenges related to the apps:
- Outdated framework. The apps were based on the Cocoon.io framework, which support ended at the beginning of 2019. The outdated framework didn’t allow updating the apps for the latest versions of Android and iOS.
- Performance issues. The apps’ response time was slow, for example, it took more than 5 seconds for a teacher to open a list of pupils.
- High maintenance costs. The Customer used Microsoft Azure services for hosting and data storage. The Customer’s use of the services was not efficient enough and they experienced high expenditures.
- Inflexibility. The apps lacked relevant functionality to adapt to the changing needs of teachers and trainees. For example, the absence or unavailability of a teacher made it impossible to reassign their pupils to another teacher.
All this made the Customer opt for application modernization and optimization of maintenance costs. However, the Customer didn’t have relevant expertise in-house to handle this task.
The Customer commissioned ScienceSoft to modernize the mobile apps. For the applications to support Android 10.0 and iOS 13 versions, ScienceSoft’s team migrated them from the outdated Cocoon.io framework to Apache Cordova. As a part of the migration, the team performed code optimization and bug fixing. After that, ScienceSoft’s team examined the mobile applications and troubleshot several slow-running Microsoft SQL Server queries to fix performance issues.
Then the team analyzed the Customer’s resources on Azure. It turned out that two databases were close to the limit of the allocated storage, which brought about high maintenance costs. To reduce the costs, our team optimized these two databases by deleting unnecessary elements like duplicated and inactive accounts or non-relevant training progress records, diplomas and reward charts. They also optimized several Azure App Services to reduce maintenance costs further.
ScienceSoft’s team also made changes to the functionality of the teacher’s interface of the training apps. They enabled reassigning pupils to different teachers and binding a backup account in case a teacher was unavailable. The team also made it possible to delete pupils and teachers from the system and allowed teachers to view their own profiles.
To facilitate deployment of the modernized training applications, ScienceSoft’s team automated it with the help of Azure DevOps Services. This reduced deployment time to a few clicks and allowed quick rollback to the previous application version if needed. Our team used the Blue-Green deployment method, which reduced the unavailability period of the applications during deployment almost to zero. The team was running two matching virtual environments of the Customer’s applications – Blue (it received all user traffic) and Green (idle). During the production deployment to the Green environment, users were gradually moved there from the Blue environment until everyone started using the new version of the applications.
The Customer obtained the modernized applications, which worked faster and supported the latest versions of Android and iOS. Besides, the new functionality made the apps more convenient and flexible to use. And due to database and Azure App Services optimization, the app maintenance costs decreased by 4 times.
Technologies and Tools
Microsoft SQL Server, .NET Framework 4.5, C#, Microsoft Azure, ASP.NET Web API, ORM, Unity Container, Visual Studio, Azure DevOps Services, Apache Cordova, Angular 5.