हिंदी संस्करण उपलब्ध नहीं — अंग्रेज़ी में देखेंHindi version not available yet — viewing the English page.
FEATURE · Examinations

Every subject. Every component. Every lock. From `totalMaxMarks` to `marksLockedAt` — one configuration, one audit trail.

Link subjects to an exam, set max and pass marks, define theory + practical + internal components, lock the marks entry deadline and watch the marks workflow advance from DRAFT to PUBLISHED with full audit at every step. Built for the CBSE 80+20, the ICSE Section A/B/Internal, the IGCSE coursework split and every State Board pattern.

BG PICCOZONE

How most Indian schools configure subjects for an exam today

It is the third week of February in a CBSE Class 10 pre-board season in Bhopal. The exam coordinator has eleven subjects to set up across four sections — English, Hindi, Sanskrit, Mathematics, Science, Social Science, Information Technology, Physical Education, Art Education, Work Education and a school-elective. The Excel sheet she is using has a 'max marks' column with a '100' typed against every subject, because last year the office assistant who typed it did not know that CBSE Science is 80 + 20, that PE is grade-only, that Art is 100 with a different pass mark, and that Sanskrit had a special pass-mark circular this year.

The cost shows up two months later, on the day the marksheet goes out. The Class 10 Science marksheet shows 100 as the max, because that is what the configuration says, and the parent message group lights up: 'Mere bete ko 78 mein se 65 mile, lekin marksheet pe 65 out of 100 likha hai? Galat hai!' The Sanskrit pass mark in the school's circular was 36, but the configuration carries the default 33; one borderline child shows pass on the marksheet who should have shown fail. The PE column has a numeric grade where the CBSE format expects an A/B/C/D descriptor. None of these are typing mistakes; they are configuration mistakes that no amount of careful marks entry can fix.

This is the cost of treating subject configuration as 'just rows in a spreadsheet'. Inkwelly's Examinations module treats each subject in each exam as a structured config with multi-component support, board-aware defaults, per-component deadline locks and an explicit marks workflow that runs from DRAFT through SUBMITTED, VERIFIED, APPROVED, PUBLISHED to LOCKED. The marksheet is correct because the configuration is correct.

Inkwelly exam subjects configuration screen showing English Mathematics Science with total max marks pass marks and marks entry status badges per subject
Exam subjects — the structured config view, with `totalMaxMarks`, `overallPassMarks` and the seven-stage marks workflow status visible per row

How exam subject configuration works in Inkwelly

When the coordinator opens the Exam → Subjects screen, she sees a sortable table with one row per subject offered in this exam. Each row shows the subject name, the subject code, the grade level it belongs to, the linked class, the totalMaxMarks, the overallPassMarks, the displayOrder (the order it appears on the marksheet), and a marks-entry status badge — NOT_STARTED, DRAFT, SUBMITTED, VERIFIED, APPROVED, PUBLISHED or LOCKED — each in a distinct colour the principal recognises from across the staff room.

The subjects themselves are not invented per exam. They come from the Academics Module curriculum — a single source of truth for which subject codes the school teaches, which boards they belong to, which grade levels can take them, and which language scripts the subject name renders in. The exam subjects screen lets the coordinator link an offering from the curriculum to the exam, with a subjectOfferingId that points back to the canonical subject. The 'Hindi' on the Class 9 half-yearly is the same Hindi as on the Class 9 Annual Exam; the linkage carries forward the components, the grading scale and the language rendering.

For every linked subject, Inkwelly stores not just the marks ceiling but the structural configuration that the board prescribes. CBSE Class 10 Science has Theory (80) + Practical (20) with a combined overallPassMarks of 33 across both. ICSE Class 10 English Language has Section A (40) + Section B (40) + Internal Assessment (20). IGCSE Class 9-10 has Paper components plus Coursework with a separately-tracked weightage. Maharashtra State Board Class 10 has Written (80) + Internal (20) per subject plus a separate Physical Education and SUPW assessment. Each of these is modelled correctly via the components system — a JSON config block on the row that lists isBestOfEligible, graceMarksAllowed, scalingFactor and isOptional. The marks entry screen renders columns from this config; the marksheet renders the breakdown from this config; the verification queue computes the totals from this config.

