Book Tracker
Project Summary
A custom book tracking app built with Next.js and the Google Books API that lets users categorize, rate, and record their reading progress.
Building a Book Tracker using the Google Books API
Book Tracker is a project I created to keep track of my reading progress. I wanted a tool that would not only let me store and organize books but also record my personal reflections, ratings, and reading history. The application connects to the Google Books API, which allows users to search for books and add them to one of four categories: Reading, Wish List, Finished, and Did Not Finish. For books not listed in the API, I added functionality to create custom entries through a form, which then integrates seamlessly into the tracker.
The application was built using Next.js and React, styled with TailwindCSS and ShadCN, and supported by a Xata.io database. I used Yup for validation and Formik for handling form submissions. The project gave me a chance to practice structuring data while also building a user-friendly interface.
One of the biggest challenges was designing the database schema. Since I initially focused on the front-end design, I later had to rework the database when I added the ability to create custom books. Unique identifiers were also a challenge, as ISBNs were sometimes unavailable. I also experimented with caching to speed up load times, but I struggled to figure out how best to implement it effectively.
Despite these challenges, the project successfully provided me with a personalized book tracking system that combines external data from Google Books with custom input. It was also an excellent opportunity to refine my database design and explore caching strategies, even if the implementation wasn’t fully realized.