Legal Om

Admin Panel Login

— or —

🏠 Home

📅 Today

📅 Scheduled Tests

⚡ Quick Actions

🧾 Recent Activity

Nothing yet.

📋 Classic Dashboard View

The detailed stats/tables this page used to open with — everything below still works exactly the same, just tucked away by default.

Students

🔍 Duplicate Accounts

Ek hi phone number pe 2+ account bane hon to yahan dikhega — jaise koi bachcha do baar signup kar de, ya guest se real account alag ban jaaye. Sirf dikhata hai; kuch delete nahi karta — access yahin se ✏️/+15 din se badal sakte ho, baaki khud dekh ke faisla karo. ₹11-paid status Razorpay ke apne captured payment ke contact number se milaya jaata hai, kisi order ke uid se nahi — payment teesre (guest) UID pe bhi ho sakta hai jo dono account mein se kisi mein na dikhe.

⚡ Sabka access sahi karo

Har duplicate number pe (upar ke filter se alag — yahan SABPE chalta hai): jisme sabse zyada attempt (mcqAttempts + mqbAttempts + judiciaryAttempts + mockAttempts milaake) uspe access jaata hai; barabar ho to sabse purana account jeetega. Baaki account bilkul chhue nahi jaate — na access hataya jaata hai, na delete/merge kuch.

Batch Summary

BatchStudentsTests AllottedGivenReviewed
No students yet.

Free Batch Signups (pending — from the public "Enroll for Free Batch" form)

NamePhoneEmailCourseDate
No pending signups.