The marks-entry status field is the workflow heart of the screen. The seven statuses move forward only — NOT_STARTED to DRAFT when the subject teacher first opens the entry screen, DRAFT to SUBMITTED when she clicks submit, SUBMITTED to VERIFIED when the class teacher verifies, VERIFIED to APPROVED when the principal signs, APPROVED to PUBLISHED when the result-publish workflow runs, PUBLISHED to LOCKED at session-end. Backwards transitions are possible but always audited — a class teacher sending VERIFIED back to DRAFT writes the user, the timestamp and the reason. The status colour code on the table is the principal's at-a-glance read for the entire exam.

What subject configuration actually does

  • Sortable table of every subject in the exam, with subject name, code, grade level, class, max marks, pass marks, displayOrder and marks-entry status
  • Seven-stage marks workflow per subject — NOT_STARTED, DRAFT, SUBMITTED, VERIFIED, APPROVED, PUBLISHED, LOCKED — each with its own colour code
  • Multi-component model — Theory, Practical, Internal, Oral, Project — each with own max marks, pass marks, weightage and exam date
  • Per-subject marksEntryDeadline — ISO timestamp; entry screen freezes the moment the deadline lands, no late edits
  • JSON config flags per subject — isBestOfEligible, graceMarksAllowed, scalingFactor, isOptional — enforced at marks entry time
  • marksLockedAt audit timestamp — set when LOCKED is reached, exposed to the affiliation cell PDF export
  • Subject linkage to the curriculum via subjectOfferingId — single source of truth across exams in the session
  • Search by subject name, filter by marks entry status, sort by displayOrder — the marksheet rendering follows displayOrder
  • Unlock dialog with reason field — corrects an APPROVED or PUBLISHED status, writes a reason to the audit log, sends the affected paper back to MARKS_ENTRY
  • Marks entry deadline update with audit — changes are logged with prior and new value
  • Per-subject student count — the number of children whose marks need entering, computed from the Class assignment feature
  • Overall stats card on top — total subjects, completion percentage, locked count, in-flight count for the principal's morning read

See subject configuration end to end

BG PICCOZONE
Subjects table — every subject in the exam, status-colour-coded for fast principal scan
BG PICCOZONE
Component editor — CBSE Class 10 Science with Theory 80 + Practical 20, pass mark 33
BG PICCOZONE
Marks entry deadline picker — ISO timestamp; the entry screen freezes the moment it lands
BG PICCOZONE
Unlock dialog — reason field captured, audit-log entry written, paper sent back to MARKS_ENTRY

Multi-component subjects — modelled the way the board actually wants them

The single most expensive simplification in school ERP design is treating every subject as 'one column of marks out of one max'. Real Indian board syllabi are nothing like this. CBSE Class 10 Science has 80 marks Theory plus 20 marks Practical, both required for promotion, with a combined pass at 33. CBSE Class 12 Physics has Theory 70 plus Practical 30 with separate pass thresholds. ICSE Class 10 English has three sections, each with its own marks. IGCSE Cambridge papers have multiple separately-graded papers plus coursework. Maharashtra State Board has internal 20 plus written 80 with the internal portion delivered as a project. Karnataka PUC has variable component splits per subject group.

Inkwelly's component model handles every one of these natively. Each component carries a category (WRITTEN, PRACTICAL, INTERNAL, ORAL, PROJECT), an assessmentMode (MARKS_BASED, GRADE_ONLY, RUBRIC_BASED, PORTFOLIO, DESCRIPTIVE), a max-marks and pass-marks pair, a separate exam date and time, a separate marks entry deadline and a weightage for the aggregation. The marks entry teacher sees the breakdown live as she types; the verification queue computes the per-component totals; the marksheet renders the breakdown that matches the board's prescribed layout.

