An AWS cloud-native music app development
A hybrid of a social network and a music app
October 2020 - ongoing
AWS SAM, AWS Lambda, Amazon Kinesis, NestJS, React, Redux-Saga, Amazon RDS
cloud development, backend development, frontend development, payments integration, architecture, UI/UX
ABOUT THE CUSTOMER
The original idea behind the all-new Turntable™ is to bring people together with music. TT.fm is a social network platform that enables its users to listen to and share music with friends in real-time through a streaming service. The platform offers a virtual space for music lovers all over the world to share and discover new tunes. Besides listening and streaming functionalities, TT.fm also enables user interactions, creating virtual events, and a chat feature.
ABOUT THE PROJECT
The customer was looking for an experienced team to lead and implement their cloud-based music app development project. The goal was to design and develop both the front- and the back-end of the app, including integration with various music streaming providers, social networking components, and payment features.
The main challenge was to integrate all of the services and components into one smoothly working application using AWS cloud. Due to a large number of various services within the app, the project was divided into repositories and our team had to take care of efficient project management. To enable an enjoyable app performance Rumble Fish experts had to perform a number of tasks using a wide range of technologies and tools. First off, we had to integrate several music providers (Apple, Spotify, YouTube, Soundcloud) into one streaming service. Next, to enable uninterrupted app functioning, we had to take care of continuous delivery deployment. Another task was to build an admin panel for application management and integrate a Stripe payment feature into the app.
Keep on reading to find out the tech stack we used to meet those ambitious customers’ requirements.
In this project, we were involved in both the back-end and the front-end development. The website front-end was written with React, Redux-Saga, and styled components. The back-end is a more complicated story as TT.fm is a multiservice platform with various functionalities.
To ensure the smooth integration of multiple services into one cohesive app, we used the AWS Serverless Application Model. SAM framework is an ultimate infrastructure-as-code tool that makes it easy to manage growing infrastructure and complex operations on cloud resources.
With the addition of Amazon Kinesis, our developers were able to ensure easy processing of the music streaming data in real-time to enable advanced business analytics.
In order to enable fast and reliable app updates without disturbing the user experience, our developers applied AWS CodePipeline and AWS CodeDeploy. This Amazon continuous delivery tool automates the process of building and releasing code updates.
One of the key features of TT.fm are shared rooms for listening and streaming playlists. To allow for dynamic user interactions and stable switching between different rooms, our developers used Socket.io which provides a bi-directional communication channel between the client and the server.
Due to its flexibility and ease of unit testing, our team chose NestJS for the back-end development. NestJS app is easily deployed as AWS Lambda and it also automatically generates OpenAPI Swagger documentation which makes front-end/mobile integration much easier. NestJS is based upon TypeScript which means it enables adding types to the variables and provides error warnings based on them.
Rumble Fish dev team integrated the app with the Stripe payment features. We covered monthly subscriptions and money transfers between users.