Access Requests (pending — "already enrolled, no login yet" from join.html's Request Access tab)

NamePhoneClaimed BatchDate
No pending requests.

🗑️ Purani Requests Saaf Karo

Upar ke Free Batch Signups + Access Requests mein jitni bhi pending request hain, sab ek saath hata degi — koi student account nahi banega. (Neeche ki "Purane Students — Batch 2026" list is button se asar mein nahi aati — wo apni alag, persistent list hai.)

📋 Purane Students (Batch 2026) (join.html par "2026" batch chunne walon ki apni list — Pending se Approved tak)

⏳ Pending: 0 ✅ Approved: 0
— Approve/Bulk Approve, dono isi tareekh tak ADPO access denge
NaamNumberEmailStatus
Koi entry nahi.

Help Requests ("Trouble logging in?" box on join.html — someone stuck before they can even reach chat)

NamePhoneMessageDate
No pending help requests.

Create Student Login (Copy Checking Portal)

Give each student a unique ID + password so they can log into the Copy Checking Portal and upload their answer sheets — no phone OTP needed.

Students can only upload to homework created for their batch.

Leave blank/0 if you don't want to track fees for this student.

Auto-fills to the ADPO default when ADPO is checked below — change or clear it if this student needs something different.

Leave all unchecked to keep using Batch above. Check specific ones (e.g. only Judiciary Foundation, or only Paper 4) to target this student more precisely for homework and practice questions.

Bulk Import Students

Paste one student per line as Name, Phone (comma or tab separated) — Student ID and password are auto-generated from the phone number, same as a single Create above. Pick where to put all of them below; you can fine-tune any individual student afterward from the table.

se tak
se tak
NameStudent IDBatchPhoneSignup DateCourse End Date💰 Plan📅 ADPO AccessTestsLast LoginActivity
No data yet — connect Firebase to see live students.

Videos

Add New Video

All Videos

TitleYouTube IDCategoryAdded
No videos yet — add one above.

Answer Evaluations — Judiciary Mains

Pending copies by area — click a box to jump straight to it

Updated a grading instruction (Settings or Knowledge Base)? This re-runs Claude on every submission still "Pending Review" (already-released ones are untouched) — no need to re-upload.

StudentSubjectSubmittedAI ScoreStatus
No submissions yet — waiting for the Cloud Function to grade uploaded PDFs.

Homework

Create a dated assignment with one or more questions — students see it in the Copy Checking Portal with a separate upload slot for each question.

New Homework

All Homework

Sorted by date, then batch, then topic.

DateBatchTopicPaper 4 AreaTitleQuestionsStatus
No homework created yet.

🛈 Portal Help Content

Controls the "i" info button students see on every screen of the ADPO MCQ portal, and the mandatory first-time onboarding walkthrough (shown once per device, as a colourful flashcard-style deck). Each feature is a short hook: a relatable question, then this feature's answer — e.g. "Does the same question keep tripping you up?" → "It lands in Tough Questions on its own — and won't let go till you crack it." Keep both short (one line each). A feature with no question/answer is simply skipped — nothing broken shows to students.

Click "Portal Help" in the sidebar to load.

ℹ️ Dashboard Heading Tooltips

Controls the small "i" next to each heading on the student home dashboard (Today's Focus, Your Performance, etc.) — tap it and this text pops up right under that heading. Plain explanations in simple language, not a Q&A hook like Portal Help above. A heading with no text here falls back to a built-in default, so nothing ever shows empty to students.

Click "Portal Help" in the sidebar to load.

ADPO MCQ

Questions live in Question Bank only — this page just forwards a copy into a course, split by subject pool. Build a test below, then publish it when it's ready for students.

Test my GK
Test my Law
Computer
Case Law

🎯 Single Subject — Send to Course

Pick a Subject, then any Test(s) inside it (all ticked by default — untick to send only specific ones). Sources are Question Bank and True/False Bank (True/False items become 2-option MCQs). The course is filed under the same Subject/Test name automatically — no typing. Time limit auto (45 sec/question, student can adjust before starting) and marking (+3/−1) are automatic too.

📦 Bulk Publish — Multiple Subjects

Tick as many Subjects as you want (or Select All) — each ticked Subject is published as its OWN separate course with everything inside it (every Test, combined), in one click. To mix several subjects together into a single combined/sectioned test instead, use Multi Subject below.

🔀 Multi Subject — Build & Forward Test

For combining/mixing several subjects into one test. Pick one or more source subjects below — a small box next to each one sets exactly how many questions to pull from THAT subject (blank = every available question from it); set a part's overall Question Count and hit 🎲 Auto-fill to split it evenly across the ticked subjects, then hand-tweak any of them before sending. A single unnamed part mixes those subjects into one flat random test; add more parts (each with a name, e.g. "Law" / "GK") to build a sectioned test — students see it as distinct blocks. All copied in, so later edits to the source won't change it.

Saves the destination, title, time limit, marking, and every part's name/count/subjects below — Load brings back the whole setup so you can tweak and reuse it.


⚠️ Repeated / Duplicate Courses

Same subject + title published more than once in this category — the same content likely went out to students twice. Each group is pre-ticked down to "keep the newest one" — adjust before deleting.

GK Subjects

UnitSubjectChapterTime LimitQuestionsStatusMarkingFreeOTP DemoAttemptsOrder
No courses created yet.

🎁 Free & Demo Access

Two ways a visitor gets in without being an enrolled student: Free for Everyone — name + phone, no OTP, no login — and OTP Demo — phone-verified, then full access like a paid student for a set number of days from when they join. Both are per-test toggles set on the MCQ page; this is a focused view of what's currently open, plus a quick way to open a new one.

🌍 Whole ADPO Course — Master Switches

These open EVERY test in the entire ADPO course at once — not one test at a time. Whichever is on shows automatically as a banner on the student join page.

Off
Off

🆓 Free for Everyone

No login, no OTP — anyone can start immediately. A time limit (if set) is a hard cutoff for everyone using it, not per-visitor — it ends for people already in too, the moment it passes.

TestCategoryStatus
Loading…

🎓 OTP Demo

Requires phone verification. Each student who joins gets that many days of full paid-student-like access from THEIR join moment, not a shared countdown — turning this off only stops new signups, students already in keep their remaining days.

TestCategoryDays per Student
Loading…

📊 Test Results

Per-chapter attendance for every ADPO MCQ test — how many students have given each test vs. not, plus average/highest score where marking is on. Read-only: nothing here writes to mcqCourses, mcqAttempts, or students. Note: the data model only records a submitted attempt, not a started-but-abandoned one, so "Not Attempted" means "no submitted attempt on record" — it can't distinguish a student who never opened the test from one who started and gave up partway through.

⚠️ This is the old chapter-wise MCQ engine (mcqCourses/mcqAttempts) — already hidden from students. Master Question Bank tests (Test Maker) have their own separate results, not shown here.

0
Total Students
0
Total Tests
0%
Avg Attendance
GK
Law
UnitSubjectChapter Total StudentsAttemptedNot Attempted Avg ScoreHighest Score
Loading…

🔴 Live Sessions

Every Live Session (Kahoot-style) run in this category — same read-only reporting as the table above, just for mcqLiveSessions instead of mcqCourses. Average score is read straight off each participant's score field, no recomputation.

TitleDateStatusParticipantsAvg Score
Loading…

📊 Mock Test Analytics

Allotment-aware attendance for every compiled Book Maker Mock Test — how many of the students actually allotted to each test have attempted it, vs. not, plus average/highest score where marking is on. Read-only: nothing here writes to mockTests, mockAttempts, students, or any other collection. "Allotted Students" reflects each test's current allottedBatches — a student allotted after this page loaded, or whose batch changed since, is reflected live via this page's own listeners, same as everywhere else in the panel.

0
Total Mock Tests
0
Total Allotted Students
0
Total Attempts
Overall Avg Score
0%
Overall Attendance %
ADPO
Judiciary
Test NameSubject(s)Portal Allotted StudentsAttemptedNot Attempted Attendance %Avg ScoreHighest Score
Loading…

🆕 Updates

Every test created, and every Publish/Allot/Marking/Attempts change made afterward — MCQ (ADPO) and Book Maker — newest first, grouped by date. Updates live from anywhere in the admin.

Feed

Loading…

🔴 Live Session

Kahoot-style: every joined student sees the same question at the same time, with a shared timer.

Create Live Session

:
From Existing Topic
Paste New / Copy Questions

Live Sessions

"Next Question" also auto-fires when the timer runs out — but only while this tab stays open, so keep this page open while running a session.

No live sessions yet.

Book Maker — Subjects

The shared subject registry behind the chapter-notes PDF maker and the Judiciary/ADPO Mock test makers. Deliberately separate from the ADPO MCQ tab above — no data is shared with mcqCourses. A subject tagged for both Judiciary Mock and ADPO Mock shares one backend record (its chapters and questions) across both.

New Subject

A subject can be used in the notes book maker regardless of these — check a portal here only if it should also be pickable when compiling a Mock test.

Bulk Add

One subject per line. A line starting with ## sets the Unit for the subjects that follow it (ADPO Mock only — ignored for Judiciary). Pre-filled below with the official 32-subject / 5-unit MPPSC ADPO Law breakdown — review it, then pick "ADPO Mock" and submit.

All Subjects

NameUsed InUnit (ADPO)QuestionsChapters
No subjects created yet.

Compile & Allot Mock Test

Pulls a random sample of questions from the subjects below into one frozen test. New tests are created not allotted to any batch — use the ADPO/Judiciary toggle buttons in the table below to actually allot one after reviewing it.

Compiled Mock Tests

NamePortalQuestionsAllotted ToAttemptsExport
No mock tests compiled yet.

📦 Question Bank

A master staging repository for pre-written content — deliberately separate from both mcqCourses (ADPO MCQ) and subjects (Book Maker). Nothing here is student-visible. Two levels: Folders are pure organization (folder inside folder, any depth); a Test is a named leaf inside a folder where questions actually live — open one to add questions manually, paste, upload a Word file, or import JSON. Every question is either MCQ (4 options) or True/False, always bilingual (English + Hindi). Every write here is a direct, verbatim save of what's typed or pasted — no AI rewriting of question/option/solution content, ever.

🏛️ Publish to Judiciary

Moved to its own page — see ⚖️ Judiciary → Course Manager in the sidebar. It now works for every configured state, not just MP, and shows exactly which questions are available before you publish.

📊 Bird's Eye Report

Your whole Question Bank at a glance — every folder, nested, with how many files (Tests) and questions live under each, and their status (🟢 Ready · 🔴 Need Fix · 🟣 Live · 🟡 Partially Live). Click any folder name to jump straight there.

🚨 Urgent Test — Paste & Publish Instantly

For when a test needs to go live right now, no review step. Pick (or add) a Subject folder, name the Test, paste questions below, then hit Publish — it's saved into the Question Bank and a course is created and published at the same time, visible to every student in that category immediately. This skips the usual "publish later" step on purpose — only use it when you actually mean right now.

Paste format — one question per block, separated by a blank line, bilingual (English | Hindi): Q: English question text | हिंदी में सवाल A) English option | हिंदी विकल्प B) English option | हिंदी विकल्प C) English option | हिंदी विकल्प D) English option | हिंदी विकल्प Answer: B Tags: tag1, tag2 Difficulty: simple / tough Solution: optional explanation shown after submit

