What it does

Spot the Difference lets you compare your music taste to other spotify users, just by sharing a three-word code.

How we built it

SpotDiff uses Vue.js on the frontend, hosted by Netlify, and an AWS Lambda backend written in Python. We used Serverless for DevOps, which let us specify our cloud infrastructure as YAML and have it automatically deploy. We use DynamoDB as a data store.

We decided on AWS instead of Google Cloud or IBM cloud because it had better support with the devops tools we found had much better support for them. Google Cloud has much less sophisticated functions, whereas with AWS we could just run a Flask application. IBM Cloud does appear to have better pricing though, so had we found it had better third party tool support we would've used it.

Challenges we ran into

Many of the issues we ran into were with cloud setup. It took a while to have a functioning Flask app on Lambda, and it could be difficult to debug, with error messages getting hidden by the various layers requests go through to get to the Lambda. Using DynamoDB in Python can be difficult due to poor documentation, and we weren't able to implement some features we liked (such as caching the data for a time period) because of this.

Accomplishments that we're proud of

We were able to get a functioning API fairly quickly, although it took a while to iron out some issues.

What we learned

We learned a lot about how to write, debug and deploy serverless applications.

What's next for Spot the Difference

We'd love to add more cool data visualisations and work out how we can bring even more data into it.

Built With

Share this project:

Updates