Inspiration

Understanding that our team will likely face difficulties due to our prior experience in the MOCK-hackathon, we decided to go for an easier project. Meaning that we would increase the complexity of it, once the basic structure would be established.

What it does

It is a one-page web application, which contains a javascript form that utilises ajax request to the backend. Which given the list of tags return the list of songs that contain such a tag in their name/text.

How we built it

created a JS form and connected it with Spotify API to display song name, artist, cover, etc.

Setting up a docker container with a Spring Boot Application executable file. Setting up the database with the help of ORM system Hibernate. Developing key REST API endpoints using the Spring MVC.

Our Python-public facing API was using HTTP request to the Java API, which would handle the database logic.

Challenges we ran into

Docker was not setting up properly, so we had to debug it

The password for the router was lost, making setting up a local database server impossible. DUe to the lack of knowledge of cloud we had to abandon the idea of a single persistent database and rely on each teammember having a database docker container, with a persistent volume

Timezone difference have been difficult as some team members were not available, and some of our teammates had to work through all-nighters

Accomplishments that we're proud of

We were able to work as a multi-national team, overcoming the hurdles that difference of the timezones were giving to us In spite of docker creating serious problems initially, we managed to persevere through that and develop a deployable docker containers making our code scalable We have created clear and understandable documentation for out api calls.

What we learned

We have significantly enhanced our Docker skills, including using docker-compose to setup multiple containers and allowing for communication between them.

We have advanced our Git skills, including making multiple branches to separate untested code from tested.

Writing clear documentation.

We obtained invaluable experience of working with team that has different timezones, being able to reflect working of a multinational team.

Reading documentation of new dependencies effectively, in order to allow for a quick implementation

Setting a database in Java, and supporting it with docker

Eliminating CORS error in backend.

What's next for songify

Connect frontend with the backend Use of AI in order to make recommendations Hosting the database on the cloud Scraping more data for the database

Share this project:

Updates