Folders

Pure organization — a folder can hold more folders (any depth) and Tests, never questions directly.

Tests

A Test is where questions actually live — name it, open it, then pick how to add questions (manual, paste, Word upload, or JSON).

📚 Reference Material & Source Check

Upload the real source (a bare act PDF, study material) for this folder — optional. Then check every question here for factual accuracy, not just structure, against your uploaded library, general AI knowledge, or both (pick below). Every result says exactly which one it actually used, so a library-backed verdict is never confused with an unverified one. This only ever classifies — it never changes anything on its own; you decide what to fix.

Reference files live in one shared Library — upload/paste an Act once here and it can be linked to other subjects too (via "🔗 Attach Existing" in their own folder), instead of re-adding the same Act per subject.

Already uploaded/pasted for another subject? Link it here instead of adding it again.




Checked against whatever's picked above ("Check against"). Not added to this folder — paste into "Bulk Import via Paste" inside a Test if you also want to save them.

Import Word Files as Tests

Pick several ClassPlus-format .docx files at once — each one becomes its OWN new Test in this folder, named after the file (extension stripped), pre-filled with that file's questions. No need to create/open a Test by hand first.

📁 Import from Multiple Folders (batch)

For when you have several folders on your computer, one per Subject. Add a row per folder — pick that folder's Subject, choose its .docx files (same as above: each file becomes its own new Test) — then "+ Add Another Folder" for the next one. Nothing uploads until you hit "Upload All" at the very end.

