Cognify Architecture Diagram
What it does
Cognify is a web app that provides feature and cognitive analysis of tracks on Spotify.
How we built it
In this project we were very keen to use unfamiliar technologies. So we opted to explore into the world of serverless and lambdas using .net core!
Our lambda delivers to AWS using the serverless framework by standing up a cloudformation stack. This stack uploads our bundled code to S3 and creates the lambda before putting it behind an API gateway so that it is accessible to the public through an API call.
Our Lambda makes calls first to get the songs lyrics and then queries Microsoft's API to retrieve Cognitive sentiment analysis and keyword extraction of each line. We then process this data to make it compatible for visualisation in the front-end.
We then created a react app that communicates with both the endpoint and Spotify's API. We use Spotify to get the track currently playing and the audio's features/analysis. We then send the song details back to our lambda function to run Microsoft's cognitive analysis and keywork extraction.
Challenges we ran into
One of the greatest challenges we faced as a team was combining advanced datasets from various endpoints in different API's. Additionally, we had to write a number of workarounds during development, where the technologies could not support the functionality we wished to provide.
Accomplishments & What we learned
React and .Net Core were both relatively new technologies for the two of us, therefore part of the challenge included getting up to speed on these frameworks. We also put a large emphasis on improving our skillset in writing clean, efficient and re-usable code, with the additional challenge of working with a more advanced architecture.