Self-taught, curious and innovative developer passionate about programming languages and design patterns. I try to find the right balance between learning new things and making the most out of what I already know.
Inspired by platform such as Dokeos and Chamilo, I created a learning management system (LMS) for music teachers. The platform allows the teachers to build their music courses online. Apart from features that we can find on most LMS (user management, document upload, assignment management and so on) the main differentiator of the platform is its ability to let the teachers create online music theory exercises.
As an example, a teacher can create a quiz where the students need to write a given chord starting from a randomly selected starting note. He would have previously chosen the chords, the positions of the chords and the clefs for the quiz. The main challenge for such a feature resides in the fact that there are an infinite number of possible questions and in some context there can technically be an infinite number of correct answers to the same exact question. It makes it impossible to simply store questions and their respective answers to perform the live validation of the student answer. Instead, I created an algorithm that can generate the answer to any musical theory questions listed in the application which is then used to validate the input answer. As an end result, the teachers can create a wide variety of custom exercices.
The application was written in PHP with a javascript frontend and a MySQL database. Since I had no previous coding experience and I wanted to get a deep understanding of the languages I was learning, I voluntarily used as less external librairies and tools as possible, it’s not something that I would do today of course. Raphael.js to create a simple music editor, the Stripe SDK, jQuery and the WebAudioApi are tools that I haven’t been able to ignore.