PensbasePensbaseDocs
← Back to pensbase
Students

Students

Every student is either admitted — accepted through an admission window — or migrated: a school digitizing a roll it already teaches, which never went through an application at all. Both end up as the same kind of student record; only how they got here differs.

Screens below are from a demo school with 202 real students already on the roll. Nothing was added — the add-student form is shown open and empty.

Who can do what

Creating a student outside admissions has no paper trail behind it the way an accepted application does, so it's the Head Teacher's alone — narrower than most admin actions here, the same reasoning behind who manages the academic calendar. Every officer can still read the roster; a teacher sees it too, since it's who they teach.

Action
Proprietor
Head Teacher
ICT Admin
Teacher
View the roster
✓
✓
✓
✓
See provenance (Admitted vs Migrated)
✓
✓
✓
—
Add / bulk-migrate a student
—
✓
—
—
Move a student to a different arm
—
✓
—
—

The student roster

Students filters by name or admission number, class, status, and — for the four officers — how each one joined. A teacher sees the same table narrowed to their own classes and arms for the current term, computed the same way their timetable and gradebook access are.

The Students roster, with search/class/status/entry filters and a table listing name, admission number, class, entry type (Migrated/Admitted badges), and status for many students
The student roster — 202 real students, most migrated in, one admitted through the portal.

Adding a student

Add an existing student is one form covering everything a migrated student needs at once: biodata, enrollment (including a required arm, not just a class), any balance already owed — left blank means no charge at all, not a charge of zero — and one or more guardians.

The top of the Add an existing student form: Biodata (first/last/other names, date of birth, gender), Enrollment (class, arm, admission number and date, previous admission number), and Outstanding balance sections, all empty
Biodata, enrollment, and any balance already owed — all in one form.

Guardians are added right there too — repeatable rows, one marked Primary contact — so a student and their family land in the system in the same submission, not two.

The bottom of the same form, scrolled down: the Guardians section with a repeatable First name/Last name/Phone/Email/Relationship row and a Primary contact radio, an + Add guardian button, and the Admit student submit button
Guardians go in with the student — not a separate step afterward.

Bulk-migrating students

Migrate in bulk follows the same download-template → fill → upload → check shape every import in the app uses — deliberately not gated on an open admission window, since a school digitizing its roll months after applications closed is the normal case, not an edge one. A student already on the system is skipped rather than duplicated, so re-uploading the same file after fixing a few rows is always safe.

The Migrate existing students page: step 1, Download the template; step 2, Upload and check the file, with a Choose File input and a Check the file button
Migrate in bulk — the same template → upload → check shape as every other import.

The student profile

A student's own page brings everything together: biodata with an inline, immediately-saving arm picker; curriculum (elective choices, where the class has any); a full account ledger — every charge and payment, not just a total; and guardians, each showing whether they already have a portal account or need inviting.

A student's profile page: Biodata card with an editable Arm dropdown, a Curriculum card, an Account card with a full itemized ledger, and a Guardians card showing one guardian with phone, email, and 'Has portal account'
One student's full record — biodata, curriculum, ledger, and guardians together.

Arm assignment isn't only set once at creation — it's the same picker here, committing the moment it's changed, no separate save step. Most often needed right after accepting an application (which never names one), but it works the same for moving an already-placed student to a sibling arm later.