Academy for Learning Pedagogy The agile development of a video learning platform for children
One of a schoolchild’s biggest challenges is often maintaining their motivation and enthusiasm for learning over many years. Childhood and adolescence are, however, the best time for learning. The German-based Akademie für Lernpädagogik (Academy for Learning Pedagogy, the AfL or Academy for short) aims to promote the concept of “learning to learn” in Germany. The AfL believes that one thing is clear: today’s school system prepares children for a world that no longer exists – and this is precisely where it sees its role. The Academy is committed to ensuring that children maintain their natural curiosity, experience happy, carefree schooldays, and are equipped to master the challenges of later life.
Since 2018, the AfL has been offering online learning training for children in German school years 3 to 8. In the autumn of 2020, due to its continuing success, the startup decided to further expand the concept. With inovex’s support, not only was the AfL able to add to its offerings, it was also able to completely overhaul its software.
A new concept, agilely developed
Initially, the Academy focused entirely on expanding and maintaining its content while outsourcing the development of the platform itself. After three successful years, however, the company wanted to shift a greater proportion of this work in-house. This would enable the Academy’s product team to work with marketing and pedagogical experts to react quickly to both their customers’ needs and to market changes, as well as to rapidly implement new features.
The AfL worked with inovex to define the requirements for updating its platform and determined that the work should be carried out agilely, with inovex in the supportive role of product owner. Initially, as is customary in Scrum, further development of the new platform was carried out iteratively in regular sprint cycles. Due to quick decision-making processes and the extremely rapid feedback received on the work packages, however, the AfL and inovex ultimately switched to a more flexible Kanban process in order to keep pace with the swift changes and developments.
Early on in the project, it also became clear that the technical requirements were more complex than expected. inovex therefore added an additional development team and supported the AfL staff in learning the new technologies involved in React and Go.
Enhanced functions, innovative technologies
As the Academy’s platform is aimed primarily at children, most of its content is created in the form of videos. These are interactive and designed specifically for different stages of child development. Parents can preview or review the lessons in order to remain apprised of their children’s progress, while the interactive videos allow pupils to select a learning path based on their abilities. Parents and children can use the Specific Topics section to arrange appointments with educators on specific topics such as motivation, concentration, or exam anxiety, and can attend them virtually via the platform. Children can also submit and upload worksheets, pictures or videos as part of weekly challenges.
In order to support this multitude of functions, the web platform had to be technologically extensively adapted – regular media players, for example, do not possess the requisite capabilities. Since its launch, the platform had been run on PHP, but this turned out to be too inflexible to model the new features in a scalable way. inovex therefore recommended using Go for the programming language and React as the software library.
To facilitate the logical separation of the individual domains, the architecture is based on a domain-driven design, with the Echo framework used internally for local development and testing. While unit tests are carried out using Jest in the front-end, the back-end API is also completely end-to-end tested with Cypress. When it comes to front-end development, the AfL and inovex use Zustand in addition to React for state management, with API communication being performed via React Query.
Using these technologies ensures both that the platform can be expanded and that the Academy can continue to offer an excellent user experience as its customer base increases.
Serverless and scalable
For the underlying technological framework, the Academy uses a cloud-based, serverless infrastructure based on AWS Lambda with an upstream AWS API Gateway. The platform’s assets are stored on the Simple Storage Service (S3) and made available via CloudFront.
In order to optimally display the required images, a proprietary image proxy is used to deliver and then cache them at the appropriate resolution for each end device. General data storage is handled via an AWS RDS PostgreSQL database, which is distributed over two availability zones and regularly backed up. Continuous monitoring is carried out via CloudWatch. This setup significantly reduced the costs and effort involved in the AfL’s IT operations and allowed the teams to concentrate fully on programming the platform’s features. Modelling the infrastructure as code via the AWS CDK allows it to adapt quickly to new requirements. This flexibility provides considerable support for scaling and enables high-performance operation while still saving costs.
For the ongoing maintenance and further development of the platform, inovex and the Academy were able to set up an automated CI/CD (Continuous Integration/Continuous Delivery) pipeline in Gitlab. This is a self-contained feedback process which builds incrementally upon itself. This automates and improves the development process, positively affecting both the integration and testing phases and the provision and implementation of new features.
Continuous integration ensures that developers can have their checked-in code automatically built and tested. If the tests are completed flawlessly, the changes are deployed directly to a test or staging environment for approval by the AfL. If everything functions as desired, the changes can then be deployed to the production environment with a single click.