🗂️ Auto-Import a Folder Tree (Law)

Pick one folder on your computer that contains a sub-folder per Act (short names are fine — e.g. "POCSO", "NSA", "MP Rasuka", "DV Act"). Every sub-folder's name is checked against the 32 Law Acts; a confident match auto-creates its Tests straight in that Act's Question Bank folder. No match? It still imports — just into "⏳ Needs Review" under its original folder name, untouched, for you to move into the right Act afterward. Nothing is guessed or renamed — only matched or set aside.

🧠 Smart Upload

Pick any .docx files — no need to organize them into folders first. AI reads each file's questions, suggests a clean name and a Question Bank folder for it (reusing an existing folder when it's a good match, or proposing a new one), and shows you both below to review and edit before anything is created. Nothing is filed until you hit "File All".

⚡ Bulk Actions — All Tests in This Folder

Once several Tests exist in this folder (e.g. one per uploaded chapter file), use these instead of opening each Test and building it one at a time. All three copy from the Question Bank — nothing here is student-visible until you publish/allot it afterward.

(tick both to build into both at once)

More than one test: each is its OWN independent random draw from the whole folder, so the same question can land in more than one of them — this isn't "split the folder into N non-overlapping tests". Auto-named "T1 — {count}Q — {folder name}", "T2 — ...", and so on — no need to type a name.

⚖️ Judiciary — State Configuration

Each state's syllabus (its Subjects list below) is the single source of truth for question availability — a question becomes available to a state the moment its Subject is checked here, with no per-question re-tagging. Question Bank questions still need "🏛️ Also applicable to Judiciary" checked (Add/Edit form) to be eligible at all.

States

"Set Up" writes the exact Prelims master data given — MP's 18 subjects with their real marks (totals 150, no negative marking); CG's 16 subjects and Rajasthan's 22 subjects with marks left blank (not yet provided) and no negative marking. Exam dates stay blank. Safe to click again after editing this file's data — it fully replaces these 3 states' subjects/config each time (not a merge), so re-running always matches whatever's coded here.

🏛️ Judiciary — Course Manager

Available Questions below is always computed fresh from (a question's subject × the selected state's syllabus, set in State Configuration) — nothing here is manually tagged per state. Publishing copies your selection into a real course for that one state; Question Bank itself is never changed except marking the question "sent to Judiciary."

Before Publishing — Question Order

Applied fresh to every student's attempt. The Master Question Bank itself is never shuffled — only what a student sees.

Available Questions

🧠 PSC PYQ AI Machine — All States

One shared GK/GS PYQ database across every state's PSC papers — pick the State once per upload batch, everything else (Units/Topics, duplicate detection) stays shared, so a repeated fact still links up even if it was asked by two different states' exams. Upload exam papers (same Question/Option/Solution .docx format as every other Question Bank import) and let AI sort the real General Knowledge/General Studies questions from the subject-specific ones, then tag each as Static or Current Affairs. Review and correct anything below before saving — nothing is written to the PYQ database until you hit "Save All".

Upload & Classify

