Inspiration

All three of us are avid readers, and we have used Goodreads to track our reading over the years. We also love seeing our Spotify Wrapped at the end of each year, and we thought it would be cool to do something similar for the books we've read.

What it does

Our website takes a user's csv file imported from Goodreads, which contains data about their logged books. The user can select a year to be "wrapped," and then we perform data analysis on the user's books for that year. We first display their average rating for books out of five stars, the number of books read that year, top reading month, top author, and the longest book they read. Then we show three books that they rated five stars over the past year and three books that they added to their "to-read" wish list. Finally, we let the user input information about another book and perform cross-reference data analysis to predict whether they would enjoy any given book.

How we built it

We used HTML and CSS to design the website. Then, we used Javascript to extract and analyze user data from the csv file and to link the pages. We also developed our own algorithm for checking whether a user would enjoy a given book.

Challenges we ran into

Since Goodreads isn't giving out API keys anymore, we didn't have much data to analyze from just the three of us. This limited our ability to perform diverse testing. Also, we didn't have much experience with web development, using CSS, HTML, or Javascript, so there was a learning curve. There was a lot of research in the beginning about how to connect the files and make a functioning website, but we learned a lot!

Accomplishments that we're proud of

We worked well together as a team, and we are proud that we could actually create a working product when we hadn't had much experience in website development. We are also proud of our creative prediction system!

What we learned

We learned more about version control, like pushing/pulling on Github to work with multiple people on the same code. We also learned more about web development languages, like styling with CSS, structuring pages with HTML, and navigation/data analysis with Javascript.

What's next for Goodreads Wrapped

In the future, we could further develop our prediction system to take in more factors and make use of more machine learning techniques. We can also add data validation checking so the program doesn't crash when there are invalid or insufficient inputs. Finally, we can adapt our system to take in two user csv files and analyze similarities/differences between multiple Goodreads accounts, which could be interesting for book clubs!

Share this project:

Updates