Inspiration
My sister heads to the library 3 times a week to pick up sequential books in various series. We live in a privileged community where we have complete sets of any popular series we would want to read. However, with thousand book libraries in Africa, children do not have access to the same liberty. They may finish a book they very much enjoyed yet be unable to discover what happened to their favorite characters because the library may only have the first and seventh book. While this problem may seem relatively insignificant, once a child finds a book they enjoy a lot, availability of similar ones can motivate them to find time in their busy lives to read, starting a lifelong habit of intellectual wellness.
What it does
GivingChoice allows children to take a say in the literature they read, focusing on a micro-level impact for individuals. Within the app, people can search for books on google, ISBN, or upload an image of a cover, and then send requests to an online database. The app also saves the users grade and interests suggesting books they might like to request. They may then select the African Library for their books to be sent too. People in more privileged communities can then donate specific books to be sent and once sufficient books are ready, a shipment can be made to send them overseas. Books could also be transferred between existing libraries to fulfill requests. This simple idea helps give the choice to read the next book in the series, to read the prequel, to read the book you saw an ad for, to learn about a specialized subject, and to develop a lifelong passion for reading.
How I built it
I build the app in React-Native using expo.io for an enhanced development workflow and testing. Portions of the interactive functions are written in javascript. The backend is built using Google Firebase for user authentication, database management, and analytics.
Challenges I ran into
While I have used react-native in the past for projects, I explored several new libraries and ran into problems with corrupted files. This meant spending hours debugging and reinstalling software on my computer. I also had issues with time as family obligations compelled me to leave before the project was fully finished. Since it is stored locally on my desktop, I am unable to access it at this time.
Accomplishments that I'm proud of
I am proud of learning how to structure a database and perform queries. In addition, the mental challenge of working on such a big project granted satisfaction in the end even if it is not an ideal submission. I learned a lot about refactoring code, file structure, and management of complex systems. Overall I enjoyed working on GivingChoice and became a better programmer because of it
What's next for GivingChoice
While I know there is not a high probability of this project being chosen due to my inability to attach any sample code*, I believe GivingChoice was build for scalability and could make a very real impact in the lives of children. The Firebase code is optimized for live syncing across many of users. The app is also cross platform and can be run on android or ios after being published to the app store with a developers licence. I also believe that given sufficient time a tensorflow keras model could be implemented to better predict books based on interest and previous requests.
*(I had to promptly go out of town and my code is on my computer at home until I can access it on Monday)
I enjoyed being able to work on a project with a purpose and a passion during this hackathon. Thank You for your time.
Log in or sign up for Devpost to join the conversation.