10

Kortex

KIIT University's structured public record of institutional activity, classified against the 17 UN SDGs and the five Viksit Bharat @2047 themes.

Institutional · built for KIIT · code not public

Kortex logotype, with the O drawn as a segmented green ring
Records
26,286
Publications
19,242
Agreements
697 · 69 countries
Taxonomy
17 SDGs · 169 targets
Evidence prep
Months → weeks
Auth tests
223

Ranking bodies and accreditors (THE Impact, QS Sustainability, NAAC, NIRF) ask universities to evidence their contribution to the Sustainable Development Goals. KIIT's evidence was scattered across publication exports, faculty activity workbooks and the MoU register, with no consistent classification and no single place to pull every relevant record with its links.

A pnpm monorepo built on Next.js 15 and Postgres that ingests, deduplicates, classifies, reviews and publishes institutional records. Classification is LLM-assisted and three-tier: individual judgement for exemplar records, a deterministic 59-rule engine for high-volume activity types, and a bulk pass over the publication corpus, all mapped to 17 goals and 169 targets with a Viksit Bharat theme on every SDG-labelled record. The public site reads only published rows, through a read-only database role on a schema of views, and the admin side uses Argon2id password hashing, server-side sessions and a full audit trail. The public 'Impact Ring' is a react-three-fiber visual; charts are hand-built with d3-scale.

  • Corpus of 26,286 records, including 19,242 publications and 697 agreements spanning 69 countries
  • Three-tier classification against 17 SDGs and 169 targets: Claude judgement for 1,101 exemplar records, a deterministic 59-rule tier with a 5% hand audit for 5,246 activity records, and a bulk pass over all 19,242 publications
  • Published-only access enforced as a read-only database role on a schema of views, not a WHERE clause
  • Argon2id, server-side sessions, CSRF protection, rate limiting and lockout, covered by 223 auth tests

Select a layer to read why it is there.

  1. Published-only as a database role, not a WHERE clause

    Public pages query a schema of views filtered to published records, under a role with no privileges on the underlying tables. A forgotten filter in application code cannot expose draft data; the cost is a second schema to maintain and a role switch inside every public transaction.

  2. Rules first, model judgement where needed, provenance on every label

    High-volume activity types are classified by a deterministic rule tier with no model call, and model judgement is kept for exemplar records and a bulk pass over publications. Each label records its source (imported, rule or model), and every machine run is written down with its prompt, taxonomy and rubric versions before the first label, so any classification can be traced and re-run.

  3. Deduplication that prefers a missed merge to a wrong one

    Titles are matched on trigram similarity plus containment, and ambiguous pairs go to a review queue instead of merging automatically. A wrong merge is silent and permanent; a missed one stays visible and can be fixed later.

  4. Confidence bands instead of decimal scores

    Classifications carry a confidence band rather than a precise-looking number, and SDG 17 (partnerships) is assigned from a record's structure rather than its wording. The labels look less precise, but a reviewer can check them.

Gives the university one structured, exportable source of SDG evidence for ranking and accreditation work, with classification that is auditable at the record level instead of a manual mapping exercise repeated for every submission. Together with the IQAC data process, it cut evidence compilation for each rankings cycle from months to weeks.

  • 26,286 records ingested and reconciled: 19,242 publications, 6,347 activities and 697 agreements.
  • Deduplication reduced 8,684 activity rows to 6,347, with 3,124 uncertain pairs held for human review and a reconciliation gate within ±5% of the expected total.
  • Every publication went through the bulk classification pass; new records are routed to a Gemini pipeline that is built and stub-tested.
  • Evidence compilation for each rankings cycle cut from months to weeks.
  • The rule tier classifies 4,450 of 5,246 activity records offline in about two seconds.
  • 223 authentication tests covering password hashing, CSRF, lockout and rate limiting.