
Student Contribution: Full Stack Development
Background
I’m a Senior in the School of Humanities and Sciences at Ithaca College. In my spare time, I mostly play video games ranging from MMO’s to first-person games. These are massive multiplayer games and simulation or role-playing activities. I’m still exploring what I want to specialize in with my computer science degree. The work for this project was very enjoyable and I was able to put classroom knowledge to real-world use. After graduation, I plan on working for the government or helping develop the next new piece of technology.
What is Localify
For local artists, it can be difficult to get their music noticed or have people attend their shows. With our small team of five people, we aimed to help these artists through our application Localify. We use your Spotify login to recommend these artists for you. This project has been going on now for about two years. It was shelved over this past year because Covid-19 had killed the local music scene and I was tasked in helping bring events back to our application. I personally worked as a full stack developer which means I worked on both the frontend(what you see as a user) and backend(what gets sent to the frontend to be displayed) for our project. My main focus was getting Localify to work again with local events in the music scene. Other daily tasks were fixing bugs that appear, going through tasks on our Trello board, and helping where I could. Most of the day-to-day was getting features working that were not previously present on our website. Something that was an issue with the recommendation was it was taking anywhere from 15 seconds all the way to 45 seconds. This is an issue if we have ten or more users as it would back up and become really slow. I had helped with speeding this up. From the work I did to accomplish this we got it down to around 3 seconds! Another thing that I had helped out with was getting our servers up in running to host our application.
Full Stack Development
Localify’s goal is to connect users to local artists so that the artists get more recondition. For our backend, we use Python and SQLAlchemy and our frontend is React. React was used as it allows us to deploy easily on mobile and with npm it allows us to use third-party packages easily. I had joined the project after it was already developed and all the code was already established so it was a matter of dusting off old code and implementing new features that we wanted to have before we relaunched. The algorithm we use for machine learning is Alternating Least Square(ALS). We use your Spotify login to get your top seed artists(your heavy rotations) to use in our recommender system. This allows us to pair these with local artists that have a similar genre. Another aspect of the application is we show events that the artists have and prompt you if they have a show in the current scene that you are located at. On the artist pages, we show where they are from and their events. You can also view events from a city only without the recommendation, as well as see who is playing at what venue. We use Flask on our backend to send routes to the frontend to display information to the user. SQLAlchemy for our backend for our database that hosts everything we need for our recommendations. Github is used for Amplify so that we can easily push new code to the frontend and it auto restart. For our two servers, we have staging and production that is used with Linux which makes it really easy to start up a new server. For our frontend, we use AWS amplify which allows us to host the frontend through Github and have a seamless start up for our production and staging and our backend is hosted by us. Something that was a major issue was the speed of the recommendations. The issue was we had events also going along with the artists that were being recommended and this was slowing it down a lot. This was due to the fact we would recommend 15 artists which could have 50+ events. To fix this we had moved the getting of events to the artist’s page. Getting us down to a solid three seconds helps with the scaling of the application. The front end is written in Javascript and the backend is written in Python.
Looking Forward
The outcome of the project to date is that we have greatly increased the speed of the recommendation to get the artists. Our application is up and running and can be accessed at localify.org. The hope is that more people will use it to discover local artists and tell their friends about our application. The future work that needs to be done for the project is using Apple music as a login, having everything run even faster, and other features that would improve the user experience. The person on our team works on our outreach and we have posted across all social media regarding our launch. We do different scenes of the month with different cities to showcase local artists and events.
Written by Sean Blackford – September 3rd, 2021