OpenQP generates Question Papers by selecting questions (based on some pre-defined algorithm)from a question bank. The questions are stored as text (with embedded LaTex commands for equations, images etc.) in a postgres RDBMS system, that can be accessed from remote computers. Some of the features of the system are:
Capable of handling large number of courses.
Renders mathematical equations properly (uses LaTex).
Support for multiple languages. English, Hindi, Sanskrit, Malayalam, Kannada, Arabic and Urdu are currently implemented.
Editing a course to add/remove questions is done using GUI program remotely accessing the database. Equations etc. are entered in LaTex format and PDF is shown for verification. For most of the questions, it is just plain text.
A new course may be created by adding the details like Course code, course name, subject etc. It is easier to add a new course by selecting an existing course to fill all the input fields. Create a new one after modifying the required fields. Course Code entered by the used is stored in the database after prefixing the Syllabus Year and Institution information.
programs used
Features:
The steps are
If you include figures by using the ‘\includegraphics’ command, the image file should be in the same directory.
There is another Editor that imports the entire Course, make changes and export it back. Exporting wipes out the old contents. Used only for populating new Course with dummy questions. Qeditor.py.
A GUI program is available for generating the question papers.
The following details, to appear on the generated question paper are added:
A database and a user to own it are areated. Two users named ‘dummy’ and ‘reader’ are are created. These steps are carried out by the ‘psql’ client program, after logging into the server machine.
After completing these steps the program
initQbank.py is ran to initialize the database. This could be done from anywhere.
Complete Installation Instructions given in the file install.txt
The backbone of the system is a Postgres RDBMS. A table named coursedetails stores the information about all the available courses. Each record of this table represents a course. Each Course has a Table to store the questions and related information. Name of the table is same as the course code. There is a corresponding ‘user’for every course, having access rights to it.
Name | Data type | Description |
---|---|---|
code | varchar | Coursecode. |
name | varchar | Course name |
subject | varchar | Subject |
degree | varchar | Degree |
syllabusYear | varchar | Syllabus year |
semester | varchar | semester (First to Eighth) |
texLanguage | varchar | typesetting language |
qpmodel | varchar | Question paper moder 50 marks, 70 marks etc. |
duration | varchar | Duration of the Exam |
nmodules | varchar | Number of Modules(4 to 8), to divide the syllabus |
Name | Data type | Description |
---|---|---|
qtext | varchar | Question in LaTex |
atext | varchar | Answer etc. in LaTex |
author | varchar | Author information |
modnum | int | Module Number (Course material divided, upto 8 Modules) |
qtype | char(1) | Question Type A: Short, B: medium, C: essay type |
qnum | int | Question number, starts from 1, (no gaps) |
relations | varchar | Specify other questions having overlap with this one |
mark | int | Mark |
status | varchar | Remember, Understand, Apply, Analyze, from Expert, inactive (last two are for internal use) |
figname | varchar | name of the figure, if any |
figure | bytea | Figure data, .jpg or .png file |
A web based intetrface also ia available. Sample databases can be accessed from the following links. They contain only dummy data. Password is currently set to rea123.
The following files should be kept inside the Web Server directory.
index.php. Front page, gives Subject and Semester wise filters.
second.php. Select the required course from a pulldown menu, add the required parameters and calls the question paper generating program qgen.php
qgen.php. Generates the paper by calling the Python program and provides links to download the PDF outputs.
webqpgen.py. Python code that generates the Question paper and Answer keys. Python code generates the LaTex files and calls ‘xelatex’ to generate the PDF output.
qpmodule.py Should be kept in the same directory.
db.txt : A text containing the database name, should be in the directory where Qpgen.py is kept.