Bookshelf.py

Last summer, I finished an Intro to Python course. My two friends and I wanted to do something together and we all shared an interest in coding so it was a great choice. This summer, I started coding a personal python program called Bookshelf. It’s a simpler version of Goodreads meant only for me. I use it to keep track of books I’ve read, want to read, recommendations from friends, etc.

Since September I’ve been committing revisions to my repository on GitHub. The logic is simple – the program reads from and writes to a csv file. For example, using lists and strings, I query the file and save matching search terms. Then, I display it on screen.

In the above example, I searched for “The Expanse” in each row of my csv file and saved any row that matched into a list of lists of strings. Neatly printing it out like that, I can see which novels/novellas in the series I’ve read. I want to read that last novel, Leviathan Falls, but I’m waiting for the paperback version. And I’m not sure on the comics, The Expanse: Origins, so they are shelved as “Potential.”

I like the idea of “shelving” books. It’s similar to separating books by topic on an actual bookshelf. I have one for fiction and one for non-fiction. In the program, much like Goodreads, I have a few standard shelves: Read, To Read, Potential, and Purchased.

Read means I have finished reading that book. To Read means I’ve decided to read the book. Potential means I want to read it but I’m not sure. Do I have enough time? Too many other books I want to read? Is it really interesting enough to read? Purchased means that I bought it but haven’t committed to reading it. Maybe I will donate the book, gift it to somebody, or just keep it until I decide to read it.

So far this coding program has been excellent – an interesting enough project to keep me coming back and also challenging enough to activate my logical thinking. I hope to develop this further in the new year. If not for my own interest, then at least as a practical exercise to keep in touch with coding. Employers be aware! Lol.