Background

Our client is a professional dancer, who has been performing around the globe and has met the other talented performers of national dances from all over the world. He came up with the idea to develop the application, through which these dancers can teach and train everyone.

Solution

The web platform is intended for distant group dance learning. The application holds timetables of lessons, lists of subjects, topics, and teachers. 16 users can participate in one lesson: one Teacher and 15 Students.

Before a lesson, a Teacher uploads the audio to the app. A Student then books a lesson and pays for it via a payment system. During the appointed time, a Student has to open the application or enter the website via a mobile device with a camera. After authorization, the Student receives the audio prepared by the Teacher which is uploaded on their device. Then the system estimates the speed of the data transmission channel and tracks when the student joins a lesson.

dancer

Security

WebRTC used in the project does not use third-party services that necessitate the implementation of additional security measures. Nevertheless, the technology works via proven network protocols that ensure the security of information transfer. Our specialists provided data transfer between users and the service via encrypted channel (SSL/TLS).

Transparency & Methodology

During the development process, the IntexSoft team followed an iterative approach. Our specialists performed tasks in parallel with the continuous analysis of the results obtained and adjustments to the previous stages of work.

We worked closely with the client in the project, he acted as an expert in the field of the dance industry. The work was performed in a continuous testing mode, where the client took an active part.

Team Composition

The dedicated team of developers handled the project. IntexSoft performed front-end and back-end development. The line-up:

Project manager

2 full-stack developers

DevOps

Result

IntexSoft specialists successfully implemented a project to create an online dance school. At the moment, the work on the service is continuous. We are developing a similar mobile application, and also plan to add another user role – Translator.

Key Features

  • Sets students' audio and video streams to the server, where they are synchronized, due to Teacher’s audio as reference information.
  • Checks the student’s Internet connection speed and connection time.
  • During the Practice stage, all video streams are synchronized with the music.
  • During the Monitoring phase, the audio and video streams from the Student's camera and microphone are transmitted to the other participants of the lesson, but only with their consent. Even with consent, this process is limited to a specified time interval.
  • Completes the Practice phase when the music stops or on a Teacher’s request.
  • Provides the ability to scale horizontally.
  • Provides the ability to conduct up to 10 lessons simultaneously.
  • Allows up to 15 pupils in one lesson.
  • Records a video of the lesson and provides it to all participants.
  • Provides several custom packages at different costs.

Technologies

UIKit JavaScript ES6+ HTML5 CSS3 Webpack Java 8 Spring boot Maven Node.js (WebSocket) pkg (npm package) WebRTC Wowza Media Server FFmpeg MongoDB MySQL Nginx Amazon EC3 Git SVN