Notesmaster is a sophisticated project with philanthropic goals to provide free education for children and for those who can’t afford attending schools or just desire to learn online. It contributes greatly to the Global Education Network. Secondary level students and teachers from different countries around the world are engaged in the educational process: they can choose a number of courses, follow their syllabus, and establish productive exchange of materials among each other. The Notesmaster project is flexible enough to incorporate numerous e-learning methodologies into the network due to the partnership programs.
The DDI Development team has been working with Notesmaster since August 2011, constantly providing technical enhancements and maintenance.
How did it start?
When we saw the product for the first time it was a great example of poor management. Predecessor developers either hadn’t fully understood what they had been asked to do or hadn’t been really willing to meet the requirements.
The Notesmaster services covered the Caribbean students only. The first version was written on the ancient Symfony 1.0 framework and it contained a number of scattered modules that just wouldn’t work organically together. It also seemed like the manner of picking technologies was to avoid mainstream solutions. They used the Propel ORM instead of Doctrine and Prototype instead of jQuery. Our first task wasn’t of a great scope: we had to to apply TinyMCE content editor for some of the front-forms. And here is when it started to roll!
Tasks and solutions
The DDI Development principles imply building a long-term relationships with a client. Thus, we would never hesitate to perform some minor task at the beginning in order to create a solid basis for trust. Notesmaster is one of those projects that start with something insignificant and turn out to be a several-yearlong experience. While applying the content editor we expressed some ideas concerning the code optimization. The client decided to hire us and put in charge of the project growth. A huge plan of further scaling was composed.
Right from the beginning we have faced two major challenges. The technologies coverage was enormous both for the front and back end. We had to apply lots of third-party applications, including PayPal API, Twiddla API, Cometchat, etc. So it was the time our developers pumped up their skills in multi-technology work, coding and researching new stuff on the run. Another pitfall was to deliver enhancements while the project was already in production. It required high caution and rapid debugging if something went wrong, since there was no way to hide anything from actual users. During that period, we switched to the more stable Symfony 2 framework.
The first version did hit the top among Caribbean students who found the service to be extremely useful, thousands of them applied for the e-learning. That is why scarcely had we finished the first Notesmaster version the second one was requested to be made. The list of the needed improvements ranged from the code optimization to expanding services to cover more regions, not the Caribbean only. It was decided to create a whole network. Expansion to several regional websites required a number of different databases to be used simultaneously. We applied the Django framework in order to build a single interface within the REST API and make convenient use of the databases involved in the project.
The struggle was to optimize the architecture, which suffered some limitations due to a set of custom features: numerous complicated SQL queries bounded the models and the ORM use. Currently, the HTTP queries are standard, we have created convenient documentation, some operations are automated, and the new authorisation system with advanced cryptography is applied.
Ongoing maintenance is an obligatory point that enables scaling of any web project. Our specialists work both on refining the product and making the third Notesmaster version. Nowadays, this platform is a Symfony 2 network which combines several websites for different countries, it has its own Django based API, and integration with a set of third-party applications. The frontend is powered by AngularJS, Less and Bootstrap.
The near future
In the future, a brand new design and an even more optimized architecture are going to be implemented. So far tens of thousands of students around the Globe are participating in the educational system offered by Notesmaster. The network will keep expanding; now it covers Botswana, Lesotho, Namibia, Seychelles, Zambia, Ghana, Kenya, Tanzania, and the UK. It really opens the doors to essential knowledge for many of those who would otherwise stay behind.