Inspiration
Music holds the power to bridge gaps and ignite connections beyond what words alone can accomplish. It's a universal language that speaks to our souls, bringing strangers together and strengthening bonds in relationships. Despite the profound impact of music, there's been a missing piece in the experience — a direct way to interact with the music we cherish and share recommendations with friends. Spotify Rex emerges to fill this void, offering more than just a platform for streaming music.
What it does
Our application, Spotify Rex, initially had only one feature but grew to a wide range of features:
- Song Recommendations: Users can effortlessly recommend songs to their followers, sparking new musical discoveries.
- Access Shared Songs: Explore and enjoy songs recommended by followers, enhancing your listening experience.
- Interactive Engagement: Engage with music on a deeper level by reacting, commenting, and providing reviews on beloved (or not-so-beloved) tracks.
- Artist Appreciation: Provide artists with a platform to feel the love of their listeners, fostering a deeper connection between creators and fans.
- Community Interaction: Dive into an interactive feed where music enthusiasts can connect, share, and discuss their favorite tunes.
- Personalized Profiles: Customize your profile to reflect your unique musical tastes and personality, going beyond basic information like name and email address.
How we built it
. ├── app │ ├── controllers │ │ ├── (Handles HTTP requests and responses) │ ├── main.py │ ├── rec.py │ └── spotify.py ├── logic │ └── (Additional logic and utility functions) ├── models │ └── (Database models and schemas) ├── database │ └── (Database management scripts and configurations) ├── src │ └── view │ ├── feed │ ├── home │ ├── profile │ ├── received │ ├── requests │ ├── reviews │ └── search ├── rex_client ├── node_modules ├── README.md ├── package.json └── package-lock.json
As you can see from the directory of our project, we had a variety of different technologies. We used React and CSS for the frontend, allowing us a dynamic very nice looking UI. We then would interface with the backend FastAPI server written in Python to pass requests back and forth from the user to the database. For the database we initially tried to setup PostgreSQL, but settled on MySQL because it was far more simple to set up. This allowed us persistent storage and a better organized web app. Finally we used Google Cloud storage for all of the images we used for each song or album. None of those were rendered statically, each had a location in the cloud storage associated with a particular song or album that we rendered dynamically.
Challenges we ran into
Developing an application within the expansive ecosystem of Spotify posed its own set of challenges, particularly in terms of:
- Login and Authentication: Overcoming hurdles in authenticating with the Spotify Web API to ensure seamless user experiences.
- UI Design: Balancing aesthetics with functionality highlighted the intricacies of creating an engaging user interface.
- Setting up a database: Database Schema planning, writing queries, and resolving errors typically takes a very long time. It was very challenging to this but we are happy that we were able to get persistent storage!
Accomplishments that we're proud of
Despite the challenges, we achieved significant milestones:
- Feature Expansion: Surpassing our initial goals by implementing a wide array of features to enhance the user experience.
- Technological Growth: Embracing and mastering new technologies and packages, such as Vite, Tailwind in JS, MySQL that enriched our development process.
What we learned
This project served as a valuable learning experience for all team members:
- Advanced Web APIs: Delving into the intricacies of utilizing public web APIs for enhanced functionality.
- Backend Development: Navigating the complexities of backend database management to ensure robust performance.
- Diverse Coding Practices: Through exchanging our ideas, we learned a lot from each other. With one suggesting a package and another giving brilliant reasons why another is better.
What's next for Spotify Rex
Presently, our greatest wish is that Spotify actually add this product. We are thinking of contacting them for this update. We would also like to improve the code quality and features. By combining proactive outreach to Spotify we hope that we can maximize the potential of Spotify Rex and pave the way for its integration into the Spotify platform.
To Spotify, this means enhanced user engagement, differentiation and competitive advantage, and great monetization opportunities.

Log in or sign up for Devpost to join the conversation.