SolDevelo has improved data collection, implemented API extension and created a backend of new dashboards for Worldreader. In this case study you will learn more about the initiative and its purpose as well as SolDevelo’s contribution, the process, things we have learned and the impact this project has on the children around the world.
Worldreader is a non-profit initiative that focuses its efforts on encouraging reading among children. It provides tools and resources for families and caregivers to build and foster the habit of regular reading. The main purpose of Worldreader is to fight the global learning crisis and give children opportunities that will help them grow, gain basic literacy skills and shape emotional intelligence. The initiative also aims to equip children with future earning potential and to make them into responsible and engaged participants of social life. To achieve these goals, Worldreader developed a unique A-B-C-D-E model of change:
Apps – Worldreader developed a mobile application called BookSmart. It supports regular reading habits and allows you to track your progress in real-time. The app is available on any device and can be used offline. It also provides various challenges that make reading more fun and engaging for children.
Books – 5,900 books in 52 languages are available in Worldreader digital library, significantly increasing accessibility of valuable reading materials for children.
Capacity building – Worldreader offers training and support for caregivers to build their confidence in reading to and with children, and to teach them how to approach reading so that it is an engaging and valuable learning experience for their children.
Data – reading data are being collected and analyzed in real-time. It helps in tracking progress, reaching goals and furtherly improving the initiative’s effectiveness.
Engagement – Worldreader works on engaging caregivers and communities to change the social behavior regarding reading habits, and truly appreciate reading’s impact on children’s growth and their future.
Basing their operations on these five essential elements, Worldreader actively transforms the reading landscape around the world, fighting illiteracy among children and fostering excitement towards reading from a young age.
We had the pleasure of working with Worldreader before, so it was a great joy to join them again and together walk towards their mission.
Worldreader is a continuously growing and developing project. To help in its improvement, we were asked to join Worldreader’s data processing team for a year and provide it with support.
The scope of project included:
- Data pipelines transformation;
- Data investigation;
- API extension;
- New Dashboards.
The existing version of the pipeline that aggregates events from the BookSmart application was getting overloaded with data. The amount of data collected is continuously growing. Therefore, the time required for the data to rebuild for the app’s dashboards was getting too long, until it reached the critical point of 24 hours. Since the data must be rebuilt every single day to provide real-time information on the users, the pipeline needed to undergo a renovation. Data also had to be compared before and after the operation to detect any discrepancies that might have occurred.
There were several other improvements required, including increased quality of testing, more data aggregation features, additional filtering options and new endpoints.
A long-term collaboration allowed our team to implement multiple solutions that increased the efficiency of the project.
Data pipelines transformation
To facilitate data processing and increase its effectiveness, our team migrated data storage from RDS to Redshift. The time period required for rebuilding the data went down from 24 hours to only 2 hours.
We have implemented API improvements, increased the quality of code, added more methods of filtering and aggregating data, and created new endpoints.
Furthermore, we were requested to create a backend to “Readers Dashboard” and “Tips Dashboard.” Dashboards’ purpose is to aggregate data based on a single user profile. It was necessary to implement them in order to create statistics for projects that a new feature called Vroom was to handle. Vroom allows adding multiple profiles to one user account, which makes it easier for i.e. teachers to use the application.
It allows displaying aggregated data for each user profile and grouping them. Such a feature is useful i.e. to teachers, who can now create classrooms within the application and track the reading progress of each student.
It gives access to the information on Tips. Tips serve as a kind of achievements that can be fulfilled by the users within the BookSmart application. Tips Dashboard displays aggregated data on Tips as well as the number of Tips fulfilled by a single user on average.
There were a few challenges that our team encountered while working on the Worldreader project. In this section we will share our experiences, describe some of the issues that emerged, and how we handled them.
One of the biggest challenges was the process of migrating data from RDS to Redshift. It required a variety of transformations, since some of the data was synthetic. We have decided on using Redshift, since SQL scripts for Worldreader were already created. However, Redshift’s syntax is slightly different from the PSQL one. As a result, our team needed to adjust the data coming from different sources according to specific parameters. In order to achieve this, it was necessary to gain a thorough understanding of the business side of the project.
We also had a chance to compare the data aggregated by the old pipeline and the new one. Not always were they the same. Observing these discrepancies was an opportunity for our team to check the accuracy of calculations and draw conclusions. Additional data investigation was done through external tools, for example Jupyter Notebook was used to provide evidence that a given way of calculation is correct.
We successfully finished the data migration operations. However, should we have done more research on alternative solutions, we might have avoided a lot of trouble and found a more effective way of migrating the data.
Another challenging part of the project was estimating the time of its particular phases. The process of analyzing data is time-consuming and unpredictable. It requires patience and a certain level of vigilance. The results of operations conducted on big databases are not immediate. To avoid wasting time, we needed to organize our work carefully.
What makes this project special is the fact that the whole infrastructure is based on AWS. It gave our team a chance to get familiar with multiple services, particularly Glue, Redshift and S3. While working on Dashboards we also had a brief experience with a Flask API run on Lambda. Additionally, the team gained experience in terms of data science.
The Worldreader project was a great learning experience for us and we are excited to use the newly gained knowledge and skills in other works in the future.
Worldreader currently operates in over 100 countries and has already convinced 21 million children to become readers. It is a truly inspiring initiative that has a great potential to transform the way children and their caregivers look at reading.
The project is largely dependent on data collection. Accurate data is what allows Worldreader to grow and develop new strategies that will benefit children around the world. Therefore, efficient and effective data aggregation structures are a necessity. We are proud and grateful that we could use our skills and participate in the project, helping it reach new heights. Moreover, we were lucky to collaborate with the client who is open and full of trust in terms of our experience and our solutions. It was also greatly motivating to work with someone who truly believes in the mission of Worldreader and aspires to transform the lives of children and families, giving them new tools and new perspectives.
Using this opportunity, we would like to encourage you to join the movement! By reading to or with your children for at least 10 minutes a day, you share with them a gift that will impact their whole lives. The goal set by Worldreader is to get children reading at least 25 books every year. We invite you to enter the challenge and wish you good luck!