Improving Access To Books For Children
Library For All
Many students around the world do not have the privilege of easy access to books and other educational resources. 250 million children worldwide are not able to learn to read or write even in their schools. At Library for All, the goal is to provide these schools with a means to teach the students to read and write. Studies predict that if students in low-income countries were able to learn to read with basic proficiency by the time they finished primary school, over 170 million people could be lifted out of poverty.
What We Do
At Library for All, we are focused on providing a digital library to students in low-income countries where books are not easily accessible. We do this using and customizing the front end of the New York Public Library app, and connecting our backend to it, allowing students to access books through that app. To get access to the books, we partner with publishers like Abrams Publishing and the MIT Press. To provide access to these books for students in other countries, we utilize Raspberry Pis as a WiFi hotspot for students to be able to download books onto their devices. Our books include textbooks, children's books, young adult fiction, non-fiction, world literature, and reference materials. All of this content is licensed of donated from a variety of reliable sources.
What We've Done To Date
We conducted a pilot program in five different countries with five different languages. These countries were Haiti, Rwanda, Cambodia, DR Congo, and Mongolia. As we are finishing up the pilot program, we have placed books in thirty schools in these countries. Now, we are focusing on a new goal of providing books to twenty countries by 2020.
How You Can Help
Currently, one of our big goals is to use raspberry pis (or other hardware) to act as a hub for content replication. We want to be able to use the hardware to replicate books when it gets access to WiFi so that when students are near the hub, they can download content even offline. Students will work on creating a content replication method for one-to-many (i.e., from the server out to all the raspberry pis in the field), and for many-to-one (user and book data back up to our server).
First, students should focus on data replication between MySQL servers. Hubs will download book data from our server and serve it to students. The books that need to be downloaded vary by country and deployment code, so there will need to be filtering when replicating data. It is important to note that there is no or little internet available at the remote locations (where the hubs will be physically installed) so the system needs to monitor for a internet connection and then when available begin the replication process. Since it is expected that the connection can drop at any time it is also important to be able to recover from a disconnect. Students will need to create scripts to setup basic functions like DNS Server and WiFi hotspot.
For level 2, students create a Web Admin Panel (using AngularJS or any other JS framework). This panel will open up the ability to configure country and school details (used for filtering replication), user management, the ability to configure replication type, start replication, and see stats in a GUI. For user management, there needs to be a way to delete users, reset passwords, etc. There should also be a way to see statistics such as the number of books downloaded, number of books read, and number of active students in order to provide accurate data analytics. In addition to these features, it would be good to have a way to add books to the library and configure network state depending on whether or not the school has an existing WiFi connection.
Finally, our level 3 is a mesh network, where hubs are able to communicate with each other if they are unable to communication with the main server. This way, there is a way to share the latest data while offline. Thus, one hub that is online could be updated and then any other hubs that become near to that hub will also be updated.
A passion for equal opportunity and education
AngularJS or other JS frameworks
Networking knowledge (not required)
Raspberry Pi (not required)