Skip to content

Admitting students

Getting students into the system, one at a time or a thousand at once. 3 minutes per student by hand; an import runs in the background.

Admitting a student creates the student record, enrols them in a class and section for the current session, and creates two logins — one for the student and one for the parent.

Sidebar → Student Information → Student Admission

Before you start

NeededWhy
A current academic sessionThe enrolment is filed under it
Classes with sectionsBoth are required on the form
Fee groupsOptional, but assigning fees at admission saves doing it later
Student categories and housesOptional labels, if your school uses them

Admitting one student

The form is long, but very little of it is required.

FieldRequiredNotes
Admission NoYesUnique within your school. Use Auto to generate it
Roll NoYesAuto gives the next free number in that class and section
First NameYesMiddle and last names are optional
GenderYes
Date of BirthYesAlso used to build the student's password — see logins
Class and SectionYesWhere they will actually sit
Father's Name and Father's PhoneYes, for a new parentSkipped when you link to an existing parent
Admission date, photo, category, house, blood group, address, previous school…NoFill in what you have

Then Save. You should now see the student in the list, and a panel showing the student's and parent's login details.

Copy the credentials before you leave the page

The login details are shown once, on screen, immediately after admission. They are not stored in readable form.

You can regenerate them later — but that changes the password, which means anything already given to the family stops working.

Admission and roll numbers

Auto next to each field fills in the next number for you.

The admission number format is yours to set — prefix, whether the session year is included, whether the date is included, how many digits, and the separator. That lives in your school settings, and produces numbers like APX/2026-27/0042.

The counter restarts each session, by design

When you switch to a new academic session, the admission number counter goes back to 1. That is what makes APX/2026-27/0001 mean something. If a number is already taken, the system skips past it rather than failing.

Roll numbers are per class and section — the next free number within that specific section, not across the school.

The parent account

This is the decision people get wrong, and it is hard to unpick later.

ChooseWhen
New parentThis family has no child at the school yet
Link to Existing ParentA sibling is already admitted

Siblings must be linked, not re-entered

Enter the same parent twice and you create two separate parent accounts. That family then gets two logins, sees one child in each, and cannot see both children in one place. Fee reminders arrive twice.

Search for the existing parent and link instead. Linking copies the family details across for you.

Where you do not give a parent email, the login is built from the father's phone number. See student & parent logins for exactly what gets created.

Fees at admission

Two optional fields save real work:

  • Fee groups — assign the student's fees while admitting them, rather than visiting the fees screens afterwards
  • Opening due balance — carry forward what the family already owed, typically when moving from a paper system or another product

Admitting many students at once

Student List → Bulk Import

  1. Download the template
  2. Fill it in — keep the columns exactly as they are
  3. Upload it, up to 10 MB

Every row must have: admission_no, roll_no, admission_date, first_name, gender, date_of_birth, class_name, section_name, father_name, father_phone. The remaining columns — mother's details, category, medical, bank, transport — are optional.

The class and section must already exist, and match exactly

class_name and section_name are matched against your existing records by name. A row naming a section that is not attached to that class fails with "Section 'B' is not mapped to Class 'Grade 5'."

Create your classes and sections first, and spell them identically in the sheet.

The import runs in the background — it needs the cron job

The upload returns immediately and the work happens in a queued job. If the cron job is not running on the server, the import never starts and nothing tells you.

If an import stays at "processing" and never moves, that is the cause. It is not a problem with your file.

Rows that fail are reported individually with their row number; the rest still import. A finished import reports as completed, or completed with errors and the list of them.

Import in batches you can check

500 rows in one file is fine. But import one class first, open three of those students, and confirm the data landed where you expected — then do the rest. A column misread across 2,000 rows is a long evening.

Students who leave, or pause

Students are never really deleted. They change status.

StatusMeans
ActiveCurrently studying
InactiveTemporarily suspended, expected back
LeftWithdrawn, transfer certificate issued. Final
Passed outCompleted the final year

Sidebar → Student Information → Disabled Students lists everyone who is not active, and is where you set someone back to active if they return. You can record a reason for leaving alongside the status.

Mark them Left — do not delete them

A student marked Left keeps their fee history, their attendance, their exam results and their name on the register for the years they attended. Deleting the record tries to erase all of it.

Who appears in a class list

Two different questions, two different answers, and it matters when you read reports:

  • Who is in this class now — currently studying students only. This is what attendance, fee collection and today's class lists use
  • Who was on the register that year — everyone enrolled that year, including those who were promoted out, left, or graduated

That is why a closed year's report shows more students than the class holds today. That is correct: they were in that class that year.

Real example

Apex Academy moved 1,180 students from a spreadsheet in one afternoon:

  1. Classes and sections created first, spelled exactly as in the sheet
  2. One class (52 rows) imported and checked by hand
  3. The remaining 1,128 imported in four files, split by section, to keep error lists readable
  4. 14 rows bounced — mostly duplicate admission numbers from the old system — fixed and re-uploaded
  5. Credentials sent afterwards, class by class

The step they nearly skipped: confirming the cron job was running. Their first import sat at "processing" for twenty minutes before anyone thought to check.

Common problems

What you seeCause
"Plan Limit Reached! You cannot admit new students"Your subscription plan caps student numbers. Contact your provider to upgrade
"The admission no has already been taken"That number exists in your school. Use Auto
"This parent email is already registered on the platform"Emails are unique across every school on the installation. Use a different one, or link to the existing parent
A family has two logins and sees one child eachThe parent was entered twice instead of linked. Fix by re-linking the second child to the first parent account
An import sits at "processing" foreverThe cron job is not running
"Section … is not mapped to Class …"That section does not exist under that class. Create it, or fix the spelling
Admission failed with a login/username errorThe auto-built login (S + admission number, or P + phone) already exists on the platform. Give an explicit student or parent email
A student vanished from the class listTheir status is no longer Active. Check Disabled Students
Last year's report shows more students than the class hasCorrect — that is the register for that year, including students who have since left or moved up