Checking admin access…
Not redirected automatically? Go to the main Admin Panel to log in first.
Expected columns (any missing column just comes through blank — nothing is required): Question English/Hindi, Option A–D English/Hindi, Correct Answer, Explanation English/Hindi, Subject, Question Type, Year, Source, Source File, Size, Chapter Number, Chapter Name, Part Number, Part Name, Act / Law, Section / Provision, Citation / Code Reference, Case Law, GK Category, GK Topic 1–3 / GK Sub-topic 1–3, PYQ 1–10 Exam Name / PYQ 1–10 Exam Year, Question Tags, Option Tags, Impact/Review Tags (each semicolon-separated), Question Status, Question Quality, Difficulty, Exam Relevance. Optional: Question ID — fill this in only to update an already-saved question by its exact Smart Question ID (never creates a new question, never changes the ID). Leave it blank for a normal new-question import.
Download this template, fill your questions, then upload the Excel file.
Select one chapter file or several at once (e.g. all 22). For files already in the extraction JSON schema (questionEn/questionHi/optionAEn.../correctAnswer/pyq[]/explanationEn/explanationHi/gkTopic1/gkSubTopic1/status per question). Every question is imported — "needs_review" ones are tagged with Question Status "Needs Review" (not skipped), so you can filter to them afterward in Search Master Bank, select them, and download/edit them there.
For a question paper that already has printed MCQs — reads real page images one page at a time (bilingual English/Hindi captured exactly as printed, never translated). Does not generate new questions from a bare Act or notes. Every extracted question is tagged "Needs Review" — an AI transcription still needs a human check before it's trusted. A question whose printed number doesn't match anything in the Answer Key still lands in Needs Review rather than a guessed answer.
Reads the pasted text directly — no PDF/image, no AI vision needed. Same rules as the PDF tool: extracts real MCQs exactly as written, never generates new ones, never guesses a correct answer that isn't explicitly marked in the text. Long pastes are sent in chunks automatically. Every extracted question is tagged "Needs Review".
Generates strictly from a Source's already-chunked, section-labeled text — every labeled chunk is submitted as ONE background batch (Anthropic Message Batches API), 50% cheaper than a live call, never asks you to stay on the page. Unlabeled chunks (title page, preamble) are skipped — nothing to attach a section number to. Every question, its options, and its answer are grounded in that chunk's text alone — see "🧩 View Chunks" in Source Manager to check a source's chunking before generating from it. A batch is checked automatically every 10 minutes in the background (page can be closed) — come back anytime and pull a ready batch's results into Review below.
Loading…
Paste karo, save karo, test bana ke publish karo — ek jagah, teen step.
| ID | Question (English) | Source File | Subject/Chapter or GK | Type | 📖 | 🔗 | Kab Daala | Actions |
|---|
Naye sawaal daalne pe purane test bhi bade ho jayein — sirf jode jaate hain, kabhi hataye ya badle nahi jaate.
Auto-generated from the Smart Question ID registry — every code is assigned automatically the first time a Subject/Chapter/GK Category is used. Nothing here is typed manually. Codes are permanent and never change, even after a rename — use Manage Taxonomy below for current names.
Loading…
Every Excel file uploaded through the Upload & Review tab is preserved here exactly as uploaded — nothing here is ever regenerated or altered. Files are grouped by Subject → Chapter so you can see status without opening each one. 🟨 Needs Attention · 🟦 Unpublished · 🟩 Published.
A separate library of source/reference material (PDF, image, DOCX, or pasted text) used to verify questions against — completely independent from Uploaded Files (which are Excel question imports). Mapping to Subject/Chapter/etc. is optional and can be added anytime.
| Name | Type | Status | Chunks | Mapping | Actions | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
File-wide once: @@ACT/@@YEAR (both English-only — never write "||" on these two lines). Structural, write only when it changes: @@PART/@@CHAPTER/@@HEADING (each English || Hindi, persists until you write it again). Per section: @@SEC N, @@TITLE, then any of @@TEXT/@@SUB/@@CLAUSE/@@SUBCLAUSE/@@ITEM/@@EXPL/@@ILLUS/@@PROV/@@EXCEPTION/@@NOTE, each followed by its own English || Hindi text line(s), then @@END. @@EXCEPTION is for an Act's own numbered "Exception 1"/"Exception 2" clauses (e.g. BSA Sec 94, and it can be given with no number too) — different from @@EXPL, which is unnumbered explanatory text. @@ITEM is a roman-numeral list sitting directly under a @@SUB/@@TEXT, not nested inside any lettered @@CLAUSE. @@NOTE is for a sub-section not yet in force. Hindi not yet confirmed? End that line with [VERIFY] — flagged below, filterable, never silently imported as final. Re-pasting the same Act + Section overwrites it in place — never creates a duplicate. Completely separate from any older Firestore Bare Act source — nothing here is read from or written to that.
Schedule-only (used inside a @@SEC block that IS a Schedule, e.g. @@SEC First Schedule): @@PART PART A || भाग क — a Schedule's own internal Part heading, unrelated to the file-wide @@PART above (that one only applies outside a @@SEC block; used again inside one, @@PART switches meaning to this). @@SUBHEAD/@@SUBHEADING (same tag, either name) — a standalone heading/instruction line, e.g. "(To be filled by the Party)". @@FIELD — a form's blank/checkbox line.
@@TABLE / @@TABLEHEADER / @@TROW / @@TABLEEND — a small table LOCAL to one section (e.g. a compoundable-offences table inside one Section). One @@TABLEHEADER line, then one @@TROW + its one data line per row, then @@TABLEEND. Columns are separated by a single |; the whole line's English and Hindi are separated by || — e.g. @@TABLEHEADER Offence | Compoundable by || अपराध | शमन कर्ता, then @@TROW followed by Causing hurt | The injured person || उपहति कारित करना | उपहत व्यक्ति.
@@ROW / @@ENDROW — a classification-table row (e.g. BNSS First Schedule's 440+ rows: Section/Offence/Punishment/Cognizable/Bailable/Court). Each row is @@FIELD Label || Hindi then its value line, repeated for every column — the FIRST field must be labelled "Section" (its value is what a question's cited Section links back to). Deliberately NEVER shown as one giant list — a question citing that Section shows only its own one-line classification strip, never the whole table. If an already-imported Section has no matching row after you import a batch of these, the import result tells you which ones.
@@FORM / @@ENDFORM — one of a Schedule's numbered forms (e.g. BNSS Second Schedule's 58 notices/warrants/summonses). @@FORM 1 || प्ररूप 1, then that form's own @@TITLE/@@TEXT/@@FIELD lines (FIELD here needs no value line — it's just a blank/signature line), then @@ENDFORM. Forms never auto-link to any question (no Section number of their own) — find one later via "🔍 Find a Form" below.
For splitting one huge Act across several paste-and-import rounds: only the FIRST chunk needs @@ACT — later chunks that start straight at @@SEC use whatever Act name you type here instead. An explicit @@ACT line in the paste always wins over this. Leave blank for a normal, self-contained paste.
| Act | Location | Section | Title | Parts | Verified | Actions | |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Forms (e.g. Second Schedule's numbered notices/warrants/summonses) never auto-link to any question — search by number or name to jump straight to the Schedule that holds it.
Paste one or more @@CASE ... @@END blocks. A case can link several sections at once (@@SECTION 368, 13). Re-pasting the same Citation overwrites that case in place — never creates a duplicate.
| Name | Citation | Court / Year | Act | Sections | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
Soft-deleted Master Question Bank questions — hidden from Search Master Bank and every Test Maker pool, but fully recoverable here. Permanent deletion is only available from this tab and cannot be undone.
| ID | Question (English) | Source/File | Deleted Date | Deleted By | Actions | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Soft-deleted tests — hidden from Manage Tests and every student view, fully recoverable here.
| ID | Name | Questions | Deleted Date | Deleted By | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
Soft-deleted folders (Test Maker's Manage screen) — hidden from the folder tree and every student view, fully recoverable here. Restoring never touches the tests that were inside it — they moved to "No Folder" when the folder was deleted and stay there until manually re-filed.
| ID | Name | Deleted Date | Deleted By | Actions |
|---|---|---|---|---|
| Loading… | ||||
Soft-deleted Bare Act sections — hidden from the Bare Act tab and skipped when linking a question's Act + Section to its text, fully recoverable here. Any question that already had this section's text saved onto it keeps exactly what it had — that copy was fixed at the moment it was linked, it's never a live pointer back to this collection.
| Act | Section | Deleted Date | Deleted By | Actions |
|---|---|---|---|---|
| Loading… | ||||
Act → Section → Enter = Save & Next — no mouse needed for the normal case. Suggested rows (🟡) come pre-filled from the Round-1 auto-tag pass; press Enter to accept, or type over them. "No Act (GK)" skips a row immediately with no other field required.
A whole paper — 100 questions — in one click: pick Subject (or Source), pick its value, fill Exam/Year/Paper, Apply. Only fills whatever fields you actually type — leaving one blank leaves that field untouched. This never marks a row "tagged" by itself (Act/Section still needs the per-row flow, or "No Act (GK)") — it only fills in the shared metadata.
| Question (English) | Act | Section | Year | Exam | Paper | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Fewer than 2 real options in a language, or no valid A–D answer — these are held out of every test/practice pool (questionStatus:"Incomplete") until fixed here. Fill in what's missing and Save — a row only leaves this list once it passes the same bar in both languages.
| Question | Options (English) | Options (Hindi) | Answer | Action |
|---|---|---|---|---|
| Loading… | ||||