Book Box Finder
Thursday, June 26, 2025
This is an end of study project that we built as a team of 4 developers during our time at Epitech. We kept working on the project for a while after graduating to be able to add features we cared about. Unfortunately this app is no longer available, but you can still learn more about it and how we built it here!
Goal of the app
The goal of this application was to streamline the use of book boxes throughout France. The way they are used is that anyone can borrow or deposit books, creating a constant renewing collection for readers. While the community aspect is compelling, two issues stood out:
1. There was no easy way to locate book boxes near a user.
2. There was no way to know what a box contained, or whether it had any books at all.
Our app aimed to fix both problems. First we aggregated the locations of known boxes in France from various sources and geolocated them so users could view them on a map, this was relatively straight-forward.
The bigger challenge was to keep track of the contents of each box. Our solution was to rely on the community itself: Users would scan books when depositing or borrowing them, allowing us to maintain an up-to-date record of each box's content.
However, encouraging users to scan books consistently was difficult. Without broad user participation, the database could quickly become outdated or inaccurate. To address this issue, we implemented a points based system with leaderboards to reward engaged users. We also introduced special roles such as "mayor" of a box. These roles were assigned to the most committed users, and gave them extra privileges such as editing the box's contents, renaming it, or correcting its geolocation.
Additional features
Beyond scanning and tracking books, users could also:
- Search for a specific book and locate nearby boxes that had it
- Keep a wishlist to get a notification when an interesting book appeared nearby
- Rate books they borrowed or donated
- Write and read reviews to help others what book to pick
Technical stack
To ensure quick development and mobile accessibility, we built a React based Progressive Web App designed for mobile use, which users could add to their home screen for an app-like experience regardless of their platform. For the back-end, we chose a serverless architecture on GCP, using Python with FastAPI for the core logic.
Book data and geolocation were stored in Firestore, which provided fast read/write access and native support for geohashing. Algolia handled search functionality for books and boxes.
We also used Google Cloud Platform Cloud Functions to offload short-lived, resource-intensive tasks like updating the positions of all boxes or managing box contents. That way the core back-end could remain lightweight. While not strictly necessary, this was a great opportunity to explore more of what GCP had to offer.
