Skip to content
OnlyProjects
MCA · BlockchainFor educational purposes only
Code included

Hall-Ticket and Marksheet Hash Registry with Offline QR Verification for a College Exam Branch

Every hall ticket and marksheet carries a SHA-256 fingerprint anchored in a signed hash registry that verifiers can check without internet

Mapped to your syllabusAnna University MCA Regulation 2021 · Project Work · Semester 4

Overview

1 min read

Examination fraud starts with a printer. A hall ticket with a swapped photograph, a forged arrears-cleared marksheet, a doctored transfer certificate — documents an autonomous college issues in thousands each semester are exactly the ones an employer, another university or an invigilator in a connectivity-dead exam hall cannot check quickly.

VeriSheet is a credential hash registry for the exam branch of a fictional autonomous college (Kaveri College of Arts and Science, Erode), built on blockchain's core construction — hash chaining and Merkle trees — without tokens or strangers. The branch uploads each sitting's batch as CSV; the system canonicalises every record (hall ticket, marksheet, transfer certificate), computes its SHA-256 fingerprint, and seals the batch as a block whose Merkle root chains to the previous block — a college-signed ledger of which credentials existed and when. Each printed PDF carries a QR code encoding the serial number and the full hash.

Online, an employer or help desk enters the serial or scans the QR and sees the registry record beside a chain-integrity badge. Offline, before each sitting the branch exports a digitally signed snapshot (Ed25519) of the serial-to-hash table and revocation list to invigilator devices; a network-dead hall still recomputes the hash, checks membership and the snapshot signature, and flags tampering with paper or snapshot. Intermediate in scope, it still exercises genuine cryptography — canonicalisation, Merkle proofs, key management, revocation — each demonstrated against a live tamper test.

Relevant for
Tamil Nadu
Level
Intermediate · 14 weeks · solo
Common at
Anna University, Chennai, Visvesvaraya Technological University, Jawaharlal Nehru Technological University Hyderabad
Updated
Nov 2026

Syllabus alignment

Anna University · MCA Regulation 2021

Project Work · Semester 4

Subjects this project applies
  • MC4201 Full Stack Web Development (React + Node.js)
  • MC4013 Blockchain (hash chains, Merkle trees)
  • MC4202 Advanced Database Technology (MongoDB registry)
  • MC4009 DevOps (containerised build and deployment)
How it is evaluated

See your department's project guidelines.

Also fits: VTU MCA 2022 Scheme, JNTUH MCA R22, Osmania University 2-year MCA 2022-23.

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

A college exam branch issues thousands of hall tickets, marksheets and transfer certificates each semester, yet a printed credential carries no checkable evidence that it matches what the branch actually issued. Photograph swaps, edited arrears columns and reused serial numbers are discovered only when someone telephones the branch — days later, or never. In exam halls, invigilators often have no connectivity at all, so even a web lookup is impossible at the moment of doubt. There is a need for a registry that fingerprints every credential at issuance (SHA-256 over a canonicalised record), anchors those fingerprints in a tamper-evident, college-signed hash chain, prints each credential with its own QR-encoded fingerprint, supports verification without internet through a signed snapshot and revocation list on invigilator devices, and records every verification attempt for audit — while storing no government identity numbers.

Synopsis

Abstract

This project builds VeriSheet, a hash-anchored credential registry for a college exam branch. Each credential record is canonicalised and fingerprinted with SHA-256; per-sitting blocks carry Merkle roots chained to the previous block, with the tip signed by the college's Ed25519 key. Printed PDFs carry QR codes holding the serial number and hash. Verification runs online against the registry and offline from a signed snapshot with revocation list, so invigilators verify credentials in a network-dead hall. Tampering with the registry, a snapshot or printed credential is caught by recomputation; no government identity numbers are stored.

Introduction

An autonomous college issues credentials constantly — roughly 4,800 hall tickets a semester, marksheets on demand, transfer certificates for leavers. Each is trusted on sight; verification requests travel back to the branch by phone. The branch is honest, but the paper leaves its control at the printer. The branch is a single issuing authority, so a hash-anchored, self-verifying registry fits without consensus machinery: blockchain's evidence structure, right-sized.

Existing System and Its Limitations

  • Credentials are printed and trusted on sight; no independent check exists that a paper matches what was issued.
  • Verification is manual: a phone call, a register search, days of delay.
  • Forgeries exploit exactly this gap — photograph swaps, edited arrears columns, reused serial numbers.
  • Limitations: no fingerprint per document, no tamper evidence, no offline check, no revocation.

Proposed System

  • Canonical fingerprinting: each record is serialised to canonical JSON (sorted keys, fixed dates) and hashed with SHA-256; the registry stores the hash, not the document.
  • Chained blocks per sitting: each sitting's batch forms a block with a Merkle root over its credential hashes; blocks chain to the previous root and the tip is Ed25519-signed.
  • QR-carrying PDFs: printed credentials carry a QR encoding serial number and full hash — the paper carries its own fingerprint.
  • Online verification: a public page recomputes, compares and logs every attempt beside a chain-integrity badge.
  • Offline verification: before a sitting, the branch exports a signed snapshot (serial→hash table, roots, revocation list) to invigilator devices; the offline verifier checks signature, membership, hash equality and revocation — no internet.
  • Revocation: cancelled credentials enter a signed revocation list shipped with every new snapshot; revoked serials fail loudly.

Feasibility Study

  • Technical: node:crypto provides SHA-256 and Ed25519; MongoDB holds registry and audit documents; qrcode and PDFKit generate the artifacts; a 5,000-credential snapshot is ~160 KB, trivially distributable to phones; Docker Compose makes the demo self-contained.
  • Economic: zero licence cost; the branch already owns a PC, printer and PDF workflow.
  • Operational: the branch uploads CSV exactly as today; invigilators need a one-page sheet; verification takes seconds. Seed data: 1,200 hall tickets, 300 marksheets, one revoked serial, one tampered snapshot.
  • Context: DigiLocker shows the national direction; this project serves the college-local paper workflow those platforms do not reach, and stores no Aadhaar, PAN or identity numbers.

Objectives

  1. 01Design a canonical-JSON representation for hall-ticket, marksheet and transfer-certificate records, and compute SHA-256 fingerprints at issuance time.
  2. 02Implement a per-sitting block structure whose Merkle root covers the batch's credential hashes, chained to the previous block's root with the chain tip signed by the college's Ed25519 key.
  3. 03Render hall tickets and marksheets as PDFs carrying a QR code that encodes the serial number and the full 64-character hash.
  4. 04Build the online verification service: serial or QR lookup, hash re-computation and comparison, chain-integrity badge and an audit log of verification attempts.
  5. 05Implement the offline verification kit: a signed serial-to-hash snapshot with Merkle roots and revocation list, exportable to invigilator phones and laptops, verified without internet.
  6. 06Implement signed revocation for cancelled or withheld credentials and propagate it through every new snapshot.
  7. 07Demonstrate tamper detection against the registry, the snapshot and a doctored credential record, with the exact failing item named.
  8. 08Seed one full semester of credentials (1,200 hall tickets, 300 marksheets) with a revoked serial and a deliberately corrupted snapshot for the demo.

Scope

In scope

  • One autonomous college's exam branch: two roles (exam-branch officer, invigilator/verifier) plus a public verification page; one seeded semester of credentials.
  • Batch intake by CSV, canonical fingerprinting, chained per-sitting blocks, Merkle roots, signed snapshots, offline verification, signed revocation, PDF/QR rendering and the verification audit trail.

Out of scope (v1)

  • Integration with university results portals, DigiLocker or NAD/DigiLocker-style national APIs — the registry is college-local and self-contained.
  • Marks processing itself: the branch's existing exam software remains the source of the CSV; VeriSheet fingerprints and verifies, it does not compute results.
  • Public-blockchain anchoring or consensus among colleges (future work); membership here is one issuing authority.
  • Biometric identity checks at the hall and storage of any government identity numbers — students are referenced by register number and serial only; photographs are stored as hashes, not images, in the registry.

Methodology

The project follows an incremental SDLC over 14 weeks with a working demo at every stage, appropriate for a single-author Anna University R2021 Semester-4 consolidated project. The cryptographic core (canonicalisation, hashing, chain) is built and tested before any UI.

PhaseWeeksActivitiesDeliverable
Requirements1–2Study the branch's CSV exports and hall-ticket format; define record schemas and serial-number rulesSynopsis + SRS
Design3Canonical-JSON rules, block and Merkle design, snapshot format, key ceremony plan, ER diagram, API contractDesign document
Increment 14–5CSV intake, canonicalisation, SHA-256 fingerprinting, MongoDB registryFingerprint pipeline + tests
Increment 26–7Per-sitting blocks, Merkle trees, chain of roots, Ed25519 chain-tip signatureSigned chain demo
Increment 38PDFKit rendering, QR generation, serial + hash encodingPrintable credentials
Increment 49–10Online verification page, chain-integrity badge, audit logVerification service
Increment 511–12Signed snapshot builder, offline verifier (web, localStorage-free), revocation listOffline kit
Testing13Golden hash vectors, tamper tests, offline-device test, UATTest report
Documentation14Consolidated report, PPT, demo rehearsalFinal submission

Testing approach: golden-vector tests pin the canonicalisation (key order, Unicode names, date formats) against hand-computed SHA-256 values; chain tests recompute Merkle roots and verify signatures; tamper tests mutate a registry document, a snapshot byte and a canonical field to assert detection with the failing item named; Supertest covers the API; and an offline-device test verifies a snapshot on a phone with airplane mode on.

Architecture & tech stack

3 diagrams · 8 technologies · 2 min read

  • Node.js 20 + Express
  • React (Vite)
  • MongoDB (registry and audit store)
  • node:crypto — SHA-256 (FIPS 180-4) + Ed25519
  • qrcode (PNG generation)
  • PDFKit (hall-ticket rendering)
  • Vitest + Supertest
  • Docker Compose

VeriSheet is a three-tier application with a cryptographic core.

  1. Presentation tier: the exam-branch console (React) for batch upload, block inspection and snapshot export; the public verification page; and the offline verifier page served to invigilator devices.
  2. Application tier: Express services — intake and canonicalisation, chain management, PDF/QR rendering, verification (online and offline), revocation and key management. Every signature operation happens server-side; keys never reach the browser.
  3. Data tier: MongoDB holds credential documents (canonical record, hash, serial, sitting, status), block documents (Merkle root, previous root, signature) and the verification audit log. The chain-tip signature and exported snapshots are stored as files outside the database.
flowchart TD
  EB(["Exam branch officer"]) -->|"CSV batch upload"| INT["Intake: canonical JSON + SHA-256"]
  INT --> REG[("MongoDB: credential records")]
  REG --> BLK["Block builder: Merkle root per sitting"]
  BLK --> CH[("Chain: root ← previous root; tip signed Ed25519")]
  CH --> PDF["PDFKit + qrcode: serial + hash in QR"]
  PDF --> PR(["Printed hall tickets / marksheets"])
  VU(["Employer / verifier (online)"]) -->|"serial or QR scan"| OV["Online verifier: recompute + compare + badge"]
  OV --> REG
  OV --> AUD[("Verification audit log")]
  CH --> SNAP["Snapshot builder: serial→hash table + roots + revocation, signed"]
  SNAP --> DEV(["Invigilator device (offline)"])
  IV(["Invigilator (exam hall)"]) --> OFF["Offline verifier: signature + membership + hash + revocation"]
  SNAP --> OFF
  KMS["Key ceremony: college Ed25519 keypair"] --> CH
  KMS --> SNAP

Registry data model

erDiagram
  SITTING ||--o{ CREDENTIAL : contains
  SITTING ||--|| BLOCK : "is sealed as"
  BLOCK ||--o{ CREDENTIAL_HASH : "covers via Merkle"
  BLOCK }o--|| BLOCK : "chains to previous root"
  CREDENTIAL ||--o| REVOCATION : "may be revoked"
  CREDENTIAL ||--o{ VERIFICATION : "is checked in"

  SITTING {
    string sitting_id PK
    string semester
    date exam_start
    int credential_count
  }
  CREDENTIAL {
    string serial PK
    string sitting_id FK
    string type
    string register_no
    string canonical_json
    string sha256
    string status
  }
  BLOCK {
    int height PK
    string merkle_root
    string prev_root
    string tip_signature
    datetime sealed_at
  }
  REVOCATION {
    string serial PK
    string reason
    datetime revoked_at
  }
  VERIFICATION {
    string id PK
    string serial FK
    string mode
    string result
    datetime checked_at
  }

Verification flow (online and offline)

flowchart TD
  IN(["Credential presented"]) --> S1["Read serial + hash from QR / form"]
  S1 --> S2{"Mode?"}
  S2 -->|"online"| O1["Fetch record; recompute SHA-256 of canonical JSON"]
  O1 --> O2{"Hash matches and chain valid?"}
  S2 -->|"offline"| F1["Load signed snapshot; verify Ed25519 signature"]
  F1 --> F2{"Serial present and hash equal?"}
  F2 -->|"no"| R1["FLAG: not issued / altered"]
  O2 -->|"no"| R1
  O2 -->|"yes"| RV{"Revoked?"}
  F2 -->|"yes"| RV
  RV -->|"yes"| R2["FLAG: revoked — show reason"]
  RV -->|"no"| OK["VERIFIED — show record summary"]
  R1 --> AUD[("Audit log")]
  R2 --> AUD
  OK --> AUD

The registry stores canonical records and hashes — names, register numbers, subject codes — but no photograph images and no government identity numbers; the photograph's SHA-256 is stored so a swapped photo breaks the fingerprint while the image itself stays in the branch's own system.

Modules

7 modules

  1. Module 01

    Batch Intake & Canonical Fingerprinting

    The exam-branch officer uploads a CSV per sitting; the intake service validates columns, serialises each record to canonical JSON (sorted keys, ISO dates, normalised Unicode), computes the SHA-256 fingerprint and stores the credential with its serial. Golden-vector tests pin the canonicaliser against hand-computed hashes, because a canonicalisation bug would silently undermine every later guarantee.

  2. Module 02

    Block Chain & Merkle Sealing

    When a sitting's intake closes, the block builder builds a Merkle tree over the batch's credential hashes, stores the root, links it to the previous block's root, and signs the chain tip with the college's Ed25519 key. The chain is therefore a college-signed, append-only commitment to exactly which credentials existed for each sitting and in what order.

  3. Module 03

    PDF & QR Rendering

    PDFKit renders hall tickets and marksheets in the branch's existing layout, plus a QR block encoding the serial number and the full 64-character hash, so every printed credential carries its own checkable fingerprint. Reprinting an amended record issues a new serial and revokes the old one, keeping paper and registry honest.

  4. Module 04

    Online Verification Service

    A public page accepts a serial (typed or QR-scanned), fetches the registry record, recomputes the canonical hash, compares, verifies the chain tip signature and Merkle root, and renders the record summary beside a chain-integrity badge. Every attempt — match, mismatch or revoked — is written to the audit log with timestamp and source.

  5. Module 05

    Offline Snapshot & Verifier Kit

    Before each sitting the branch exports a snapshot: the serial-to-hash table, the Merkle roots, the revocation list and a metadata block, all signed with the college key — about 160 KB for a 5,000-credential semester. The offline verifier page runs entirely in the invigilator's browser: signature check, membership check, hash equality, revocation status — with airplane mode on.

  6. Module 06

    Revocation & Key Management

    Cancelled or withheld credentials enter a signed revocation list that ships with every new snapshot and is honoured by both verifiers. The key ceremony module generates the college Ed25519 keypair, exports the public key for verifiers, and records rotation events — the operational questions examiners ask about signature schemes, answered with a procedure rather than a hand-wave.

  7. Module 07

    Branch Console & Reports

    The React console shows sitting-wise batch status, block explorer views of the chain, snapshot export history, revocation management and verification analytics (attempts, mismatch rates, revoked hits) — giving the branch, for the first time, data on who tried to verify what and when.

Slides

12 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    VeriSheet — Hall-Ticket and Marksheet Hash Registry with Offline QR Verification

  2. Slide 2

    Introduction: Documents Trusted on Sight

  3. Slide 3

    Problem Statement

  4. Slide 4

    Existing vs Proposed System

  5. Slide 5

    Objectives

  6. Slide 6

    Why Hashes, Not Documents

  7. Slide 7

    System Architecture

  8. Slide 8

    The Chain of Roots (Deep Dive)

  9. Slide 9

    Offline Verification Kit (Demo)

  10. Slide 10

    Revocation & Key Management

  11. Slide 11

    Testing & Tamper Drills

  12. Slide 12

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 17 answered free · 14 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    Why does your registry hash canonical records instead of the PDF files themselves?

    PDF bytes are not stable — timestamps, font embedding and compression change on every generation and reprint, so hashing the PDF would break on legitimate reissues. A canonical JSON record with sorted keys, ISO dates and normalised Unicode is byte-stable by construction, so its SHA-256 is a fingerprint of the credential's content. Reprints produce the same fingerprint; content edits produce a different one, which is exactly the property verification needs.

  2. 02Concept

    Is this a blockchain? What is and is not chained here?

    It uses blockchain's evidence structures: Merkle trees over batches and a hash chain linking block roots, with the tip signed. It is not a distributed blockchain — there is one issuing authority, so there is no consensus problem to solve and no token. Claiming a 'blockchain system' without a chain, or adding consensus that one authority does not need, would both be architecture theatre; the report states this boundary as a design decision.

  3. 03Concept

    What does the Ed25519 signature on the snapshot protect, and what does it not?

    It proves the snapshot came from the college's key and was not altered in transit or storage — an invigilator can trust the serial-to-hash table without trusting the USB stick it arrived on. It does not prove the underlying records were true at issuance; if the branch itself recorded a wrong register number, the signature faithfully protects that wrong record. Signature gives authenticity of the registry's state, not truth of its contents.

+14 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

8 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

8 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

304 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

304 words · ~2 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

388 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

388 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

8 sources

  1. FIPS 180-4 — Secure Hash Standard (SHA-256), NIST
  2. FIPS 186-5 — Digital Signature Standard, NIST
  3. DigiLocker — MeitY digital document issuance and verification platform (domain reference)
  4. RFC 8032 — Edwards-Curve Digital Signature Algorithm (EdDSA), RFC Editor
  5. Node.js v20 Documentation — Crypto module (createHash, sign, verify)
  6. Ralph C. Merkle, 'A Digital Signature Based on a Conventional Encryption Function', Advances in Cryptology — CRYPTO '87, Springer
  7. ISO/IEC 18004 — QR Code bar code symbology specification
  8. William Stallings, Cryptography and Network Security: Principles and Practice, 8th ed., Pearson

Cite this bundle

OnlyProjects. (2026). Hall-Ticket and Marksheet Hash Registry with Offline QR Verification for a College Exam Branch: MCA Blockchain project bundle [Educational resource]. https://onlyprojects.online/projects/mca-blockchain-hallticket-credential-hash-registry

Future scope

1 min read

  • Public-blockchain anchoring: publish each sitting's Merkle root to a public chain or timestamping service so even the college cannot silently rewrite history.
  • Multi-college federation: colleges cross-verify each other's signed roots through a lightweight consortium chain — the natural consensus step when there is more than one authority.
  • Camera-based hall checking: the invigilator photographs the hall ticket; on-device QR decode and hash check remove typing entirely.
  • Employer verification portal with per-request tokens, so a verification can be tied to a consented request rather than an open lookup.
  • DigiLocker-style issuer API for digital-first issuance alongside paper, with the same registry underneath.
  • Analytics: mismatch-attempt patterns by serial range or timing as an early-warning signal for organised forgery.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.