Graphing My Way Through the Library With A Book Tracker App

Day 41 of 100 Days Coding Challenge: Python

Book Tracker Program (Day 41 – Day54)

I moved on from absolute-beginner apps to something a little more demanding. Over the past two weeks, most of what I built wasn’t flashy—it was practical. These small apps were about learning the exact functions I actually need.

The file organizer, for example, solves a very real problem: keeping files consistently formatted instead of turning my folders into abstract art. The PDF merger came from pure necessity. My scanner insists on scanning one page at a time, and finding a decent free merger online—one that doesn’t ask me to upload tax documents to the internet gods—turned out to be surprisingly difficult.

That’s when it clicked. With Python—and a bit of help from AI—I can build these functions myself. No subscriptions, no privacy risks, no compromises. So I decided to aim slightly higher and work on an app connected to something I genuinely care about. For my first “real” project, I chose a Book Tracker Program—because if I’m going to code for hours, it might as well involve books.

Introduction

I love reading. My idea of a good time is curling up with a 1,000-page fantasy epic and thinking, Yes, this is how I’ll spend the next two weeks. Naturally, the data nerd in me can’t resist tracking my progress. I’ve used everything from Excel spreadsheets to a system I call “Analog Notion” (also known as a notebook) to log my reads. But now I want more—stats, graphs, the whole dashboard treatment. I’ve seen those beautiful book journals online with charts showing how many pages were devoured each month, and I thought, “Why not me?” Today’s project is a humble beginning: a simple book tracker App in Python. It’s nowhere near as pretty as those Instagram-worthy bullet journals, but it’s a start. And hey, if Brandon Sanderson can write 400,000 words in a single book, I can write a few lines of code to track it.

Today’s Motivation / Challenge

Every January, I wonder how many books I actually read last year, and how many times I reread Mistborn instead of trying something new. This little tool is my attempt to turn that curiosity into data—and maybe guilt myself into broadening my literary horizons. Also, it’s a good excuse to code something that feels both nerdy and delightfully personal.

Purpose of the Code (Object)

This script lets you log the books you’ve finished, track how many pages you’ve read, and generate a basic bar chart showing your monthly reading habits. It’s not fancy yet, but it turns your pile of finished books into pretty bars on a graph—which is basically visual applause.

AI Prompt:

Write a Python script that logs books read (title, author, pages, and date finished), stores them in a CSV file, and displays a monthly bar graph of pages read using pandas and matplotlib.

Functions & Features

  • Add a finished book to your reading log
  • View your full list of logged books
  • Display a graph of how many pages you read per month

Requirements / Setup

pip install pandas matplotlib

Python 3.7+ is recommended (though any recent version should work).

Minimal Code Sample

df[‘Month’] = df[‘Date Finished’].dt.to_period(‘M’)

monthly_stats = df.groupby(‘Month’)[‘Pages’].sum()

monthly_stats.plot(kind=’bar’)

This groups books by month and creates a bar chart of pages read.

Book Tracker

Notes / Lessons Learned

Let me tell you the saga of activating a virtual environment in PowerShell. It started, as all good tales do, with an error message claiming the activation script didn’t exist—even though I was staring right at it. After the usual ritual of Set-ExecutionPolicy RemoteSigned -Scope CurrentUser, and trying the exact same command three times, it suddenly worked. I have no explanation. It was like summoning a reluctant ghost. Once I got the environment running, I entered four books from my holiday reading binge (December 23 – January 1). Manually. One by one. It’s not glamorous. The graph? Let’s call it “functional minimalism.” This is a bare-bones tool for now, but it has potential. Someday, I’d love to feed it directly from my Notion log and automate the whole thing. Until then, I type.

Optional Ideas for Expansion

  • Import book data automatically from a Notion export or CSV
  • Add genre filters to visualize trends (e.g., “Too much fantasy?”)
  • Track time spent reading, not just pages

Leave a Reply

Your email address will not be published. Required fields are marked *