The fields below apply to this whole upload batch (one exam paper's set of files, typically). If a paper's exam/stage/paper isn't obvious, leave it as "Needs Review" rather than guessing — a wrong label is worse than a missing one.

Pre-filled by guessing from the filename — check/fix it, don't trust it blindly.

.docx uses the same Question/Option/Solution table as every other Question Bank import (includes the correct answer). .pdf is read page-by-page directly by AI (no separate OCR step) — no answer key assumed, so the Answer shows "Needs Review" until filled in some other way.

🧬 Embeddings — Backfill

Every ✅ Include question saved from now on gets a Voyage embedding automatically (Phase 4B Stage A) — this only covers questions saved BEFORE that existed. Safe to run anytime; only questions still missing an embedding are touched, so re-running costs nothing extra.

🔁 Repetition Intelligence

Finds questions already saved in the PYQ database that are Exact Same (identical once formatting is ignored — detected automatically, no AI needed) or Almost Same (same underlying fact, different wording). Almost Same now searches the WHOLE database via vector similarity, not just a same-batch chunk — Claude is only asked to confirm the few candidates the search actually finds close, so most questions cost nothing but a quick search. Needs an embedding to be searchable — run Backfill Missing Embeddings above first for anything saved before that existed. Nothing is merged or deleted — a confirmed group becomes a Question Family linking the original records. Only questions marked ✅ Include are checked.

🗂️ Units → Topics → Sub-topics

AI proposes a structure from the questions already saved — edit anything below (rename, remove, add) before approving. Once approved, this becomes the fixed list every question gets filed into; approving again after edits replaces it (already-classified questions keep their old labels until you re-classify).

🏷️ Classify Into Structure

Files every ✅ Include question that doesn't have a Unit yet into the approved structure above. Safe to run again later — only unclassified questions are touched.

📖 PYQ Database — Question Kundli

Every question saved so far, with its full record. Click a row to expand its Kundli — GK type, relevance, repeat counts and exams (from Repetition Intelligence), Unit/Topic/Sub-topic, and source.

⚖️ Law PYQ AI Machine — All States

Upload Law/Judiciary Prelims papers (same Question/Option/Solution .docx format as every other Question Bank import, or raw .pdf read page-by-page) and classify every question against the chosen state's REAL syllabus — no Include/Exclude filter, since a Law paper's questions are all Law-relevant already. Add or edit a state's subject list in ⚖️ Judiciary → State Configuration; it's immediately usable here, no code changes needed.

Upload & Classify

.docx includes the correct answer; .pdf shows "Needs Review" for Answer (no answer key assumed).

🧬 Embeddings — Backfill

Same as the PSC PYQ Machine's backfill — only questions saved before embeddings existed for this collection are touched. Safe to run anytime.

🔁 Repetition Intelligence

Exact Same (free, deterministic) plus whole-database Almost Same (vector search, Claude only confirms real candidates) — across ALL states' Law questions together, so a repeated legal point still links up even if asked by two different states' exams. Nothing is merged/deleted.

📖 Law PYQ Database — Question Kundli

🔴 Needs Fix

Every Test that has at least one question preventing it from publishing — missing Hindi or English (question text or any option), an MCQ without exactly 4 options, two identical options, or leftover English in a Hindi field. Nothing here is written anywhere — it's computed fresh every time from what's already in the Question Bank, so it's never stale. Click a Test below, then "Fix →" to jump straight to that question's Edit form.

0
Flagged Questions
0
Total Questions Checked

🤖 AI-Check All Flagged Questions

Claude reads each flagged question's actual content and judges whether it's a genuine problem or a false positive (e.g. a legal abbreviation the auto-check rule doesn't recognize). It never edits or rewrites anything — only classifies. You decide what to do with each verdict. Checks every currently-flagged question in one run; costs a small amount per question.

📅 Daily Content

Publish the "Today's Homework" bundle students see for a given date — one Daily GK Question, a Current Affairs Challenge, a Computer-in-5-Minutes set, a Shortcut of the Day and a Computer One-Liner. Each is its own dailyContent doc keyed by date + type, so publishing again for the same date replaces what's already there — just paste/type again and hit Publish, no separate edit step needed.

Everything below applies to this date. Switch dates to see and replace what's already published for another day.

Daily GK Question (exactly one MCQ)

Paste one bilingual question below, click Parse to preview, then Publish. If the paste yields more than one question, only the first is used. Same format as elsewhere in this panel — Tags/Difficulty lines are required by the parser but not stored for Daily Content, any values work:
Q: English | Hindi A) English | Hindi B) English | Hindi C) English | Hindi D) English | Hindi Answer: B Tags: gk Difficulty: simple Solution: Optional explanation shown after the student answers.

Current Affairs Challenge (5–10 MCQs — a.k.a. "Daily Current Affairs")

Paste 5–10 bilingual questions below (one block per question, separated by a blank line), click Parse to preview, then Publish. There's no separate source/date field — put the source/date for this challenge inside each question's Solution line instead (e.g. "Source: The Hindu, 20 Aug 2026 — ..."), since Solution is already shown to students after they answer.

Computer in 5 Minutes (up to 10 MCQs)

Paste up to 10 bilingual questions below (one block per question, separated by a blank line), click Parse to preview, then Publish. Same format as elsewhere in this panel.

Shortcut of the Day (short plain-text tip)

Computer One-Liner of the Day (short plain-text tip)

🃏 Flashcard Bank

Live content for the student-facing "Revise with Legal Om" flashcards — adding or bulk-importing an entry here publishes it immediately, there is no separate staging step. Law and Case Law subjects come from the same fixed list of 32 Bare Acts; GK and Computer subjects/topics are open — type a new one any time and it becomes selectable from then on.

Add Flashcard

Bulk Import via Paste

Pick the Category once for this whole batch, paste one or more blocks below (separated by a blank line), click Parse to preview, then Publish. Bilingual fields use English text | Hindi text. When Category is Law, every block's Subject: must exactly match one of the 32 fixed Bare Act names — anything else is flagged as an error rather than silently saved.

