Have you ever wanted to read a book that makes you feel a certain way? Ever felt that none of the library books seem to match the type of book you want to read in that mood? What do you do then? Maybe like us try going through hundreds if not thousands of book summaries and reviews online.
Well, you could do that, but that's a lot of work for one, and what is worse, it could potentially spoil the book for you. Moreover, let's be real; not all of us can choose things so easily when provided with many equally enticing options.
Dear book lovers, we get you. So, fear no more as we present to you - Bibliofeels - made for the bibliophiles by the bibliophiles!: A two-tap solution to find the perfect book for you.
We believe books are for everyone and for every emotion! Looking for something deep and reflective? We have a book for you! Want something that can help you escape reality? We have a book for you! Or maybe something spooky? Guess what? We have a book for you!
What it does
BiblioFeels aims to recommend the best book to the best person(YES YOU!), along with relevant details, and all you need to do is click on a button and let us know how you want to feel. It is that simple!
How we built it
We wanted the user's experience with the app to be as smooth as possible, so we started with an aesthetic, minimalistic design for the front end.
We used the CMU Book summary dataset(consisting of more than 16000 books), applied emotion analysis to the summary of all of these books after performing relevant data cleaning operations, and added the emotions column to the dataset. Cover images of books were scraped and were also saved in the dataset as base64 strings.
After populating the database, we built a React app to take input from the user and pass it on to the backend app built using Flask. The flask app queries the database that we produced above and returns the best match to the user and relevant details to the user such as book title, author, genre, summary, and a link to the wiki, among other things.
Challenges we ran into
We worked on the following challenges:
- The biggest challenge for this project was planning around the team's time zones. But we realized that when we decided on times well in advance, that problem seemed to subside.
- planning the workflow
- learning new technologies
- managing the database
- On the technical end, a major challenge was the unavailability of fine-grained emotion analysis models at the document/paragraph levels.
Accomplishments that we're proud of
- learning the new technologies needed for the project.
- compiling a database of about 16000 books to find the perfect book to match one's mood
- making friends across the world
- the whole team pulled their weight and pulled off a project we are all proud of
What we learned
- working asynchronously with an international team, with people coming from different time zones
- new technologies for the project like Figma, CSS, flask, etc. -working with a large database
What's next for bibliofeels
Features we think could make bibliofeels even better:
- adding a bot to analyze the user's mood
- adding the feature to look for more books to match a particular mood, e.g., a list of 10 books
- adding the feature of 'books like this' cluster that takes a book title as input
- deploying the app