
Inspiration
The radio has always been a great way to be exposed to new music, especially with student radio stations such as WXYC. Carolina Radio takes this to the next level, serving as a platform for jam sessions wherever you are!
What it does
Carolina Radio takes in song submissions from across campus and creates a queue that anyone can listen in on. Our song selection algorithm was carefully tuned to ensure a balanced campus-wide listening experience.
How we built it
We built the frontend using React, hosting it on GitHub Pages for easy global distribution. The backend was built using Python and FastAPI combined with a NoSQL database using MongoDB Atlas. All of the management of user sessions and the connections with the Spotify API for playing songs is managed entirely by the backend, maintaining user privacy and adhering to industry standards for cross-application integrations.
Challenges we ran into
The Spotify API was challenging to manage, as we had to manually control the user's queue and track our own record of songs that had been requested. In addition, we faced many difficulties with managing the song queue and properly syncing it across all connected users. Finally, the Spotify documentation was spotty in some points, which led us to devise our own solutions and unique debugging workarounds as we hunted down a path to our MVP.
Accomplishments that we're proud of
A big accomplishment we are proud of is the management of our own authorization session system, managing the OAuth login using Spotify from end to end. We made an effort to follow industry best practices and maintain a sleek, professional workflow throughout our 24 hours of hacking in order to ensure the excellence of our app and the quality of our codebase.
What we learned
We learned a lot more about the full stack web development process, and each used some new technologies that we hadn't used before. We also learned more about the fundamentals of user authentication and session handling.
What's next for Carolina Radio
One big goal we have is to formally lock it down to Tar Heels, as well as to expand variations to other campuses and communities, allowing others to experience the shared music queue as well. We're inspired by platforms like YikYak, which leverage close-knit, geographically-defined communities to build a stronger sense of cohesion. Additionally, we would like to provide a spin-off feature that is designed for managing a queue for a party, using the same technology with a single player as an alternative to Spotify Jams.
Built With
- cloudflare
- fastapi
- mongodb
- mui
- oci
- python
- react
- spotify
Log in or sign up for Devpost to join the conversation.