Inspiration
The geospatial challenge caught our attention and we are both very interested in music. There are a few "listen with your friends" extensions for Spotify but we couldn't find any that were purely location based.
What it does
Uses core location services to identify a user's "zone" -- each geospatial zone has a playlist which all users in that zone listen to. To switch playlists, the user has to switch zones. The area of each of the zones is approximately 70 acres.
While we have a working demo and a barebones server for syncing tracks across listening sessions and devices, the four existing zones are manually built to cover this section of Vanderbilt's campus. It also currently only works on macOS.
How we built it
We used python for most of the code, relying on the spotipy library to access the Spotify Web API. To sync music across listening sessions and devices, we used a very low-impact PostgreSQL server. To access the device's location services, we run a shell script and read its output into our program. The limited GUI is built using the Kivy library.
Challenges we ran into
This was our first ever hackathon and one of our first ever serious attempts at creating an application. As such, it took us a long time to get past the initial stages of setup. We also had no experience with spotipy, location services, or any sort of front-end GUI.
Accomplishments that we're proud of
Personally, getting an application I had built to play and pause music on my Spotify account was exhilarating. Syncing that with an online database was a proud moment as well. Cameron focused a lot on the geospatial side of things and had a lot of specific breakthroughs there as well. We started out using a web-scraping script to get location and now we have a local shell script that gets the information directly from macOS's CoreLocation.
What we learned
A whole lot! We learned some inefficient ways to do things but we also learned how to improve on our own process as the project continued. Every time we learned something new we found ourselves going back and re-writing or re-formatting our past code to improve efficiency, response time, and security.
What's next for BlockDisco
We would like to expand support from macOS to other operating systems (especially mobile). We also would like to scale our zones to cover much more area to actually be a viable and useful app. In terms of design, we think it would be interesting have a much more interactive GUI showing a map with zone outlines. Tapping on each zone could display the current playlist and the number of active listeners.
Built With
- postgresql
- python
- spotipy
Log in or sign up for Devpost to join the conversation.