Open the app
← Help

The data model

Everything is stored in the browser's IndexedDB on the device, in a database called kaksha (the demo uses a separate one, kaksha-demo).

TableHoldsLinked to
schoolsname
classesgrade, section, academic yeara school
studentsroll number, name, still in the class or nota class
assessmentstitle, subject, date, kind (answer key or rubric), and its itemsa class
responsesone answer: the value tapped and whenan assessment, a student, an item
sittingsabsent or present, and the short notean assessment, a student

Items live inside their assessment: a question (label, skill, type, key, marks) or a rubric criterion (label, skill, levels). A response's value is a choice (A–D), R or W, a rubric level's score, or - for an answer left blank. No response at all means not marked yet, which is different from blank.

Every record has a random id (a UUID), which is what lets backups from several phones be combined without clashes. The code is in src/lib/model.ts and src/lib/db.ts.