In early 2016 we received the task of developing mentor.me, a live video tuition platform which connects freelance mentors with interested students. We jumped at the chance to work on a different type of project and to play around with cutting-edge technologies.
mentor.me is a platform which lets presenters, called mentors, to reach out and connect with prospective students, and give lectures in various fields, like business or life coaching. Mentors start a lecture, which can be open, or invitation based. Invitation based lectures can also be separated into group lectures or private lessons.
Lectures are in-fact live audio-video streams, accompanied by a chat service where mentors can text students or share training materials. Video-streams can be either unidirectional, where only students see the lecturer, or bidirectional, where mentors can also see their students.
Students can attend these presentation and pay with credits for every minute they spend listening to a lecture. Teachers earn credits for each lecture and can cash in their credits each week. There are different going rates for each type of lecture. Private lectures earn more credits per student than group lectures, and considerably more than open lectures.
We came up with an architecture that consists of three elements: the client application, which is used by the mentors and students, a backend which provides an API for communication with the database layer and finally a stream server for the video feeds.
The client is an Angular.js driven application that receives audio and video input and forwards the data packages using WebRTC towards the stream server, which in part can be accessed by the other clients to read this data.
For storing data, the client makes API calls, to which the API server responds by emitting a socket event, telling the client to make a second call for accessing the updated information. The API is built using PHP and Lumen as a framework.
Two separate client instances communicate in a similar fashion, using websockets. To ease our work with websockets we used the socket.io framework.
Being pioneers in the domain of scuba diving education, IDEA quickly realised the potential of mixing in technology with their well-established teaching practices, and put us in charge of developing their e-teaching platform.Read on
DAI-TECH, the fast-growing company behind the nJoy brand, quickly outgrew their existing software infrastructure and needed a custom-built integrated solution. They employed us to deliver a product lifecycle management tool, created from the ground up to fit their particular needs.Read on