Where we go on holiday, "the family house", is in a small village in the south of Ireland. The closest grocery store is at the petrol station 7 minutes drive away. And the closest library is 21 minutes drive away...As an alternative, there is a "little free library" available 20 minutes in a different direction and the family has enjoyed stopping by it, and checking out the latest choice of books...So when this challenge came about, the family was familiar with the concept and both excited while baffled not to have thought of it earlier...The "family house" has quite a few books for all ages and with a very active and friendly local Facebook group, why not expand to a new category: book share/swap. The little library Ballycotton was about to be born...
# Our SolutionThis was meant as a holiday project and we wanted to include the children as much as possible.
So we went through some ideation to decide on what to make and how to make the little library to include technology knowing we lived away and would not be able to attend to the library often enough (in case of technical problems notably requiring physical intervention).
We settled on building a little library that would:
- Leverage the community Facebook group: Ballycotton has a very active local group where people constantly exchange advice, items, help...
- Use Open AI services to help categorise and summarise the books: a website to upload photos of the latest books available after visits so that on rainy or other inconvenient days, it is easy to stay up to date with latest library content
In a nutshell, scanning a QR code available on the inside of the little library door, people get directed to a website where in addition to context about the little library, they can upload a photo which will provide some summaries and categories of the latest books available in the library.
# The build## Library build### StructureA local builder and friend helped us build a little library.
We then proceeded to painting
We also proceeded to register the library as early as possible (early August) to get charter sign on time. The library was installed on the 10th of September 2023.
Here is a rough idea of the flow where visitor takes a photo and uploads it. It is then analysed (by interrogating Custom Vision services to extract text and Open AI to get the summarisation). The results are saved again in storage from where they will be retrieved on the next page refresh... until the next update.
We took a lot of pictures of libraries to test different outputs. lucky people phones have very good quality of images and allow for enough details for the Custom Vision service to extract the text very accurately. Our testing has proven (as you could have preempted, that the results are much better when the books are stacked as the service would extract the text in the same we would read it - i.e. left to right, top to bottom).
Anyway he is an example of the website
The application is hosted at https://www.littlefreelibraryballycotton.top and the Azure Developer CLI was used to get a boiler plate code and deployment pipeline. Checkout the repo if interested
# ConclusionWe have really enjoyed this project. It has brought us closer to our community and given us one more idea of family activity to bond over and have fun.
This also opens the door to many possible future improvements such as :
- better build: Ballycotton is very exposed and weather great greatly affect the structure of the build. Maurice who helped mount the library already had some great suggestions.
- adding a door opening sensor to compare how ofter the library is used (i.e. how often the door is opened) to the number of time people send photos of the updates may help understand usage as well as put some guard rails so that analysis only occurs after a visit (to avoid abuse of the Open AI service and the possibility for the books shown to be irrelevant)
- use function calling (to call books APIs to request further information about books' descriptions)
- Improved flow. Using further custom vision to recognise book boundaries and ensure identified text is grouped (matching those boundaries to identified text location) should foster better results
- and simple touches such as Solar LED lights for winter days when the sunset can be as early as mid afternoon... or even displaying those results on a small epaper screen (if we can make that weather prood enough)
Thank you for reading this far and do leave some comments or reach out if you would like to discuss this more.
Comments