Turn PDF of Questions into interactive CBT (Computer Based Test)
Features of this project/website:
- Turn PDF of Questions into interactive real exam-like CBT and view detailed analysis of your test.
- 100% free with no ads, no login, no email/phone number needed.
You just need a PDF with questions and a modern browser (any version from 2023 or later is recommended)
Recommended to use Firefox or Chromium based browsers (chrome, brave, ms edge etc). - None of your data is sent to server. All Data is stored and accessed from your own storage (using browser's IndexedDB API).
The use of server is to only send the webpage to your browser via internet.
You are free to use fully offline version by following the instructions on project's Github Repo .
Though it is recommended to use the website version as it is always up-to-date with any updates/features. - Test is auto-saved, so you continue where you left off if your test was interrupted (like due to electricity cut, browser closed etc)
You can follow these steps on how to use this project/website:
1. Crop Questions from PDF
Use the PDF Cropper to upload your PDF containing questions and mark each question area along with its details like subject name, section name, and question type (MCQ, MSQ, NAT) etc.
You can choose between Line mode and Box mode for cropping:
- Line mode is ideal if your PDF has questions in a consistent layout. It helps reduce repetitive work.
- Box mode works like cropping an image — simply draw a box around the question to crop it.
You can also watch this demo video on how to use it: 📺 PDF Cropper Demo Video
After cropping, click on Generate Output to download the cropper data. You can choose to:
- Download a JSON file containing only the cropper data.
- Download a ZIP file that includes both the original PDF and the JSON cropper data.
This data is essential for the Test Interface to display and manage the questions accurately.
NOTE:
If your PDF has question that is split across two pages, you can merge two cropped images into a single question as mentioned below (here's a video: 📺Merge cropped images into one question ):
When two or more cropped images have the same question details (subject, section, and question number), they are treated as part of the same question.
Basically, crop the half part of the question that appears on the current page as usual.
Then go to the next page and make sure to use the same question number (you'll need to manually decrease it by 1, because it auto-increments after every crop).
Example:
Say the current question number is 3.
You crop the first half on the current page — the question number will be auto-incremented to 4.
Now go to the next page and set the question number back to 3, then crop the second half.
Both images will now be grouped as one question since they share the same subject, section, and question number.
You might be wondering — the PDF cropper only defines the questions and their cropped images. But what about the correct answers for evaluation?
That's where the Generate Answer Key page comes in. It lets you enter the correct answers, which are later used to evaluate your test.
2. Generate Answer Key Data and then take the Test or vice versa
Now, thanks to the flexibility of pdf2cbt, you've got two paths you can choose:
- Generate the answer key data before taking the test (here's a video if needed: 📺Generate Answer key before taking the test ):
- For this path, you will require the file downloaded from PDF Cropper .
- Go to Generate Answer Key and upload the zip/json file. After this the rest of the steps is common with the path 2 as well, so it is mentioned below.
- Or, take the test first, then generate the answer key later (here's a video if needed: 📺Generate Answer key after taking the test ):
- First take the test, the process for that is mentioned in "Taking the Test" step. After submitting the test you should be on results page. As you have not generated answer key data, page will let you know you need to generate it.
- Go to Generate Answer Key and page will inform you that it has found a test which doesn't have answer key data in it. Click on the test card (the card with details of test with green border) and then click on "Load Selected Test".
These steps are common to both method ( 📺Video of generating answer key data ):
- Now you should be seeing "Sort Sections Order" & "Questions Numbering Order", these two are optional and you can use it if you want, the end result has no effect as they serve just visual use.
- Click on "Start", and you should be on the page's table-like layout.
- Columns are:
Q. Num → number of the question.
Q. Type → The type of the question, i.e. MCQ, MSQ, NAT.
In MCQ & MSQ, the number in the bracket is the total options and hence max options in that question (this is the options you had entered in pdf cropper page).
Input Answer → This is the input area you will be entering correct answers in.
Parsed Answer → This will show the output of answer you have inputted.
“null” implies nothing. - You can now enter the correct answers to the questions, and see the "Parsed Answer" to know how it is interpreted.
You can use a, b, c, d... for mcq/msq or you can also use 1, 2, 3, 4... to denote a, b, c, d... so that you can navigate the process via just the numpad.
You can press Arrow Up to move to the row above, and Arrow down or enter key to move to next row.
Only when all answers are valid you can move to next section, keep going till the end and click on "Generate Answer Key Data" to download the file.
NOTE:
In NAT Type, you can also define a range of numbers or multiple numbers as correct answer in the Input Answer part of generate answer key page.
- Defining Range of Correct Answers: You can define this by using to between two numbers.
For Example, 1to5 or 1 to 5 (both does the same thing ), this will mean correct answer is greater or equal to 1 AND less than or equal to 5. SO if your answer in test is say 3, then it will be correct answer as it is in the range. - Defining multiple numbers as Correct Answers: You can define this by using , (i.e. comma) between numbers.
For Example, 1,-1,5 or 1, -1, 5 (both does the same thing, space doesn't matter ), this will mean correct answer is 1 or -1 or 5. So if your answer in test is either of these, then it will be correct answer.
Althrough you will rarely require it but "dropped" & "bonus" are two special keywords you can use as the answer as well
There is too much confusion on what dropped/bonus really means, hence the project has its own definition, use the one you want based on these condition:
- DROPPED: Correct marks of that question is given irrespective of whether you have answered the question or not.
- BONUS: Correct marks of that question is given only if you have answered the question.
3. Take the Test
Now here comes the real star of the project, CBT Interface . (here's a video of this: 📺Video of CBT Interface ):
- Test Interface requires the zip file (or pdf & json file) of PDF Cropper.
If you had generated answer key data, and chose "zip" or "json (merged)" as the format, then you can upload this file instead. As the zip or json (merged) is nothing but cropper data with answer key data also in it - Do set the settings like time duration of test, test name etc under the "Test Settings" section.
- Load that zip file (or pdf & json file) in the test interface.
- After loading file(s), you will have Sort Sections Order & Questions Numbering Order:
- Sort Sections Order: As it speaks for itself, it allows you to sort the order of how the sections appear. This is useful if your pdf didn't have subject/sections in the order of how it is given in the real exam. For Example, JEE mains has Maths, Physics, Chemistry as the order of subjects, so if your pdf had subjects in PCM order then you can change it to MPC order.
- Questions Numbering Order: Now if you changed the order of sections or you may have questions in your pdf which has a different numbering order as it is in the real exam. So for example, your pdf has PCM where each has numbering like 1-25, 1-25, 1-25, now JEE Mains has numbering order of 1-75, yes they are continuing the numbering.
Using this, you can redefine how the question numbers appear as follows:- Original: Just uses the original numbering as it is in the uploaded file (cropper data).
- Cumulative: Numbering is started with 1, and keeps continuing across sections.
For Example: If you have 75 questions, then numbering will start with 1 and end with 75 (1-75). This is what JEE mains uses. - Section-wise: Numbering resets to 1 in each section. For Example: If you have 3 sections having 25 questions each, then numbering of questions in each section will be 1-25, 1-25, 1-25.
- (OPTIONAL) You can optionally customize the UI of Test Interface (here's a video on this 📺 Customize UI of CBT Interface ).
This is especially helpful if you are phone, as you can make space for question panel by resizing other parts of UI.
If you are on phone, take a look at "Customize UI" -> "Main Layout" -> "Main Layout Size", you can change the value to resize the whole layout to fit to your screen. - After that click on Prepare Test, this will start preparing question images from the pdf and cropper data. After it is done, you can start the test.
- You can submit the test (if you chose submit btn to be enabled), or the test will automatically be submitted when test time is up.
- After Test is submitted you should be on the CBT Results page.
- Now depending on your path:
- If answer key data is in the file you uploaded on Test Interface, then results will be generated and shown to you right away!
- If answer key data is not in the file, then results page will let you know that you need answer key data to evaluate your test. You can follow what it says, and generate the answer key data. Once you have the answer key data, you can come back to results page to load the data and results will be generated for your test!
- If answer key data is in the file you uploaded on Test Interface, then results will be generated and shown to you right away!
NOTE:
The Profile details part of the Test Interface (the one at top-right corner with profile pic and username) also acts as a secret button, which can also be accessed while you are in the test:
- Click/Tap on it: Will toggle fullscreen mode.
- Long Click/Tap: Will open up UI Settings which you use to change question images size if they appear big or small to you.
4. See Results
Just straight up take a look at Test Results page.
These are the sections the results page has and their features:
- Test Results: Shows results for your currently selected test. This further has:
- Summary: Contains summaries of your test, and interactive charts.
- Detailed: You can view detailed result on your test, this part has questions and summaries in tabular format which you can be filtered, sorted by time spent, colored by result (correct, incorrect, etc) or question status (answered, not answered, etc)
- My Tests: Shows all your tests, you can view them again whenever you want. You can also export and import your tests if you need a backup.