Format, one block per flashcard:
Subject: <exact subject name> Heading: English text | Hindi text Major: English text | Hindi text Details: English text | Hindi text

Generate from MQB

Turns Master Question Bank questions into flashcards — front shows the question and all 4 options with the correct one already highlighted, back shows the explanation exactly as written (never AI-rephrased). Nothing is saved until you review the draft below and click Publish. A question that's already been turned into a card is skipped automatically.

All Flashcards

CategorySubjectCards
Loading…

✅ True/False Bank

Live content for the student-facing "Revise with Legal Om" True/False cards — adding or bulk-importing an entry here publishes it immediately, there is no separate staging step. Law and Case Law subjects come from the same fixed list of 32 Bare Acts as the Flashcard Bank; GK and Computer subjects/topics are open — type a new one any time and it becomes selectable from then on.

Add True/False Item

Bulk Import via Paste

Pick the Category once for this whole batch, paste one or more blocks below (separated by a blank line), click Parse to preview, then Publish. Bilingual fields use English text | Hindi text. When Category is Law, every block's Subject: must exactly match one of the 32 fixed Bare Act names — anything else is flagged as an error rather than silently saved.

Format, one block per item (Answer: accepts True/False, case-insensitive):
Subject: <exact subject name> Statement: English text | Hindi text Answer: True Explanation: English text | Hindi text

All True/False Items

CategorySubjectStatementAnswer
Loading…

Chat

Select a student to view their chat

Knowledge Base

Upload your own model answers, notes and question banks — the grading AI uses these for context/accuracy, and you can generate new practice questions in the same style below.

Add Material

Grading Instructions apply automatically to every submission whose Area matches — no size limit, add as many as you like.

All Material

TitleTopicTypeStatus
Nothing added yet.

Generate Practice Questions

Uses your Knowledge Base material as reference to generate new questions in the same style.

📚 Subject Library

Every Act imported from legalom-sources — EN/HI availability, review status, and how much practice content is linked to it so far.

Naya/edited content search (Source se MCQ, RAG) mein tab tak nahi aata jab tak "Re-embed" na chale — Paste & Parse ya Edit karne ke baad ek baar chala do.

⬇️ Download All Acts

Kholo ▾

Settings

AI Cost

Estimated Claude API spend, based on this project's own call log (not fetched from Anthropic — there's no API for that). Figures are estimates from Anthropic's list price per token; check the Anthropic Console for your actual bill and remaining balance, which isn't something any app can read back automatically.

$0.00
Today
$0.00
This Month
$0.00
Total (logged)
0
API Calls (logged)
FeatureCallsCost
No usage logged yet.

Other Platform Costs

GitHub, Netlify and Firebase don't offer an API a personal project can use to read back its own bill — that only exists for GitHub/Google Cloud org-level billing accounts, which needs extra one-time setup in each platform's own console (not something I can do from code). So these three are manual for now: check each platform's billing page occasionally and note the number here, so it sits next to the real Claude number above for one place to check everything.

Usually $0 unless you're on a paid plan or heavy on Actions minutes.

Usually $0 unless you're past the free-tier bandwidth/build limits.

Check Firebase Console → Usage and billing. This is the one most likely to move as usage grows.

AI Grading Instructions

Write ongoing instructions for how the AI should grade answer sheets — e.g. "be stricter on case law citations" or "for MP Judiciary, weight local amendments highly." Applied to every submission from now on, no code changes needed.

Two-Factor Authentication

Require a 6-digit code from an authenticator app (Google Authenticator, Authy, etc.) in addition to your password when logging into this admin panel.

Checking status…

OTP Login

Set your phone number to log into this panel with an SMS OTP instead of email+password — same as the student portal's OTP login. Note: OTP login skips two-factor authentication even if you have it enabled above, since it's a full alternative sign-in path, not a second factor on top of your password.

Preview as Student

Opens the student portal in a new tab, signed in as a dedicated test account with full access to every batch and paper — no fees, nothing tracked for real. Use it to try out uploads, MCQs, everything, exactly as a fully-paid student would see it. Only reachable from here — there's no public way to sign into this account.

Free Trial Courses

Which courses show up as options on the public "New Student" free-trial signup form. Each phone number gets exactly one free trial ever, for one of these courses — they can't re-signup once used, and they can't free-trial a course they're already a paid student in.

📅 Exam Dates

Drives the countdown banner and revision schedule on the student dashboard (adpo-mcq.html) — writes appSettings/examDates. Leave a course's date/time blank to leave it untouched (not cleared) — only courses you actually fill in get saved.

📅 Course End Dates (Defaults)

The default Course End Date auto-filled for new ADPO students (Create/Bulk Import forms) and used by "📅 Set ADPO Default" on the Students page — writes appSettings/courseDefaults. This does NOT change any student's date by itself; use "🔧 Purani Tareekh Theek Karo" below for that.

One-time cleanup: finds every student whose ADPO Course End Date is still the OLD stale default (18 Oct 2026) and sets it to the current default above instead. Never touches a student whose date is anything else (a genuinely custom date, or already correct).

Login Settings

Controls what login options students actually get — enforced on the server, not just hidden in the app, so "Mandatory" or "Off" really holds even from a combined admin+student login.

Enrolled Students

Free / Demo Students

Add Another Admin

1. Firebase Console → Authentication → Users → Add User (email + password).
2. Copy that user's UID.
3. Firebase Console → Firestore → create/open the admins collection → add a document whose Document ID is that UID (fields can be empty, e.g. { role: "admin" }).
4. That user can now log in to this panel.

Telegram Channels

Channels the Social Media Studio can post posters to directly. To connect one: message @BotFather on Telegram → /newbot → follow the prompts to get a bot token (set once via firebase functions:secrets:set TELEGRAM_BOT_TOKEN, not entered here) → add that bot as an admin of your channel → forward any message from the channel to @userinfobot to get its numeric Chat ID (looks like -1001234567890).

Social Media Style Guide

Ongoing instructions for how Claude should draft Social Media Studio posts — e.g. "always keep the headline under 8 words" or "prefer Ember templates for exam alerts, Classic for case law." Applied to every generation from now on, no code changes needed.

Telegram Reverse Connection

