Jump to content

IQPS

From Metakgp Wiki
IQPS
Link https://qp.metakgp.org
Github https://github.com/metakgp/iqps
Maintainer(s) Harsh Khandeparkar, Dipam Sen

IQPS (Intelligent Question Paper Search) is a tool for searching and uploading previous year question papers. It was inspired by and is the successor of MFQP.

Paper Upload

Question papers for End Semester Exams, Mid Semester Exams, Class Tests and Supplementary Exams can be uploaded by users to the website. The following steps are to be followed:

  1. Go to https://qp.metakgp.org/upload
  2. Upload your question paper PDFs (at most 10).
  3. For each paper uploaded, IQPS will try to guess the details of the paper (Course Code, Semester, Exam Type, etc.). Click on the Edit (pencil) icon next to each paper, and check all the details, filling any missing data.
  4. Once you ensure that all details are correct, click on "Upload". This adds the papers to IQPS. Once admins approve your paper, others can find them on IQPS and benefit from them!

Year Guidelines: The "Year" field is to be set to the year in which the exam was held. For example: An autumn semester exam for the session 2024-25 should have the year set to 2024, whereas a spring semester exam for the same session will have year 2025.

Admins

Not to be confused with: Community Admin

An IQPS admin is someone who has access to the admin dashboard, which can be used to approve, edit or delete papers. The project maintainer must be an admin.

For onboarding new admins:

  1. A new admin (who is not a member of the GitHub organisation) can be added by updating the GH_ADMIN_USERNAMES environment variable, which is a comma separated list of usernames of GitHub accounts of the admins.
  2. A member of the GitHub organisation can be made an admin by inviting them to the "IQPS Admins" team on GitHub.
IQPS admin dashboard paper editing UI
A screenshot of the UI for editing and approving papers on the admin dashboard of IQPS.

Paper Approval

Papers uploaded by users move to an review stage, where admins need to approve the paper before it is searchable publicly. To approve papers:

  1. Go to the admin dashboard: https://qp.metakgp.org/admin (Only accessible to admins)
  2. List of unapproved papers are shown. To approve a paper, click on the Edit (pencil) icon next to the paper. A edit view for the paper opens.
    1. On the left, there is a preview of the paper PDF. It can be expanded to take up the full screen by clicking on the Expand icon.
    2. In the center, there are options to edit details of the paper, and its approval status (Approved/Unapproved).
    3. On the right, there is a listing of "Similar Papers". A paper is similar to another paper if they share the same course code, year, semester and exam type. In the listing, similar papers which are approved are highlighted green.
  3. Ensure all the details of the paper are correctly filled. Choose "Approved" for the approve status, and click on "Update Details" to approve the paper.

'Note' field

In the edit options, a 'note' field exists which can be used to indicate additional information about the paper. Papers for Supplementary exams should have the note field set to "Supplementary". Other uses of the field include mentioning tests having conducted in multiple slots, or different papers conducted for different groups (e.g. different papers for first year and second year).

Similar Papers

When approving a newly uploaded paper, the listing of similar papers shows other existing PDFs that are potentially for the same question paper. This is helpful in preventing accidentally having two PDFs for the same question paper. IQPS finds similar papers by looking for papers with the same Course Code, Year, Semester and Exam Type as the paper being edited. Similar papers which are approved will be highlighted in green, while unapproved papers will not be highlighted.

Before looking at the similar papers, ensure that the paper being approved has all the correct metadata, otherwise the similar papers listed may be irrelevant.

Note that the papers shown under the listing aren't guaranteed to be the same paper as the one being edited, due to many reasons. Two papers being similar can mean any of the following: (In what follows, 'original paper' refers to the paper being edited / approved, and 'similar paper' refers to one of the papers listed under the listing)

  1. The original paper and similar paper are for the same question paper.
  2. The original paper is mislabelled (wrong metadata)
  3. The similar paper is mislabelled (wrong metadata)
  4. The original paper and the similar paper differ in the "Note" field (e.g. the similar paper is for a main exam whereas the original paper is for a supplementary exam, or vice versa). In this case no admin decision is required since everything is correctly labelled and no duplicate paper exists.

Thus, it is recommended to compare the contents of the PDFs of the original and similar paper(s) to identify the reason.

Managing duplicated papers

In case the similar paper is for the same question paper (Case 1), the admin has to choose which version to keep. Here are some general guidelines to determine which version to choose in case multiple PDFs exist.

  1. All questions and relevant information must be legible. The scan of the PDF must be of good quality.
  2. Generally, scanned PDFs from the library question paper archive are of higher quality (and thus preferred) than those uploaded by users, but this is not always the case.
  3. A PDF containing both questions and answers/solutions for the paper is preferred over one having only questions (since it is more helpful for the user).
  4. An original typeset PDF of the question paper is preferred over a scanned PDF of the paper.

In other cases where some paper is mislabelled, the admin must fix the metadata for that paper.

Replacing papers

Each similar paper listed on the right has a checkbox next to them which can be used to replace papers with the one being approved. While approving a paper, check the boxes for all those papers which needs to be replaced. Then, approve the paper (click on "Update Details"). This will approve the paper, and delete the papers which were selected for replacement.

Architecture

The main web-app has a Rust backend and a React frontend. It uses a PostgreSQL database as its primary data store. The backend and the database is hosted on the server. The frontend is hosted on Vercel.

Another service, called the 'crawler' is a Go script which crawls and downloads papers from the library question papers archive for a given year and semester, and spits out an archive with the PDFs and the metadata. Correspondingly, there is a Rust script 'import-papers', which can import the papers from the archive into the database.

History