Inkwelly subject components builder showing CBSE Class 10 Science with Theory 80 marks Practical 20 marks each with own pass mark and exam date
Multi-component subject — Theory + Practical, each independently configured

Marks entry status — the seven-stage workflow that prevents post-publish parent meetings

The seven statuses are not labels on a Kanban board for show. They are the actual workflow gate. NOT_STARTED is the moment a subject is added to the exam but the teacher has not opened it. DRAFT is when the teacher has saved at least one row but not submitted. SUBMITTED is the teacher's final hand-off; the system writes a marksSubmittedAt timestamp and notifies the class teacher. VERIFIED is the class teacher's sign-off after the verification queue has been worked through. APPROVED is the principal's signature after a final review. PUBLISHED is when the marksheet has gone to the parent app and WhatsApp Business queue. LOCKED is the session-end freeze, after which only an audited unlock can edit anything.

Every transition writes the prior status, the new status, the user and the timestamp to the marks audit log. Forward transitions are common; backward transitions are possible but require a reason. A class teacher sending VERIFIED back to DRAFT writes 'outlier in Q3 marks needs re-check' and the affected subject teacher gets the notification. The principal cannot APPROVE a paper still in DRAFT — the workflow does not allow stage-skipping. The trustees asking 'who unlocked Class 10 Sanskrit after publish?' have the answer in 5 seconds.

Inkwelly marks entry status badges showing NOT_STARTED DRAFT SUBMITTED VERIFIED APPROVED PUBLISHED and LOCKED in distinct colours per subject row
Seven-stage marks workflow — colour-coded, one-click status drill-down
Inkwelly marks entry deadline picker dialog showing ISO timestamp and warning banner about lock behaviour at deadline
Per-subject deadline — lock at exact second, no late entries

marksEntryDeadline — the lock that ends the 11:58 PM rush

In every Indian school we have visited, there is one subject teacher who submits marks at 11:58 PM the night before verification. The class teacher walks in to verification at 9 AM with a sheet that was edited four hours earlier and is convinced the paper at the top is the same one as last night. It almost is, except for one cell that was changed at 11:53 PM in a moment of doubt. The mistake is not malicious; it is human. But it is a mistake the school has to live with for the rest of the term.

Inkwelly's marksEntryDeadline is an explicit timestamp, set per subject by the coordinator at the moment of subject configuration. The marks entry screen displays the deadline at the top of the page and counts down. At the deadline second, the screen freezes — not in 60 seconds, not in five seconds, the second the deadline lands. The teacher cannot edit at 11:58 PM if the deadline was 11:30 PM. If the school needs to extend a deadline (a network outage, a teacher emergency), the coordinator can update it from this screen, with the prior and new values written to the audit log. The class teacher walking in at 9 AM has a frozen, deadline-stamped sheet.

isBestOfEligible, graceMarksAllowed, scalingFactor, isOptional — the small flags that decide a child's promotion

Every board has rules that no marketing site usually mentions — best-of-N for unit tests, grace marks for borderline pass cases, scaling factors for theory-vs-practical aggregation, optional subjects whose marks do not count for promotion. Inkwelly's per-subject JSON config block carries each as an explicit flag.

isBestOfEligible marks a subject as part of a best-of-N policy at the Academics level; the marksheet header reads '(Best 2 of 3)' automatically. graceMarksAllowed allows the principal a one- or two-mark adjustment on borderline cases, stored separately from marksObtained with a reason field for the audit log. scalingFactor lets the school apply CBSE-style 'scaling theory-and-practical to a notional 100' for the report card aggregate. isOptional keeps a subject visible in the marksheet but excludes it from promotion calculations — useful for music, third-language and computer-as-elective configurations. None of these need a developer; they are checkbox-and-number fields on the subject row.