DM your bot (@Legalom_social_bot) raw news text — or forward it a photo/PDF — and it drafts a post and auto-posts the poster to every connected channel above, same as the Urgent button. Only Telegram accounts listed here are allowed to trigger it (anyone else who messages the bot is ignored). To find your own numeric Telegram user ID: message @userinfobot directly (don't forward anything — just chat with it) and it replies with your ID.

One-Time Cleanup: Old "Medium" Difficulty Tags

Difficulty is now just Simple / Tough (Tough is earned automatically once 5 students flag a question, for ADPO questions only). Run this once to convert any question still tagged "Medium" from before — across ADPO tests, Book Maker subjects, Question Bank, and the True/False Bank — over to Simple.

Check a Phone Number List

Paste a list of phone numbers (one per line, or comma/space separated — any format works, they're matched by digits only). Get back which of them are already registered as students right now — handy for checking how many of an older contact list have since joined.

Firebase Project

Connected project ID: not configured

🧰 Maintenance Tools

One-off admin utilities — not day-to-day work, safe to leave alone unless you know you need one. Each button here recomputes/overwrites its own data fresh every time, so re-running one is always safe.

Backfill Report Card Mirror

Recomputes mqbReportCardMirror for every already-submitted MQB attempt. Needed after that mirror's own shape changes (a field gets added) — brand-new attempts always pick up a change automatically; this is only for attempts that already existed before it.

📏 Question Length Backfill

Fills in a length field on mqbQuestions (Short/Medium/Long, by character count) — needed for whatever uses that to filter/balance a test. "Pehle dekho" counts by reading questionEn/Hi directly (no backend dependency); "Backfill Chalao" calls backfillMqbQuestionLength to actually write the field.

📏 Question Size Rules

Word-count thresholds that decide Short/Medium/Long for the Question Length Backfill above. Saving here changes only the RULE — already-backfilled questions keep their old size until Backfill Chalao runs again.

(isse kam = short)

🎛️ Feature Switches

Toggles for flags that today live as hardcoded const values inside individual page files (adpo-mcq.html, copy-check.html, etc.) — this page writes to one shared Firestore doc (appSettings/featureFlags) those pages read on load instead. A flag genuinely missing from that doc (not yet migrated, or the doc itself doesn't exist) always falls back to that page's own previous hardcoded value — flipping nothing here can never be what breaks a page that hasn't been wired up to read it yet.

Switches

Login & Access

These write the exact same docs as the Settings page's Login Settings card and the Free & Demo Access page's master switches — a live listener, not a cache, so a change from either place shows up here immediately and vice versa. Per-course Free/OTP-Demo detail (individual test control, not the whole-course master switch) is only on the Free & Demo Access page — not duplicated here on purpose.

Free-for-All (whole ADPO course)
Off
Whole-course Demo
Off

Login Settings

Enrolled Students
Free / Demo Students

🔐 Login Settings

A single simplified view over the exact same settings/loginPolicy doc as the card above and the Settings page's Login Settings card — live, not a cache. "OTP se login" and "Khud reset kar sake" here are ONE switch each for both Enrolled and Free/Demo students together; use the detailed card above if Enrolled and Free/Demo need genuinely different values for those two.

Kaise andar aa sakte hain:
Password bhool jaye to:
Naya student:
Advanced — Login setup requirement

🎨 Student Interface

Text, colors and sizes shown on the student dashboard (adpo-mcq.html) — writes one shared doc (appSettings/studentUI) that page reads on load. Every field's placeholder shows what's live today — leave a field empty (or a color's checkbox unchecked) and that piece keeps its default exactly as it is now; nothing changes until you type/pick something and Save. Clearing a field you'd previously filled in and saving again reverts it back to default too. The preview on the left updates as you type — it's a live look, nothing is saved until you press Save.

Live Preview

🔐 Login Interface

Text, tile visibility, and tile order shown on the login pages (index.html / join.html / portal.html) — writes one shared doc (appSettings/loginUI) those pages read via getLoginUISettings (index.html and join.html don't carry the Firestore SDK, so they read this through a callable — same reason getFeatureFlags exists). Every field's placeholder shows what's live today — leave a field empty and it keeps its default; nothing changes until you type/pick something and Save. The preview on the left updates as you type. footerText is shared by index.html's and join.html's footers — one field, both pages. This editor doesn't cover colors/sizes yet, though the engine on those 3 pages already supports them.

Live Preview

Social Media

Paste content (or attach a photo/screenshot), let Claude draft a caption, hashtags and case-law refs, then pick a template and post it yourself — or push it straight to a connected Telegram channel. Instagram/Facebook/YouTube auto-publish isn't set up yet.

1. Input Content

Multiple files (e.g. several pages of one scan) are read together as one source.

Urgent skips review entirely — generates with the default template and posts straight to every connected Telegram channel, no preview.

Content Calendar

No drafts yet.

My OCR

Standalone text extraction for your own use (e.g. digitizing printed materials) — upload a PDF or image, get the raw OCR text back plus a downloadable Word file. Pure OCR only: no AI grading, summarizing, or analysis runs on this text.

Upload a Document

A PDF longer than 20 pages is automatically split into parts of that size — each part uploads and OCRs one at a time, and you get every part's text plus a combined download at the end.

Fees

Track each student's fee total, what's been paid, and what's remaining. Recording a payment generates a receipt PDF — the student gets it in their Fees tab plus a chat notification.

₹0
Total Collected
₹0
Total Outstanding
0
Students With Dues

Student Fees

StudentBatchTotal FeePaidDiscountRemainingLast Payment
No students yet.

💰 Paid Students

Har payment ki apni line — feeReceipts se, sabse zaroori column Payment Date hai.

0 paid · ₹0
NaamNumberPlanAmountPayment DateSignup DateCourse EndLast Login
Loading…

💳 Payment Recovery

Payment gaya, par student ko access nahi mila — client-side handler orderId/paymentId/signature teeno pura backend ko nahi de paaya to aisa hota hai. Yahan sirf orderId daalo — Razorpay se seedha confirm karke (typed ID pe bharosa nahi) access de diya jaayega, uska catalog plan jo bhi ho.

💳 Bulk Access (Payment se)

Ek saath kai payment ke liye — jaise 10-15 bachcho ka ₹11 wala access guest UID pe chala gaya ho. Daam aur/ya tareekh (dono optional — khaali chhodo to sab paid order check honge) se Razorpay ka asli captured payment dhoondhta hai aur uska contact number use karta hai — order ka apna uid galat ho to bhi, ye number checkout pe khud bachche ne bhara tha.

💰 Course Plans

Course catalog — daam, duration, aur enrollment flag har plan ke liye. Ye sirf catalog hai; koi payment yahan se nahi hoti. Ek course (jaise ADPO Foundation) ke kai alag plan ho sakte hain — 3/6/12 mahine, alag daam.

CourseDaamSamayStudentEnrollment FlagChalu?
Loading…

🚩 Reported Questions

Students flag MCQ questions they think are wrong, from either the ADPO MCQ system or Book Maker's subject question banks. Ask Claude to suggest a fix, jump to the question with "Go Fix It" to edit it, then mark the report Resolved or Dismiss it once you're done.

Loading…

📊 Student Review

Pick a student, then one of their submitted MQB tests, to see every question exactly as they saw it — their answer, the correct one, and the explanation. Read-only.

🎮 Challenge Activity

This system has been retired. New challenges now use Live Challenge. The list below is read-only history from before the switch.

Every peer-to-peer MCQ Challenge students have created in the ADPO MCQ portal — targeted invites and "Challenge Anyone" alike. Read-only: results here are exactly what the scheduled scoring sweep computes, nothing can be edited or cancelled from this screen.

Loading…