Multi-section quiz generator based on GO's 3 volumes of PYQs
- Takes in volume no., section no.(s) & no. of questions. to generate the question paper
- The generated paper๐, simulates GATE q distribution [Uses distribution of questions per section and sub-section].
- Reduces cognitive load on reaching the goal ๐ฉ of finishing all PYQs, gamifies ๐ฎ your attempts.
- It is currently a CLI quiz generator, so it displays the question to attempt, and also tracks attempt timeโ.
- Keeps track of the questions attempted โ , and never repeats a previously attempted question (customisable, explained below).
- You can add/remove the questions from the 'lot' of unattempted questions using the
updateLots
utility. - Implements binary search on pdf to find and display question's page no. [saves seen pages' question nos too ๐]
- Generates reports in log files ๐, having the questions attempted and attempt times, along with other statistics ๐
- Code is flexible and can be changed to suit one's needs. For ex. different pdfs, different exam; just need to change some csv files having meta information
NOTE : The pdf search can also be used to find the question. Beware, as it may lead you straight to the "answer key" page/ "pyq answer"
Install the pypdf2 package, if using the search utility [Optional]
$ pip install PyPDF2
Simply run the pyqTest
in terminal
$ python pyqTest.py
show_pg_no = True
- Only press Enter to goto the next question, and log the time taken
- The log files can be found at
./vol{x}/log/{DATE}_{TIME}.log
This can be further used to write notes related to specific questions, and performing analysis
.
โโโ vol1 # Folder with saved data, logs and the vol1 pdf
| โโโ data # Folder with .dir files (saved page_no searches), and .lot files (the lot of remaining q's to pick from)
| โโโ log # Folder with saved logs having question number attempted, and timing
| โโโ csv # Contains all meta information about sections and sub-sections
| โโโVolume-1.pdf # GO PYQ Volume1 pdf
โโโ vol2 # Folder with saved data, logs and the vol2 pdf
| ... # Same as for vol1
| โโโVolume-2.pdf
โโโ vol3 # Folder with saved data, logs and the vol3 pdf
| ... # Same as for vol1/2
| โโโVolume-3.pdf
โโโ __init__.py # For using read_pdf module
โโโ extract_meta.py # Used to extract index page text (meta_index.txt) and open with word processor (preferably vscode)
โโโ pyqTest.py # The main test setter, uses the meta.csv and sectionx.csv for q distribution
โโโ read_pdf.py # Contains search utility to search for a question's page no. from pdf/ saved dictionary
โโโ regex_test.py # Test file to test out the regex [for question(s) extraction from pdf text]
โโโ updateLots.py # For adding/removing questions that you've attempted and don't want in the paper/ want to add to unattempted questions
โโโ README.md