As long-time TAs of the CS Department here at UVa, we have long been interested in improving the technical and personal skills of students. We firmly believe that the key to success in the field of Computer Science lies in developing passion and creativity in using in-class skills for both important societal problems and personal passion projects. This weekend, we developed spoticode, an application that encourages users to explore developing their own applets to customize the performance and functionality of their Spotify account.

What it does

spoticode is a web application that comprises of a terminal, output, repository of applets, and mentorship. It allows users to make API calls to Spotify using JavaScript, unlocking many possibilities for customization pertaining to music listening, song recommendations, and modifying playlists. Furthermore, we implemented the ability to save scripts, allowing for users to easily reuse, adapt, and share their creative coding ideas. Our goal is to evoke passion and interest in introductory students, growing their knowledge base and expanding their problem-solving abilities.

How we built it

Our web application was primarily developed using the Django framework, executed via Gunicorn and served via NGINX. We used a PostgreSQL backend to store our persistent data and Bootstrap to style our pages. To build the terminal, we embedded CodeMirror to provide a JavaScript coding interface to Spotify's API. After we containerized our system using Docker, we registered our domain and hosted our application on Google Cloud.

Challenges we ran into

This was our first hackathon, and we had only a general idea of how the typical workflow followed. Beforehand, we did not expect the idea generation stage to be a significant hurdle, but later on we discovered that developing a strong, clean idea was actually quite imperative to succeeding. Another challenge we encountered was a lack of front-end experience and difficulty in comprehending asynchronous events in JavaScript. We persisted and eventually managed to find the help and knowledge to overcome these obstacles.

Accomplishments that we're proud of

Although this was our first hackathon, we were proud of several aspects of our project. We are particularly proud of our sleek UI, our seamless save function, and our comprehensive, robust terminal. Furthermore, we worked extremely well together as a group, utilizing VS Code LiveShare to quickly and effectively develop our code in an interactive manner.

What we learned

Over this weekend, we learned an extremely large amount of technical details ranging from low-level details in our web application to high-level machine learning techniques in a few workshops. Additionally, we bonded with our companion group in our conference room, learned how to Salsa dance, and discovered how to hack!

What's next for spoticode

In the future, we plan on developing and releasing spoticode for educators worldwide. We will continue our work on spoticode because we truly believe in sharing our passion of Computer Science with hopeful future others.

Share this project: