Inspiration

We were tired of listening to the same songs on our playlist. As busy people. we don't have the time to listen to many full songs in our suggestions, hoping to find one we like. We needed a way to let us sort through and find music we liked, quickly. This is why we built rebeatt.

What it does

Rebeatt transforms your Spotify suggested music into a Tinder-like format. Swipe right on a song you like, we'll add it into a playlist for later listening. Swipe left, skip. Rebeatt uses Spotify's sophisticated algorithms to provide songs tailored to you. but presents them in an easy to use, fun app for your phone.

How we built it

The app is built with Flutter and presents a sleek user interface for swiping left or right on presented songs. After spending many hours fighting with the Spotify SDK and web authentication API (as well as several documentation typos!) we are able to directly access control of music playback, playlist creation and all other Spotify features through a combination of SDK calls and manual API calls. We then call the Spotify API to allow us to control the user's Spotify account whilst they swipe left (or right!0 on our suggested tunes.

Challenges we ran into

The biggest challenge was authorisation. We needed a secure, robust way of letting the user login to their Spotify and then be redirected back to the app. We achieved this by using Spotifi’s OTP flow in the browser - but the auth token it returns gets sent to a web URL we provide. Hence we run a custom rest API in CGP that can take this token from spotify, and that our app can request its token back from!. This is just the first step… but the rest is less interesting.

What we learned

Developing a great app means focusing completely on the user experience. Authorisation is hard!

What's next for reBeatt

Now that we've done the hard part of authentication, we want to allow the app to be used on IOS. We'll also implement features like selecting which kind of song you want to find, to help create certain types of playlists.

Built With

Share this project:

Updates