Inkwelly subject config flags editor showing isBestOfEligible graceMarksAllowed scalingFactor and isOptional checkboxes for a Class 11 elective subject
Per-subject flags — best-of-N, grace, scaling and optional, all checkboxes
Pichli baar Class 10 Science ka marksheet '/100' likh ke gaya tha, parents furious. Is baar Inkwelly mein Theory + Practical alag column mein hai, marksheet pe '80 + 20' clearly print hota hai. Zero parent complaints.
Rajesh Tiwari · Vice Principal · DAV Public School, Bhopal

Real-world scenarios — how subject configuration plays out

  1. A new CBSE-mandated subject for Class 9. The board introduces Artificial Intelligence as a Class 9 elective. The school wants to add it to the half-yearly. The coordinator opens Academics, creates the subject offering with the right grade level, and links it to the half-yearly exam from this screen. Components: Theory 70 + Project 30, both MARKS_BASED, combined pass 33. The marksheet template inherits the new subject's display order automatically.

  2. An ICSE three-section English paper. The Class 10 ICSE English has Section A (40), Section B (40) and an Internal Assessment (20). The coordinator adds the subject, then opens the components editor and adds three components — each WRITTEN category, MARKS_BASED, with their own max-marks and pass-marks. The marksheet template renders the three section breakdown verbatim. Marks entry shows three columns to the teacher; verification computes the per-section totals.

  3. An optional school-elective for Class 11. The school offers a Photography elective in Class 11 that does not count for stream promotion. The coordinator marks isOptional=true on the subject row. The marksheet shows the marks but the aggregate excludes them; promotion logic skips the subject entirely.

  4. A grace-mark adjustment for a borderline child. A Class 10 child scores 32 in Sanskrit; CBSE pass is 33; the principal authorises a 1-mark grace. The teacher enters 32 as marksObtained, the principal opens the row in VERIFIED state, sets the grace-mark field to 1 with the reason 'principal discretion — first attempt'. The audit log captures the user, timestamp and reason. The marksheet shows 32 with a footnote indicating grace.

  5. A subject deadline extension during a regional bandh. A regional bandh on the day of the Class 9 Hindi marks-entry deadline disrupts staff travel. The coordinator opens the subject row, extends the marksEntryDeadline by 24 hours, with the reason 'regional bandh in district'. The audit log captures the change; the teacher sees the new deadline; verification stays unaffected.

Common operations on this screen

  • Add a subject to the exam by linking from the curriculum offering
  • Edit subject components — add a Practical, change pass marks, change weightage
  • Update marksEntryDeadline per subject or per component, with reason for audit
  • Toggle isOptional, isBestOfEligible, graceMarksAllowed, scalingFactor
  • Reorder subjects via drag-and-drop on displayOrder — the marksheet inherits
  • Search by subject name and filter by marks entry status — find every paper still in DRAFT past deadline
  • Unlock a LOCKED subject with reason — sends back to MARKS_ENTRY with notification
  • View per-subject student count — useful when a class size has changed mid-session
  • Drill into a subject row to see component-level marks entry status and deadlines
  • Export the configuration to PDF for the staff briefing and the trustees' meeting

See subject configuration running on your school's data

A 25-minute walkthrough using your existing subject offerings, your boards and your marks workflow. No sales pitch — just the screens.

Class assignmentResults & rankings

Limits, safety and the small print

Subject configuration changes are governed by the marks-entry workflow status. While a subject is NOT_STARTED or DRAFT, the configuration is freely editable. Once SUBMITTED, only the marksEntryDeadline and the displayOrder can be changed without an unlock. Once VERIFIED or APPROVED, structural changes — max marks, pass marks, components — require an unlock with reason. The unlock writes the prior config and the new config to the audit log; both versions are queryable forever.

