We took part in building an e-learning platform aimed to enhance studying experience for students through the integration of interactive tools in the learning process.
The application consists of several large parts:
- publicly available main web-application running on the cloud;
- application for schools accessible from their internal networks;
- mobile application integrated with main and school's apps.
Our role was to build the main web app and the application for schools.
The objective of the project is to provide rich learning experience and engage students into active participation. It involves the development of interactive teaching tools so that students can easily join digital classrooms and collaborate. A special focus is given to multimedia content, its distribution, synchronization and management.
Here is a brief overview of the implemented functionality to give a general idea of the project scope:
- managing necessary user roles: students, teachers, administrators, etc.;
- teacher's and student's dashboards with all needed info, e.g. classes they are involved in, updates and reminders;
- associating teachers and students to the groups;
- courses and lessons creation and management;
- live streaming of the courses to the students;
- video editor and video player;
- comments to learning contents from students and teachers;
- incorporation of interactive whiteboards and other external devices in the learning process;
- content library with handy options for uploading, creating, editing, sharing and organizing contents;
- creating (for teachers), answering (for students) test assignments and related tracking functionality;
- notifications and announcements for proper arranging the learning flow;
- various statistics, reporting and progress monitoring tools.
The main and school-servicing applications are written in Ruby on Rails. Additionally, the system is integrated with some services based on different technology platforms:
- OpenFire (jabber-server in Java),
- TAO (editor and distributor of tests in PHP),
- LDAP (authentication system),
- third-party service for transmitting data via UDP-protocol in Java.
In this project we have successfully solved a bunch of interesting and challenging tasks. Some of them:
- Video files processing: crop, join on the server and dispatch of necessary requests from the frontend;
- Operations with PDF files: extraction of pages on the server and dispatch of necessary requests from the frontend;
- PDF.js: using this platform as pdf previewer and modifications for a deeper integration with the application;
- Implementation of several annotators to allow users to annotate different content types - PDF files, videos and images;
- Setting our own Google-drive as a storage for information units in the application;
- Enabling LTI-protocol support to establish connection with TAO service;
- Development of mechanism for distributing lessons, created in the main application, to provide the possibility to use these lessons in mobile app in offline mode;
- Implementing plug-ins for tinyMCE editor and annotator.js in order to make them work correctly and consistently in symbiosis with our application.
The design of the entire web application was developed in accordance with the best practices of the Material Design.
Due to the comprehensive nature of the project, the team roster was changing during the development time. Initially, the team consisted of Dmitriy Stepanenko, Evgeniy Maslov, Bogdan Gontarenko and Aleksandra Lichko. Later on, Tatyana Ryzhkova has replaced Aleksandra and took responsibility for the project management side. Then Yurii Mochalov joined the project in order to speed up the front-end development. Besides, an active participation in the project took Igor Shepel, Roman Vasyutin, Kirill Machuhin, Aleksey Lavrukhin and Vadim Eremichev. Evgeniy Oleynikov helped with deploying the application to servers.
The released version of the application is planned to be launched in several schools in order to test it and get the real users feedback. We hope it becomes a popular and very useful educational resource.