Advice me, suggest me the right approach before we start a module to publish results


We’ve been using Drupal for our CMS requirements happily with so many readily available modules and sometimes with a little customization. This time we are going to use it for publishing competitive exams results.

We’ve an offline application and we want to port the same functionality using Drupal on our website. We are not going to remove the offline application, it will continue functioning as it is. I’m here to get the suggestion and advice from the community so that I can implement systematically.

Offline Application:

We conduct national level competitive exams in several schools, several thousand students appear in the exam. This is not an online exam and it is not going to be online for the next 5 years, the simple reason is that many schools are in the remote areas where the Internet connection is not available or speed is not good.

We call such exam an event, we schedule the event, inform the schools and send them the registration forms. We receive the filled forms from the schools and update our database, we now know how many schools and how many students are appearing in an event.

Exam is conducted on the scheduled date, the answer sheet is an OMR sheet, we process them and get the data (answer by the student) in our database. This offline application is on VB and SQL Server. It is a highly normalized database, we maintain several master tables like schools, students etc.

We process this data, print the result and send it to the schools so that they can give it to their students who attempted.

What should be on our website (Drupal CMS)
Now we want that students / schools can view their results online. For this we want to build a module on our website which is in Drupal 6.

We can export all the tables as CSVs from our offline application, we can then use the similar structure in our MySQL database (drupal db) and import the CSVs.

Now this is what we expect from our Drupal module:

  1. Master data / tables will always be in sync with offline by importing CSVs e.g. Schools, Students, Subjects, Topics etc.
  2. All the events and related data must be treated as an independent object- Event 1, Event n etc.
  3. An event object should list the schools and students participated in the event.
  4. Admin can delete an event, deleting event will not delete anything from the master tables but the event specific data.
  5. Students can register, login and enter their roll no. to check the result.
  6. Students can submit a spelling mistake correction request.
  7. Schools can download the result for the given school code in a PDF format.
  8. School and student can download the Admit Card (PDF) by submitting the alloted roll no.

There are so many things but I just want a head start, I hope I could explain the requirement properly.

Please advice.