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.
![](https://akshayrrao.ca/wp-content/uploads/2021/12/the-expanse-part-1.png?w=1024)
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.
![](https://akshayrrao.ca/wp-content/uploads/2021/12/the-expanse-part-2.png?w=1024)
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.