The marks audit log captures every cell write, every status transition, every flag toggle and every deadline change. The log is exportable as a PDF for the affiliation cell visit, RTI requests and the trustees' five-year review. There is no soft-delete loophole; a subject removed from an exam shows in the audit log as removed, with the reason captured at removal. Subject configurations that have reached LOCKED can only be unlocked with principal sign-off and two-factor authentication.

For schools running multiple grading scales — A1-E2 for CBSE Class 9-12, percentages for State Board Class 11-12, 9-1 for IGCSE — the subject configuration carries a gradingScaleId that overrides the parent exam's scale. A Class 10 Sanskrit subject can run on a different pass threshold from a Class 10 English subject if the school's circular requires it. The override is one click on the subject row, with the prior scale and new scale written to the audit log. There is no separate workflow to maintain; the marksheet renders the right grade band based on the override.

किस मॉड्यूल का हिस्सा

1 module

अक्सर पूछे गए सवाल

7 सवाल
Can I configure a subject with two practical components?

Yes. The component model accepts as many components per subject as the board prescribes. A Class 12 CBSE Biology paper with Theory + Practical 1 + Practical 2 + Internal Project is four components; each gets its own max marks, pass marks, exam date, weightage and marks entry deadline. The marksheet template renders all four; the verification queue computes the per-component totals.

What if the school changes the pass mark mid-session?

Inkwelly logs the change with prior value, new value, user and timestamp. The new pass mark applies prospectively to exams that are not yet PUBLISHED. PUBLISHED exams retain the pass mark in effect at publish time. A child whose marksheet was published with the old pass mark stays as published; the audit log preserves the historical truth.

Can two sections of the same class have different subject configurations?

Yes. The subject configuration is stored against the exam-subject-class link, not against the subject itself. Class 9 A may have a different practical max marks from Class 9 B for the same subject in the same exam if the school has run different practical formats. Both configurations are audited and visible in the per-class drill-down.

How does the unlock workflow handle PUBLISHED exams?

Unlocking a PUBLISHED exam is allowed only with principal sign-off and two-factor authentication. The unlock creates a re-print queue entry; the original marksheet is invalidated server-side; the parent app shows a banner indicating that a corrected marksheet is being prepared. The corrected marksheet goes through the full APPROVED → PUBLISHED workflow again, with both copies visible in the parent app audit timeline.

Is there a limit to the number of subjects per exam?

No hard limit. We have run exams with 24 subjects across 18 sections (a senior secondary CBSE school in Pune). The subjects table paginates server-side and the marks workflow tracker scales linearly. The marksheet template handles long subject lists with auto-pagination.

Can subject configuration be templated across multiple exams?

Yes. The school can define a 'subject configuration template' against a board affiliation — e.g., CBSE Class 9-10 Default — with the standard component shapes for every subject in that grade band. New exams inherit the template at creation time. The coordinator overrides per exam if a circular requires it; the override is logged.

Does the marks workflow run differently for grade-only subjects like PE?

Yes. Subjects with `assessmentMode = GRADE_ONLY` skip the numeric marks entry screen and route to a grade-picker screen with the configured grading scale's bands. The seven-stage workflow is the same — NOT_STARTED, DRAFT, SUBMITTED, VERIFIED, APPROVED, PUBLISHED, LOCKED — but the entry UI is grade picker, not numeric input. The marksheet renders the grade band with descriptor.

आपको ये भी पसंद आ सकता है

2 लेख

Inkwelly आपके स्कूल पर — खुद देखें

30 मिनट का डेमो। आपके मौजूदा ERP को आपके साथ खोलकर, कॉल पर ही आपका डेटा Inkwelly में लोड करते हैं। कॉल ख़त्म होते-होते एक तय तारीख़ का गो-लाइव प्लान आपके हाथ में।

Exam Subject Configuration — Marks, Components, Locks · Inkwelly