Fasol: Music E-Learning Platform

logo-plavno
Plavno
  • Score Case study score
    5.0
  • Date Published
  • Reading Time 2-Minute Read
Fasol-1-9

Real-time communications web service for vocal and guitar learning

The Challenge

Fasol is an online music school offering one-on-one music lessons for people around the world. The client required a unique multifunctional product that would factor current market trends and have its own distinctive features.

First of all, it would have to be a full-featured LMS platform, allowing lessons to be conducted via video link. This would require audio-video streaming (p2p) solutions and chat rooms, as well as a mobile and web app for remote learning sessions.

There was also a request for detailed statistics and analytics, which would include the collection and analysis of data in all role reservoirs: for administrators, tutors and users. Finally, the platform would also require scalable architecture based on AWS.

The Solution

The backend and front-end architecture was developed. This included the following.

  • A specially designed call server that allowed for services to be scaled horizontally, based on Kurento
  • Server based multi-stream video recording/transcoding
  • WebRTC based video-calls on web and mobile
  • HQ Audio streaming/broadcasting
  • Chat service

The user interface was built as a React App which interacted with the php-based back-end, storing all the user information and “call schedules” in MySQL database.

Microservices architecture was chosen to achieve auto scaling of the application and to meet client requirements. Applications with the recording option enabled supported 200-300 calls simultaneously, while 800-1,000 calls without recording.

Video calls and audio transmission were based on low-level platforms Kurento and Coturn, as well as a TURN relay server (used in a bundle).

Web Real-Time Communication is a technology that enables Web applications and sites to capture and optionally stream audio and/or video media.

The Results

Due to our successful collaboration, the client has continued to work with us for the past two years and has now accumulated over 200,000 clients. We assist in maintaining and supporting the project, and our product managers are constantly striving to enhance the platform by introducing new features and optimizing performance.