Inspiration
The opening ceremony mentioned the need for a library management system for ALP libraries. As I was researching different ideas, I remembered how my own school library has an interlibrary loan system that allows for the exchange of books between in-network libraries. Therefore, I thought that it would be useful to integrate such an interlibrary loan feature within a library management platform for ALP.
What it does
ALPS is a library management system for ALP libraries that has three basic features: check in/out books, book/user catalog, and interlibrary loan.
How I built it
I had zero experience in APIs, app development, Java, and Azure before starting this hackathon. I did not even know what an API was. Therefore, I was more focused on researching my users and finding potential avenues that could be utilized to develop this app.
I used Glide for my prototype and created a Google sheets database with the basic features of ALPS to demonstrate ALPS. I superficially demonstrated the interlibrary loan feature on Glide and provided a basic outline of the feature using a flow chart in the presentation video. Two additional features (taking away borrowing privileges for users that don't return books and a shelf list catalog) were only mentioned in the video and not implemented in the prototype.
Challenges I ran into
I explored as much as I could with Thunkable. However, I ran into obstacles that prevented me from implemented APIs and Airtable for a more developed prototype.
Open Library has a free API that can be used to retrieve various information (like title, author, publish date, subject, etc.). However, retrieving this information requires a query search of the ISBN code to get a unique code (that retrieves the book’s information), which was not possible through Thunkable. The barcode scanner could not be implemented because the API is not free.
I attempted using Airtable to create a database that would serve as a catalog, accession register, and lending register. However, when I tried to connect the Airtable with my Thunkable app, there was a bug (?) that prevented Thunkable from recognizing the Airtable API key (which was very strange because it worked with another screen on the same app). This problem was solved when I switched to Glide because its main purpose was to create apps connected to Google Sheets.
With Teresa Nick’s advice, I attempted using Microsoft Azure to create a web app connected to a SQL database. I stopped pursuing this because I would not have enough time to fully prototype the range of features that ALPS provides for the presentation. However, this interaction helped me be sure that Azure could be used to more robustly design an app with a large database of all the ALP-donated books.
In conclusion, most of the challenges I faced were related to the lack of knowledge required to develop a prototype.
Accomplishments that I'm proud of
I'm really proud that I was able to spend my last week of summer before school to work on this and learn about libraries in Africa as well as about app development.
What I learned
Reading “How to Set Up and Run a Small Library in Africa” by the African Library Project, I learned more about the process of setting up and maintaining ALP libraries. I gained a lot of respect for ALP librarians.
Through Saurav, I learned an ALP librarian survey revealed some librarians felt that the books were too difficult for students. Since the 1000 books are random donations, some libraries may lack variety, both in difficulty and genres. Therefore, I thought ALP libraries could benefit from sharing books with other libraries.
I inquired with my school’s librarian over a Zoom meeting about our interlibrary loan system at my school, the Illinois Math and Science Academy. I was surprised to know that there exists a federally funded middleman operation called Rails that picks up and drops off books every day to 100+ Illinois libraries in-network. However, this network had taken 30-40 years and federal funds to provide and maintain for students.
I was able to contact Nancy, who works with ALP librarians one on one, through Whatsapp. I learned that there are no such systems like Rails for public libraries and non-ALP libraries in Africa. However, some African universities have transport officers that pick up and drop off books for interlibrary loans. Through this interaction, I learned that I could not use a pre-existing transport system to support ALPS’ interlibrary loan feature. This meant that the librarians would request books from other libraries through ALPS and personally pick up requested books. This posed a problem for scalability.
Although the interlibrary loan feature would require librarians to personally transport books, I was hopeful that the demand would encourage them to make the trip. I learned through African Library Maps, that all countries with ALP libraries have at least 2 libraries within a 10-20-mile radius, with an overwhelming majority that has at least 4-5 within a 10-20 mile radius. I thought it was not unreasonable to assume librarians would be willing to make 10-20 mile trips monthly or bi-monthly for their students. This could be added to the monthly routine (on page 136) recommended by the “How to Set Up and Run a Small Library in Africa” guide.
In addition, researching apps (Thunkable, Azure, Glide, Android Studio), APIs (barcode scanner API, ISBN API), and databases (SQL, Firebase, Airtable) helped me learn more about the entire process of app development.
I would like to thank Saurav Gandhi, Angela Heinrich, Teresa Nick, and Nancy Mpekansambo for quick responses to my questions throughout the week. I couldn't have learned so much without them.
What's next for ALPS
ALPS should be developed more robustly for scalability to manage millions of ALP-donated books.
Built With
- glide

Log in or sign up for Devpost to join the conversation.