OpenQP generates Question Papers by selecting questions from a collection of questions stored in a Database. The questions are stored as text (with embedded LaTex commands for equations, images etc.) in a postgres RDBMS, 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, Tamil, Kannada, Arabic and Urdu are currently implemented.
Click Here to generate dummy Question Papers
The programs are available as a Debian package or Python source code. After installing the DEB package all the programs will appear in the ‘Education’ menu, or search them by typing QB.
GUI programs are available for
A GUI program is provided for Creating/Editing/Deleting Courses. The following details need to be provided while creating a new course.
To view a screenshot of the GUI Click Here.
There are two methods available for populating a course with questions.
The system uses LaTex for typesetting and it is necessary to make sure that the entered text does not contain any special characters that are interpreted as LaTex commands. For example characters like &, %, _ etc. should be entered as \&, \% and _. Make sure that you View the questions in the PDF format before uploading.
To view a screenshot of the GUI Click Here
You may list the contents of the Remote Course, either in the order they are entered or sorted by the Module number and Question type.
The Excel file must be prepared carefully, the points to note are:
To view a screenshot of the GUI Click Here.
The steps to be followed are:
If you include figures by using the ‘\includegraphics’ command, the image file should be in the same directory.
A GUI program is available for generating the question papers. The following details, to appear on the generated question paper are added:
To view a screenshot of the GUI Click Here
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.
To create a new Course, a new record is added to the table named coursedetails. Corresponding Data table and user are created. The editor/upload programs populate questions to the data table. Qoestion paper generator program selects questions from the data table to generate question papers.
Name | Type | Description |
---|---|---|
code | varchar | Course code |
syllabusYear | varchar | Course starting year |
inst | varchar | Institution type, university dept UD / Affiliated college AC |
name | varchar | Course Name |
faculty | varchar | Faculty name |
degree | varchar | Degree name |
semester | varchar | Semester , first to eighth |
texlanguage | varchar | typestting language |
qpmodel | varchar | Question paper model |
duration | varchar | Exam duration |
nmodules | varchar | Number of modules in the course |
code2 | varchar | Second course code |
code3 | varchar | Third course code |
Name | Type | Description |
---|---|---|
modnum | int | Module number, maximum 8 |
unitnum | varchar | Unit number/group number, to mark related questions |
qtype | char(1) | Question type. A,B or C |
qnum | int | Question number, assigned by the software |
mark | int | mark |
level | varchar | Bloom’s level |
outcome | varchar | Outcome OC1 to OC7 |
author | varchar | Author information |
qtext | varchar | Question text, can contain LaTex commands |
atext | varchar | Answer hint, can contain LaTex commands |
figname | varchar | Filename of an included figure |
figure | bytea | Stored image |
A database and a user to own it are areated (replace mydbname below with your choice). Also two users named ‘dummy’ and ‘reader’ are created. These steps are carried out by the ‘psql’ client program, after logging into the server machine. The commands are shown below for pastegresql version 16 or later (ubunto 24.04).
$ sudo - su postgres $ psql postgres=# create role mydbname with createrole login password '******'; postgres=# create database mydbname owner mydbname; postgres=# create user dummy with password 'dum123'; postgres=# create user reader with password '******'; postgres=# \q
The postgres RDBMS should be configured for remote login, using TCP/IP protocol. The two files mentioned below need to be edited to enable TCP/IP connectivity.
The file /etc/postgresql/16/main/pg_hba.conf should have the following lines host mydbname all 127.0.0.1/32 password host mydbname all 0.0.0.0/0 password Modify /etc/postgresql/12/main/postgresql.conf , to have the line listen_addresses = '*' # what IP address(es) to listen on; Restart the database server using $ sudo systemctl restart postgresql After completing these steps the program, run the program $ python3 initQbank.py hostname mydbname It will ask for the database password.
After completing these steps, the system can be accessed using any of the GUI programs provided.
This software is distributed under GNU General Public License version 3
Authors :