Anubooks — buy and rent books online
Online bookstore where students buy or rent school sets by school and level, academic titles and stationery, from local sellers, with book requests and chat.
Background
Every school year, parents in Kathmandu buy the same set of books from the same few shops, and most of those books are used for a year and then sit on a shelf. Anubooks set out to sell and rent books online: pick a school and a class and get the whole set, or rent it and return it.
I built the customer storefront and the admin panel on a team of six, and the support chatbot on my own.
The problem
Renting is harder than selling. A rental needs a school, a level and a category to find the right set, a seller who has it, and a return. Parents also ask for books that are not listed yet, and they want to ask questions before paying.
Approach
- Storefront organised the way parents shop: Academics by school set, level and category, plus Stationery, with separate buy and rent flows sharing the same catalogue.
- Store selection on a Mapbox map so a customer picks the seller nearest them before checkout.
- Book request flow: if a title is missing, the customer submits book details and contact details and the team sources it.
- In-app messaging with a live-chat UI, and an intent-classification chatbot trained on the FAQ to answer common questions over Socket.IO.
- Admin panel for categories, sales, users, FAQ and feedback on UmiJS and dva.
- Backend (a colleague's) on Express and MongoDB with Casbin role-based access; I integrated against it.
Architecture
Outcome
- Shipped storefront, admin and chatbot to production in 2021; maintained into 2022.
Lessons
- Rental is an inventory problem wearing a checkout costume. Modelling who holds which copy mattered more than the cart.