Client

The client is an American startup that was looking for a trusted IT service vendor to create a complex e-learning platform.

Problem

The company needed to develop an e-learning platform that would include a wide range of programming courses. As the customer wanted to incorporate personalized content recommendations, a web application was intended to analyze user data, e.g., a search history. Furthermore, the system had to easily handle high loads during the influxes of users.

Project duration

6 months, 10,560 hours

Team

4 React developers, 3 backend developers, 2 QA engineers, a UI/UX designer, a project manager

Technologies

Python, Golang, TypeScript, Node.js, React, Redux, Redux-Saga, Storybook, WebSockets, PostgreSQL, MongoDB, Elasticsearch, Elastic Stack, RabbitMQ, Redis, Docker, Kubernetes, AWS, Amazon S3, Amazon EC2, Amazon CloudFront, Amazon Route 53

Project goal and summary

The primary objective was to develop an e-learning platform that would contain multiple programming courses, educational projects, and lectures. The most important customer’s requirements were:
  1. To create a beautiful UI with complex UX features including the synchronization of the video viewing location across all user devices.
  2. Enable the information search by keywords across video content.
  3. Ensure high system resilience.
  4. Provide users with personalized content recommendations based on their preferences.

Solution

E-learning platform development consisted of the discovery stage, design, programming, testing, debugging, and release. At first, our specialists analyzed the customer’s business objectives to get an understanding of how the future app should look and behave.
One of the most important project parts was UX design. Our experts analyzed the needs of the target audience, defined the system goals and requirements. Then, our team created a dynamic prototype and user interface design.
As a result, we improved user engagement and simplified navigation, for example, through the synchronization of the video viewing location across all devices and data search by keywords across video content.
Since the requirements were changing during the project, we employed the Agile best practices. As a consequence, we delivered new functionality every 2-3 weeks, which allowed the client to check new features and give feedback while our team was able to quickly alter the product. Thanks to such close cooperation, we managed to build a quality solution on time.

When creating an e-learning platform, our engineers had to solve the following challenges:

1. As the system was intended to have thousands of daily users, it had to be able to withstand high loads.
To ensure product resilience and availability during the influxes of users, our team built a microservices architecture using Docker and Kubernetes (k8s). By employing k8s, we managed to automatically scale the system up and down depending on the load.
Using RabbitMQ as a mediating message bus, our web developers enabled asynchronous communication between multiple microservices, which allowed us to reduce response time.
2. An e-learning application had to provide fast information search across video content.
Using Elastic Stack, a tool for storing, analyzing, and visualizing data, our engineers provided fast and convenient information search across video content.
3. It was important to enable video processing to support different quality levels.
Our developers leveraged a Golang-based pipeline and employed Amazon S3 to create video versions with different levels of quality (e.g., 360p., 480p, 720p, HD).
Using RabbitMQ message-broker software, our team optimized the load on servers due to task assignation and process parallelizing, for instance, one server makes a video version 360p, the second one—with 480p, etc.
With the help of RabbitMQ, we became able to easily regulate video processing stages and faster process many videos, improving the speed by 3 times.
4. Since there were not suitable market-ready video players on the market, a custom solution had to be created.
In order to build a multifunctional player that comprises rich functionality, our web development team created a fully custom solution.
The delivered multifunctional player provides various features involving:
  • video saving
  • watch history
  • autoplay of the next video
  • video adding to bookmarks
  • the synchronization of the video viewing location across all user devices
  • playlists are even more convenient than on YouTube
Our software engineers deployed a video streaming application in the AWS platform. Using multiple AWS services such as Amazon S3, Amazon Route 53, Amazon EC2, and Amazon CloudFront, we created a great service, which provides high availability and video speed processing even during peak loads.
Now, our team is adding new features to the platform that will include sound-to-text conversion search through Amazon Transcribe.

The key features

  1. Information search across video content
  2. Courses’ search using numerous filters and categories
  3. Data synchronization across all user devices
  4. The ability to change video quality
  5. Multifunctional video player
  6. Video autoplay
  7. Personalized content recommendations
  8. Video uploading
  9. Video saving to “favourites”
  10. Video watch history
  11. Likes and commenting
  12. Integration with a popular Disqus platform
Using Disqus platform, the registered users have the ability to make posts with links, start discussions, and create reviews for courses.

Result

Our custom application development company created an e-learning platform with various cool features. Achieving the system resilience and ease of maintenance, the customer not only ensured high availability during peak loads but also optimized infrastructure costs.
Thanks to thoughtful UX and rich functionality, the client provided an amazing user experience. As of today, the app has over 30,000 users per month and this number is quickly growing.
Furthermore, today our engineers are making the second product version that will provide a neural network for converting sound to text for full-text information search.

More case studies you may like

We’d love to work with you

Drop us a line about your idea, project, or challenge.

We’d like to discuss how we can help you.

We’ll add your contact details provided in this form to our CRM to contact you regarding the request. For more information, please visit our Privacy policy.