Q&A In Online EducationE-learning management system
We have Questions and Quizzes functionality in the online learning platform for http://amelearning.com/ This is used by colleges in Canada
This is an E-learning management system with inclusion of features like Quiz assessments and assignments. Here are the prominent features
- Each type of question is having a different method of scoring like:- answers to numerical questions are allowed to have an accepted error. Some of the questions are having a penalty scoring as well
- There were questions based on audio and video media. The video and audio questions used flash players for content.
- The Quizzes are easy to design by selecting the module for which the quiz has to be designed and then using the Question bank for the selection of questions to be used in the quiz
- The system is capable to restart the quiz from the last action in case the quiz was stopped abruptly or the user wants to quit the quiz in between.
- The grade reviewer can view the grade reports on the basis of quizzes present for each module and can also see the average grades for all the quiz attempts.
The Quizzes/Assignments and assessments contain the below types of questions:-
- Multiple choice
- Short Answer
- Third-party question types
We have been working on this project since 2014 and came across so many challenges since then. Few of them are:
Complex Code Architecture – Since this project is an integration of three CMSs in PHP – Moodle, Drupal & WordPress, in which WP & Drupal resides on one server and Moodle on a different server. So managing data across these different CMS had been our first challange.
Huge Data & Frequent DB Calls – During exams, we get so many users online at the same time accessing same/different courses, tutorials, quizzes, etc. that increases processing time and response time, leaving the site responding very slow.
Initially, we were using Moodle version 2.4.3. But as the system was growing, we needed a very strong cache implementation for the system although the DB caching was already there.
Implemented required APIs in different CMSs, and sharing data through that APIs only.
We moved the site Amazon EC2 instances and created instances, for load balancing on server. The DB is placed on Amazon RDS instance; and assets files are been synced and shared using NFS. On regular basis, we check and do database tuning, by changing global parameters. Additionally, we have several cron jobs, running for various different tasks assigned.
We upgraded Moodle 2.4.3 to 3.03 version, and taken benefit of Memcaching. We have one extra small instance as memcached server, that hold the application cache at one place for each different instances. And session cache has been stored locally by the memcached server running on same instance.
Site is comparatively very fast. Client and site users are very happy with their experience.