First and foremost, we were inspired by the lack of means to communicate online about specific chapters and passages in literature. So, we decided to create an online platform that allows users to read and create annotations on their favorite books.

What it does

Our web application provides a repository of books and passages that users can annotate with their own analysis. Each passage has several suggested annotations given by Ernest--our resident AI, and annotations by previous users.

How we built it

The web application is built on a webserver using node.js and express.js. The main visuals and highlighting for annotations is done through pure JavaScript, HTML5, CSS3, and a bit of jQuery. We also made use of project gutenberg that has a repository of public domain, free-to-use books. The Artificial Intelligence was written in JavaScript using the IBM Watson Emotional Analysis API.

Challenges we ran into

In terms of the artificial intelligence, we weren't sure if our algorithm concept was going to work properly with the given data. However, we were able to make slight modifications to the original algorithm idea that allowed us to make the predictions much more robust.

What we learned

We learned about the super low rate limits of the IBM Watson API. Additionally, we learned how to properly create dynamic tags for annotations given by user's cursor highlights.

What's next for

A feature that we really wanted to implement was highly realistic text-to-speech audio books. However, the current state of the art for text-to-speech, Google tacotron, is so new that it hasn't been implemented by the open source community following Google's academic paper regarding the technology. We would like to implement the model in this research paper using a deep learning library such as Keras and train it on the many open source text-to-speech data sets that are available to make this feature possible. Moving forward we want to focus on scalability to handle more books, users, and annotations.

Built With

Share this project: