Many of us do our reading on tablets, computers, and phones now days. But, many of us still love picking up some old fashioned paper and ink books to do our reading. Often times when selecting a book to purchase, we check out the user reviews online. We wanted to develop an application to help readers quickly see a book's customer reviews to help them decide whether or not to make the purchase.
What it does
This app allows the user to take a picture or upload an image of a book cover. The user is then prompted to select the correct book given a list of possible books based on the cover image, and is then given a list of customer reviews from Goodreads.com.
How we built it
Due to the time constraints of this hackathon, we decided to use a high-level framework for developing mobile applications. We chose to use Expo to build a React Native application due to its ease of setup and configuration.
- The images are stored in a Firebase Storage bucket, where they are stored to be analyzed.
- The Google Vision API analyzes images stored in the Firebase bucket, and helps in recognizing the words from the book cover.
- These words are the used to query the Google Books API which returns a list of books including their title, author, image, and ISBN.
- The selected book's ISBN is then used to request an embedded reviews widget from Goodreads, displaying a paginated list of customer reviews to the user.
Challenges we ran into
The main challenges we faced seemed to be general problems associated with mobile development. These included issues dealing permissions to access the camera/images and make network requests. Another issue we found is that some external dependencies from NPM are not compatible with Expo, which forced us to find other solutions.
Accomplishments that we're proud of
We are extremely excited that we were able to bring our project to complete working condition after pulling an all-nighter on the final day of this hackathon. This is the second mobile project we have ever worked on, and we are proud of ourselves for being able complete a mobile app in the course of one weekend.
What we learned
We learned a great deal about integrating a React Native mobile project with Google's suite of cloud services such as Firebase, Vision API, and Books API. We discovered that Expo is a great tool for quickly building React Native projects without needing to work through Android Studio or Xcode.
What's next for Book Review Cam
In the near future, we plan to
- Fine tune the text recognition methods used to recognize words from the book cover image.
- Add customer reviews from Amazon.
- Display links to where the book can be purchased.