Having two kids, ages 6 and 2, I’ve made regular visits to the library in the past couple of years. I like to track certain things in my life. Not to a crazy extent, but I guess I just like data. As we’ve read through piles of children’s books, I’ve thought it would be neat to track which books we read and when, and even possible “rank” them in a way. Well, I’ve finally turned this into a little side project.

I’ve made a page on my website to track all these books. It’s a work in progress for sure, but I’ve got the core functionality working. You can see it here:

https://paulbrown.us/books

I haven’t been tracking exact dates up to a few days ago, but I was able to piece most of it together based on old emails from the library. I receive emails when books are held for me at my local branch, and when books are due. For most of the books we check out these days, I request them from the library system’s website and pick them up at the branch that’s 2 miles from my house. This saves tons of time, and doesn’t risk us picking out totally random books off the shelf that have a good chance of being terrible.

A couple of technical details about this project:

  • I’m using the Amazon AWS Product Advertising API to programmatically pull titles, authors, and book covers (and, yes, affiliate links) for all the books. This way I just keep a master list of ISBNs and some of my own metadata, and I can generate the resulting data with a script.
  • I store the data in a SQLite database, because SQLite is so easy to use for something this simple.

A major inspiration for this project is the Tinybop Loves site. They have done an amazing job of documenting a variety of media that is inspiring to young minds. I don’t imagine my little project every becoming anything like that, but who knows what lies ahead?!

Also, shout out to the Gwinnett County Public Library. I love my country’s library system. GCPL