A student is a record
You create a student as a row, from a name alone - no address, no password, no email. The account comes later from one button, and a student without one is the normal state.
The phone rings and reception has three seconds to find a student, their group and a guardian's number. Students is the one list that holds it, instead of somebody's private spreadsheet.
You create a student as a row, from a name alone - no address, no password, no email. The account comes later from one button, and a student without one is the normal state.
A student belongs to several groups at once and the column behaves like tags. Guardians and companies are linked from the same cell, from either side of one link table.
The envelope on a row creates the account or sends a new password, and says when the last message left, to which address and how it went. The school never sees it.
Bulk actions reassign a group, append a note to the existing one, archive and delete. Passwords go out 25 at a time, and students with no address are skipped and counted.
The export carries groups, guardians, companies and custom columns, and the import template says which column is required. An import only adds, all rows or none.
A module is a permission, and which records may be touched is settled on write, not in the menu.
| Role | Sees | Changes |
|---|---|---|
| Owner | The whole register, including national ID, document number and date of birth. | Everything: adds, edits, archives, deletes and sends passwords. |
| Methodologist | The same as the owner: the whole register with the contract fields. | Everything in the register, import and bulk actions included. |
| Teacher | Their own students, from the groups they are assigned to. A manual grant opens the school. | Nothing beyond the school's own columns. The screen only reads: no adding, archiving or deleting. |
| Student | Themselves, and only through the API. The register screen answers 404. | Nothing. This is the school's list, not theirs. |
The things that only surface in the third week of working with the module.
When the school decides to give them one, and not a moment earlier. A student is created as a row, from the name alone, and the account is a separate move: the envelope in the row menu creates the membership and mails the password to the address in the E-mail column. A student without an account is the normal, default state, because the front desk keeps a register, not a list of logins.
By default their own students, meaning those from the groups they are assigned to - the same narrowing as for the student report, done by the same database function. The count above the table uses that same condition, so it does not reveal how many students the school has. Granting the module by hand opens the whole register, because the front desk is sometimes employed as a teacher. Either way the screen only reads: it does not create, archive or delete a student, and the national ID, document number and date of birth come out empty.
Nothing dramatic: membership of a group is a record of its own, so a student can sit in several groups at the same time and the “Groups” column behaves like tags. Group size is computed from those memberships, not from a counter someone types in. The bulk “Group” action replaces the selection's membership, because the bar sees the selection, not who already goes where.
The “Data” tab under the question mark holds the file template, the import and the export. An import takes up to five hundred rows at a time and goes in whole or not at all; one column is required, the full name. Groups, guardians and companies are written by name, and a name nobody here carries does not reject the file: the student is created without that link and the count comes back as a notice.
Nine read-only tabs: Overview, Lessons, Grades, Attendance, Remarks, Homework, Rentals, Contracts and Reports. Above them a bar of six numbers: attendance, average, unmarked, remarks, groups and lessons in the window. The date window covers one hundred and twenty days by default and three hundred and sixty-six at most, and it lives in the address with the tab. A tab whose module is missing does not appear.
Archiving is the better move. The archive keeps the history, takes the student off the list, closes their way into this school and frees the seat against the limit. Deleting takes attendance, grades, remarks, homework and assigned materials with it, and a student with a charge, a payment or an issued contract will not be deleted at all - the answer says what is holding them.
The owner and the methodologist, nobody else. The national ID, the document number and the date of birth come out of the API empty for anyone who has the module but does not run the school: in the list, in the details, in the bundle for a contract and in the CSV export. The server narrows this, not a hidden column, because hiding a column is cosmetics rather than access control.
A contract yes, but another module writes it: “Generate contract” in the row menu opens the Student contracts dialog with the selection, and the register hands it only the party fields - address, national ID, document and date of birth. Money this screen does not know at all; tuition, charges and payments are counted by Finance.
14 days on your groups and instalments. No card, no strings.