Remember 2021? The vaccines arrived, the summer olympics finally happened in Tokyo, Joe Biden became president and Jeff Bezos went to space. Most significant moment for my friends though? BTS spoke and performed at the UN.
For those who lived under a rock, BTS, the seven-member K-pop sensation, was the biggest music group in the world until their mandatory military service enlistment. By some estimates, their contribution to the South Korean economy is around USD 5 billion per year or “0.5% of the country’s entire economy”. My point is, they were everywhere and especially as someone who grew up in Asia, all my friends loved them.
That year, I was a first year aspiring CS student who had never coded up until CSC110. I knew I wanted to get at least one project going as I knew nothing outside of class. So as a first year where inspiration came in abundance and time was no more than a societal construct, I had an idea to build a BTS radar.
A simple web app where you plug in your Spotify URL, and it dishes out a percentage — revealing how much of your public playlists consist of BTS songs.
Not only did I get to make fun of my kpop-obsessed friends (highest score was 92%), but in all seriousness, it was my first exposure to APIs, external libraries and even HTML/CSS. I don’t remember the details anymore, as it’s been 2 years, but I will walk you briefly through the process.
Building the project from ground up was a journey, especially with my total lack of experience. I hastily learnt HTML and CSS basics from W3Schools tutorials, and just tried trial and error’d my way through. I drew inspiration from the simplicity of a particular band’s website layout, using the Inspect tool to reverse engineer its design. The choice was partly an aesthetic one because I always loved the simple and retro looking websites, but also partly a functional one since it was a lot easier to code.
Next I moved onto the backend. I don’t remember where, but somehow, I have heard about APIs before — probably from some mumbling 3rd years at Bahen. In my mind, the logic appeared straightforward: take the user’s input, request for the total number of songs in public playlists, request again for the total number of BTS songs, and return the percentage.
Yet, as is often the case, simplicity is deceptive. Whilst I was able to use the spotipy library instead of starting from scratch using Spotify’s official API and the request library, the functionality I needed still required custom functions. I remember having no idea how to start, but do remember that helper functions were basically the first step we took in every assignment — so I seeked to do exactly that. Breaking them down into smaller, manageable helper functions, as I had been taught, proved invaluable. After what felt like O(n^n^n^n^n) algorithms, I somehow managed.
Connecting Python to HTML became the next puzzle to solve. I realized in order to host a website that had actual logic behind it, simple HTML was not going to suffice. So, as any good programmer would, I turned to Google, discovering Django and Flask. Comparing the two, Flask seemed to have a more beginner-friendly reputation. Let me tell you now. When you haven’t even learnt what Classes in programming are, trying to learn a framework is NOT fun. But again, with some beginner’s luck and a LOT of stack overflow, a functioning website eventually emerged, deployed on Heroku.
Looking back, poor coding practices are everywhere in the two-year-old code, but honestly, I feel no shame. It serves as a reminder of how far I’ve gotten! Despite the pitfalls, this project remains a fond memory from my first year, where it was really my first time building something I could just show the world—no matter how small. Sure, the code is objectively inefficient, the implementation nothing complex — but even with a myriad of projects now, I always look back on this one with a smile. It was my first, and it paved the way for many more to come.