Inspiration

We got inspired by the fact that it is hard for local artists to be known so why not create an amazing experience for users that lives in the city or just visiting to discover our local talent! You can do it alone or with other people that like the same type of music like you or not!

What it does

First there's a login page so you have to create an account and sign in as an user. After that, the application has two parts.

The first is the local tour. The playlist starts with a local artist shortly introducing the city and himself and then the playlist starts with music from local artists (including the one who introduced the playlist). The playlist is firstly based on your music preference. So, if you listen mostly to rock music, we will introduce you to local rock bands and tell you when they play next in town. There's also the option for the playlist to not be based on your preference so that you can open your barriers and explore others sounds! We also wanted to add this feature but by moods based on the weather outside or where you are in the city. The playlist will be different if you start the tour in a park in a sunny day than in the subway. So, as you travel the city, you hear it's sound, his mood and it's music identity! Playlists are generated randomly. We choose one to two most popular songs from a number of artists and make a playlist with it. So, every time you do the experience, it will be different! The music player has the basic options: Play, Pause, lower the music and put it up. When a song ends, the other one starts playing immediately.

The second part is based on the first part, but you can do this with other people! You can sync and connect with people that listen to the same kind of music that you likes or not and have this musical tour together. The group will have the same playlist.

How I built it

we used Android Studio with Kotlin and XML to create the mobile app. We used some Material components as well so we don't have to loose time to make components beautiful. NodeJs with typescript and javascript was used for our server that we deployed on AWS. To share the playlist to everybody we wanted to use sockets (no time to implement the feature), also we used Spotify by querying their API to generate different playlists based by artist, genre and location. Sadly, we didn't have time to combine this with the front end to play theses generated playlists.

Challenges I ran into

We ran into plenty of challenges. The first, and the biggest one, was Android. We never touched that technology before and never coded in Kotlin. So, learning how it works was a great challenge. We also had problems with our Sockets for the Sync feature not being able to be sent. Our HTTP requests from client to server side wouldn't work either. So we couldn't merge the back end with the front end for validating the user, get our songs for the playlist from Spotify and send the playlist to a group of people. Only our requests from the server side to the Spotify API worked for us.

Accomplishments that I'm proud of

We are really proud to have created our first mobile app. Sadly, CORS wouldn't let us connect the back end and front-end, but other than that we were able to make the interface for the first part of our idea and we're really proud of that. Also, we're really proud because of our learnings.

What I learned

What's next for City music tour

Ideas to develop the project more:

  • generate playlists from local artists based on mood and/or user's position
  • add into the UI when is the next show of the local artist
  • add more commentaries where if you walk by an historic monument you could get quick commentary on it (the comment will be dynamically added in your playlist knowing you're really near the place)
  • this idea could be used for children going in middle school! If teachers want to make their students learn about the city where they live but want to add something spicy!!! with music involved!
  • make playlists that follows a story with music that speaks about it. For example, if you into a place that has history and someone local made a song about it, it will be played.

little note: the code is a little spread. The front end code is on the branch login from android repo. The server code is in the server repo. The code for the sockets are in server repo as well. Code for geolocalisation is in android repo.

Share this project:

Updates