Students and institution records¶
The student record¶
erp.student_profiles is the record of an enrolled student. It holds what a report card, a marksheet or a UDISE+ / AISHE return needs:
- Admission number, name (with middle name), gender, date of birth, contact and address
- Category, quota, nationality, blood group
- APAAR ID, the NEP education ID that government returns key on
- K-12 and UDISE fields: mother tongue, religion, CWSN status, disability type
- Guardians as a sub-record. One guardian is the primary contact, and their mobile is the family's parent login, shared by every sibling in the organisation (see sibling parent logins)
- A photo, stored as a storage key and served through short-lived signed URLs
We store APAAR, not raw Aadhaar. Raw Aadhaar would mean field encryption and verifiable parental consent for a minor's most sensitive ID, for little gain.
Each institution type sees only the particulars it has to file.
Enrolment history¶
Higher ed and PU colleges keep one student_levels row per student per year, so promotion adds a row and history stays. K-12 schools still use the older class model, where year-end promotion overwrites the student's class and section. Moving K-12 onto the same per-year model is Planned.
Institution records¶
An institution record carries statutory identity, split across the two levels Kwilo has:
| Level | Fields |
|---|---|
| Organisation (the legal entity, e.g. a trust) | Legal name, registration number, PAN, GSTIN, website |
| Institution | Establishment year, and by type: UDISE+ code and board affiliation number (K-12), AISHE code, university affiliation number and NAAC grade (higher ed), AICTE approval number (engineering) |
| Both | Email, phone, website, address. An institution inherits blanks from its organisation. |
A single-school customer types contact details once. A trust with three colleges overrides them per campus. The institution modal shows only the statutory fields that apply to its type.
These fields feed letterheads on receipts, registration forms and ID cards.
ID cards¶
Live behind the erp_id_cards flag.
A card template is a built-in layout (portrait or landscape, student or staff) plus a background image and a theme: accent colour, which optional fields show, validity and footer. The admin designs it with a live preview, then:
- Opens the template and picks Generate cards.
- Selects people from the roster, or all of them.
- Reviews a preview grid of every card.
- Prints at true CR80 size, or saves as PDF.
The preview and the print use the same component, so what you see is what prints. The ID number is the student's USN or roll number, falling back to admission number. Staff cards use the employee code. Branding comes from the institution record.
Where it lives¶
- Web:
ErpStudentsPage,ErpStudentDetailPage,ErpIdCardsPage,SchoolModal,OrganizationModal - Backend:
apps/backend/src/erp/students/,apps/backend/src/erp/identity/,models/org_unit.py,models/organization.py