This website provides complete tracking to companies who are providing Language skills related courses to their employees. This site enables Admin and teachers to use the site for monitoring different classes, groups, scoring system, company & employee registration etc. Master admin has the complete control , wherein admin and teachers added by him are restricted on some levels to edit or modify the data. This site helps admin to track on the progress of students for different courses and tract student's progress across 4 vertices - reading, Writing, Listening and Speaking. Teachers are moreover updating the performance feedback of the students along with attendance management. After completion of the course reports get generated of an individual student showing up their progress throughout the course across the aforesaid vertices in the form of PDF graphs .

Why Drupal was chosen: 

Drupal was suggested and eventually chosen because of it's awesome CMS capabilities and wonderful developer APIs which we made full use of. The platform choice was left on to us by the client and we educated them of not only the present benefits of using Drupal, but also keeping the extendibility into consideration. Eventually, the client's team was very happy to get a final demo of the backend and the site management system we could provide them using Drupal.

Describe the project (goals, requirements and outcome): 

Goals

The goal of the project was to create a platform for companies to register their employees for various language related classes and then track their progress. The client used to organise various classes and used to keep track of all these through pen and paper and it was a very cumbersome process, which they wished to being online. It would also give better access delegation for the teachers and they could easily give feedbacks by logging in to the system and then accessing various groups. Overall a fun project to work on for us.

Requirements

Companies & Teachers registration & main overall flow

The user groups that would mainly use the site could be broadly divided into - Companies, Teachers, Students and Admins.
Admin accounts were not registrable. The super admin from the backend would register other site admins. Also, since the Students did not need to do anything, so they din't need a login. Hence only two roles needed to register - Companies & Teachers. The main registration flow was that company would first register. Then they would create a few groups. Then they would add some teachers to the group. The teachers would then login and add crate and add some students to the groups. Once the group would be created, the classes would be auto generated or can be manually created. After a class was complete, the teachers would be able to mark students attendance and add a summary to each class. At the end a performance chart would be generated.

Groups & Classes mechanism

Groups are created by company. Once a group is created, it would have two important parameters. Start Date and Days of Classes. Based on this information, classes would be pre generated in cron. Students would be added for each group and a teacher. The students from the group would be pre copied into the class, but if a certain student needed be removed from a particular class of a group, then teacher could go in and do that.

Teacher Reminder Mechanism

If a teacher has not completed his markings for a particular after 3 days a class is over, a reminder email is sent out to him, with the link to mark the attendance and student ratings. This email continues to be sent, till the teacher has actually gone in and added the data.

Student Performance Reports

There are 2 reports that needed to be generated. One report would be per company and based on various filters which would show all classes, students, attendance, class summary and students ratings. We gave them a filtering interface where they can filter based on date and various criteria and then generate the PDF report. Another major component was the students performance report. Each student would be assigned score initially over a scale of 0 - 12 across 4 vertices - Reading, Writing, Speaking and Listening. After each class, the student will be consistently marked across these 4 vertices by the teacher. And at any point of time, these vertices were mapped to in a graph showing students ability progression across these 4 vertices. The graph was implemented using highcharts.

Outcome

The project was an outright success. We implemented all the features exactly as required according to the spec, and we, from time to time, suggested improvements and suggestions about which the client was very happy. The students progression graph, which was very important to the client also turned out to be perfect. Overall a very good project pulled off perfectly.

Technical specifications

Drupal version: 
Drupal 7.x
Why these modules/theme/distribution were chosen: 

This project mostly used the core APIs and custom code to achieve the desired functionalities. The Graph had extensive use of Highcharts API. The fields and content types were created using the core field types and some contribs providing additional field types. The site used a lot of Queue operations and Queue API module was used for that.

Organizations involved: 
Sectors: 
Education