User manual · September 2026 edition

SoftEdu Portal Manual.

How to run a school on SoftEdu: every module, who can use it, and how to do each job step by step, from admitting a pupil to printing the term's result sheets and collecting fees.

Super Admin
Runs the platform. Creates schools, chooses each school's modules and manages their admin logins.
School Admin
Runs one school. Sees every module the school subscribes to.
Teacher / Staff
Signs in with a Staff ID. Teaching pages by default, plus any extra permissions the admin grants.
Parent
Signs in with a PID code. Sees their own children's reports, fees, timetable and e-notes.
Contents
  1. Signing in
  2. First-term setup
  3. Students
  4. Teachers & Staff
  5. Parents
  6. Classes
  7. Subjects
  8. Exam Records
  9. Behavior Ratings
  10. Preschool
  11. Results
  12. Timetable
  13. E-Notes
  14. Notices & Calendar
  15. Fees
  16. Expenses & Payroll
  17. Settings
  18. Parent portal
  19. Super Admin
  20. Troubleshooting

Part one

Start here

How the menu fits you

Everyone uses the same portal, but no two people see quite the same menu. Two things decide what appears on your left-hand menu:

  • What your school subscribes to. The Super Admin switches modules on or off for each school, for example Timetable, E-Notes or Online Payments. A module that is off doesn't appear for anyone in that school.
  • What you are allowed to do. A School Admin sees everything the school has. A teacher sees the teaching pages. A bursar, registrar or principal sees exactly the extra areas the admin has granted them (see Staff Permissions). A parent sees only their own children.

So if this manual describes a menu item you can't find, either the school doesn't subscribe to it or your account hasn't been given that permission. Ask your School Admin.

TipOn a phone the menu folds away. Tap the ☰ button at the top left to open it.

Signing in

app.softedu.info/<school code>Everyone

Every school has its own login link, built from its short code. For example, a school with the code OBS signs in at app.softedu.info/obs. The page shows the school's logo, name, motto and colours, and only accepts that school's accounts. After someone opens it once, their phone or computer remembers the school, so going to plain app.softedu.info shows the same page next time.

WhoSigns in withExample
Teachers and staffStaff ID + passwordTID3578
ParentsParent code + passwordPID4410
School AdminThe username the Super Admin setobsadmin

Changing your password

  1. Click your name at the top right of any page.
  2. Choose Change Password, type your current password, then the new one twice (at least 8 characters).

Your Staff ID or parent code never changes. Only the password does.

Forgotten password

Click Forgot password? on the login page and enter your username or email. A reset link is emailed to you, but only if your account has an email address on file. Without one, ask the School Admin to reset your password from the Teachers or Parents list.

Good to knowIf the page says "Invalid login details for [school]", the Staff ID or password is wrong, or the account belongs to another school. Check the Teachers or Parents list for the exact details. If it says the portal is unavailable, the school has been suspended, so contact SoftEdu.

First-term setup checklist

School Admin

A new school should set things up in this order. Each step depends on the ones before it: scores need subjects, subjects need classes, and everything needs a current term.

  1. School profile and imagesSettings → School Profile, then Images: logo, banner and signature. Share your school's login link from the same page.
  2. Session and termsSettings → Sessions & Terms: add 2026/2027, add First/Second/Third Term with their dates, and click Set Current on this term.
  3. Classes, each with the right School LevelClasses: PreSchool, Primary, Junior or Secondary. The level decides the report layout and grading.
  4. Exam inputsClasses → Set Exam Inputs for Many Classes, e.g. 1st CA 20 + 2nd CA 20 + Exam 60.
  5. Grade Scale for each levelExam Records → Manage Grade Scale. The bands must cover 0–100.
  6. SubjectsSubjects: add each subject once, then assign it to classes.
  7. TeachersTeachers → Import from CSV (or Add Teacher), then assign each teacher their subjects.
  8. StudentsStudents → Add Student (one by one or from CSV).
  9. ParentsParents → Import from CSV, linking children by admission number.
  10. FeesFees: set up fee items and templates, then generate invoices, or use Simple Fee Structures.
  11. Share loginsTeachers and Parents lists: send each person their login on WhatsApp with one click.

Dashboard

Menu › DashboardEveryone

The first page after signing in, with your school's logo beside the welcome. It changes by role:

  • Admin: students by gender and by school level, a financial summary, the examination summary (which class and subject has uploaded scores), recent activity, and quick actions: Admit Student, Register Teacher, Collect School Fees, Generate Result, Authorize Parent Report, E-Notes Review Queue.
  • Teacher: today's timetable, my classes and subjects, pending results and behavior ratings, and a class-average chart.
  • Staff with extra permissions: quick links to exactly the areas they were granted.
  • Parent: their children at a glance.

Part two

People

Students

Menu › StudentsAdminstudents.manageTeachers: view only

The register of every pupil, from admission to graduation.

Admit one student

  1. Click Add Student and choose to add one manually.
  2. Fill in the form. The admission number is suggested as OBS/2026/0001 (school code / year / number) and can be changed, for example to keep a number from your old system.
  3. Optionally set the Term of Admission (for a pupil joining mid-session, so their annual average divides by the right number of terms) and link a staff parent if a member of staff is the parent (for staff-child fee concessions).
  4. Save. You go straight to Upload Photo: a .jpg, .png or .gif up to 5 MB. You can skip this and add the photo later from Edit.

Admit many students at once

  1. Add Student → CSV import → download the template.
  2. Fill one row per pupil in Excel or Google Sheets, save as CSV and upload it.

Withdraw, restore and promote

  • Withdraw takes a pupil off the active lists without deleting their records. Use the status filter to see withdrawn pupils and Restore them. Tick several to withdraw or restore in one go.
  • Promote Students moves a whole class's active pupils into another class at the end of the session, or graduates them to Alumni.
TipTeachers only see active pupils in the classes they actually teach, and can't add or change anyone.

Teachers & Staff

Menu › TeachersAdminteachers.manage

Every member of staff, teaching or not, has an entry here. SoftEdu creates each person's login for you: a Staff ID such as TID3578 (their username, which never changes) and a password.

Add one member of staff

  1. Click Add Teacher, fill in name, gender, phone, designation and so on, and optionally a photo and email.
  2. Save. The Staff ID and password appear on screen and stay in the Teachers list.

Import all staff from a CSV

  1. Click Import from CSV → Download Sample CSV.
  2. Fill one row per person. Only First Name and Last Name are required. Gender is male or female. Write dates day first, e.g. 14/03/1988. Leave out Staff ID and password.
  3. Save as CSV and click Upload & Import. Everyone gets their own Staff ID and password.
First Name,Last Name,Middle Name,Gender,Phone,Email,Designation,Date of Birth,Date Joined,Address Funke,Adeyemi,Grace,female,08031234567,funke@example.com,Class Teacher,14/03/1988,05/09/2022,3 Station Road Ibrahim,Musa,,male,08079876543,,Mathematics Teacher,,,

It's safe to upload the same file twice: anyone whose phone number or email is already on file is skipped, not duplicated. Rows with a problem are listed after the upload, and the others still import.

Sharing logins and resetting passwords

  • The WhatsApp button next to each person sends their Staff ID, password and your school's own login link.
  • Reset Password makes a new password and shows it to you.
  • Message (shown when the person has an email) sends them an email from the school.
  • Permissions gives non-teaching staff access to extra areas (next section).

Staff Permissions

Teachers › PermissionsAdminteachers.manage

A permission only ever adds access. A teacher with nothing ticked keeps the normal teaching pages. Ticking boxes is how you turn a staff account into a bursar, registrar or principal, bounded to exactly what the job needs. Pick a preset for the common roles, then adjust if needed.

PresetWhat it's for
RegistrarAdmissions, student records, classes, subjects, timetable, notices. No money, no releasing results.
Bursar / AccountantBilling, collection and finance reports, expenses and payroll. Can request waivers but not approve them.
Principal / Head TeacherOversight everywhere, including releasing results and approving waivers and reversals.
Front Desk / SecretaryTakes payments and raises waiver requests. Nothing is final without an approver.
Exams OfficerScore entry, grading, the comment bank, results and releasing sheets to parents.

Parents

Menu › ParentsAdminparents.manage

Each parent gets a login code such as PID4410 and a password, created for them. One parent account covers all of their children.

Add parents

  1. Add Parent for one, or Import from CSV for many.
  2. In the CSV, put children's admission numbers in Children Admission Nos, separated by semicolons, e.g. OBS/2025/001; OBS/2025/014. Import the students first so the numbers exist.

Re-uploading is safe: a parent whose phone or email is already on file is skipped. A child already linked to a different parent is left alone and reported. Share logins with the WhatsApp button, just as for teachers.

Part three

Academics

Classes & Exam Inputs

Menu › ClassesAdminclasses.manage

A class has a name, a section (e.g. JSS1 A) and a School Level. The level matters more than it looks:

School LevelReport it getsSchool images used
PreSchoolPre-School Report (checklist + comments)Primary set
Primary SchoolResult Sheet with scoresPrimary set
Junior SchoolResult Sheet with scoresSecondary set
Secondary SchoolResult Sheet with scoresSecondary set

Exam inputs (score columns)

Each class has its own score columns, for example 1st CA (max 20), 2nd CA (20) and Exam (60). The maximums should add up to 100 so the grade scale makes sense.

  1. For one class: Exam Inputs on its row → add, rename or reorder columns → Save Exam Inputs.
  2. For many: Set Exam Inputs for Many Classes, then apply to classes that have none yet, to one school level, or to every class.
Your scores are safeRenaming a column keeps its scores. Removing a column that already holds scores is refused unless you confirm that you want those scores deleted.

Subjects

Menu › SubjectsAdminsubjects.manage
  1. Add Subject: each name only once. Mathematics can't be added twice.
  2. Assign Subject Teachers: pick class, subject and teacher. This controls who can enter scores. A teacher can only open score entry for subjects assigned to them in that class.
  3. Unassign removes the link without touching any scores.

Exam Records: entering scores

Menu › Exam RecordsTeachers (own subjects)Adminexams.manage
  1. Under Enter / Edit Scores, pick the class, subject, academic session and term. The term list only shows that session's terms, so last year's First Term is never confused with this year's.
  2. Type each pupil's scores. Every score saves automatically a moment after you type it, and the box flashes green. The total updates as you go.
  3. A score above the column's maximum turns red and isn't accepted.

Upload scores from a spreadsheet

On the score entry page, use the CSV option: download the template (it lists the class with names and admission numbers), fill in the scores and upload it. Rows are matched by admission number.

Clearing mistakes

Use the eraser on one pupil's row, or tick several pupils and choose Clear Selected. The Save button at the bottom is only a backup, because scores are already saved as you type.

Grade Scale & Promotion Scale

Exam Records › Manage Grade ScaleAdmingrading.manage

The Grade Scale turns a total into a remark, with its own tab for each school level. A new school starts with:

ScoreGradeRemark (becomes the Principal's Comment)
70 – 100ExcellentExcellent performance
60 – 69.99CreditGood performance
50 – 59.99GoodFair performance
45 – 49.99PassManaged a pass
0 – 44.99FailNeeds improvement

Nobody types the Principal's Comment on a result sheet. It's the remark of whichever band the pupil's term average falls into, so make sure your bands cover the whole 0–100 range for every level.

The Promotion Scale is a separate scale used only on the Annual (Cumulative) Result. Give each band a label such as Promoted or Repeat and a ready-written comment, e.g. "An outstanding academic performance. You're hereby promoted to the next class."

Behavior Ratings

Menu › Behavior RatingsTeachersAdminbehavior.manage

Everything on the result sheet that isn't a score is entered here, one pupil at a time.

  1. Pick the class, session and term. Each pupil shows as Rated or Not rated yet.
  2. Open a pupil and rate the 9 Affective Domain traits (Honesty, Neatness, Politeness, Punctuality, Self Control, Obedience, Reliability, Sense of Responsibility, Relationship with others) and the 6 Psychomotor Skills (Handling of Tool, Drawing/Painting, Handwriting, Public Speaking, Speak Fluency, Sports & Games), each from 5 (excellent) to 1.
  3. Type the term's Total Present and Total Absent. There is no daily register.
  4. Write the Class Teacher's Comment: start typing to pick a saved comment, or write a new one, which is saved to the comment bank for next time.
  5. Save, then use Next to move to the next pupil.

Preschool Assessment

Menu › Preschool AssessmentTeachersAdmin

Classes whose School Level is PreSchool (Nursery, KG, Playgroup) get a developmental report instead of scores. The menu item only appears once the school has at least one PreSchool class.

  1. Pick the class and term, then a pupil.
  2. Tick each statement R (Rarely), S (Sometimes) or U (Usually). N/A leaves the box empty on the report. Use All U to fill a whole area in one click, then change the exceptions.
  3. Write a comment for each area of learning, and the Additional comments from school authorities. Use Insert a saved comment above each box to reuse wording, and add a personal line after it if you like.
  4. Fill in attendance: present, absent, times punctual and times late. Times school opened is worked out for you as present + absent.
  5. Save & Next Pupil takes you straight to the next child.
Saved commentsEvery new comment you type is saved to the comment bank when you press Save. The message after saving says how many were added. Each area keeps its own list, so a Writing comment is only offered under Writing. Admins can edit or remove saved comments under Comment Bank.

The statements themselves belong to your school. Change their wording, add or remove statements, or add areas under Edit Checklist.

Results & Broadsheet

Menu › Results & BroadsheetAdminresults.viewTeachers: terminal broadsheet

Where the term's work turns into reports.

Class Result Summary (View Summary)

One row per pupil with total, average, position, Payment Status and Parent Access. Payment Status reads Cleared, Not Cleared or No Bill. Only staff with a finance permission see the amount behind it.

  1. Open a pupil's result sheet to check it. From there, Download PDF gives a one-page A4 report.
  2. Download All Class Report makes one PDF with a page per pupil, ready to print.
  3. When a sheet is ready, release it to the parent: authorize one pupil, ticked pupils, or the whole class. Parents only see released terms.
The report headerIf your school has uploaded a Banner (Settings → Images), it appears at the top of every result sheet in place of the drawn school-name header, exactly as on the preschool report. Without a banner, the drawn header with logo, name, motto and contacts is used.

Other reports

  • Annual (Cumulative) Result: each term's average side by side, the session average and the Promotion Scale verdict.
  • Terminal Broadsheet: every pupil against every subject for one term, downloadable as a landscape PDF. Teachers can see this one.
  • Cumulative Broadsheet: the same across a whole session.
  • Transcript: a pupil's full record across all sessions.

Comment Bank

Settings › Reports › Manage Comment BankAdmincomments.manage

One tidy list of reusable report comments, so a class's reports read consistently. It holds two kinds: Class Teacher's Comments for primary and secondary result sheets, and preschool comments, filed under their area of learning.

Comments arrive here automatically whenever a teacher types a new one, and you can also add, edit or delete them yourself. Editing a saved comment only changes future suggestions. Reports already written keep their own wording.

Timetable

Menu › TimetableAdmintimetable.manageTeachers & parents: view
  1. Pick a class and click Add Entry: day, start and end time, subject and teacher, or a label such as Break or Assembly.
  2. Each class has its own times; there's no shared bell schedule to fit.

Teachers see My Timetable (their own periods, and today's on the dashboard). Parents see their children's.

E-Notes (lesson notes)

Menu › E-NotesTeachers submitAdminenote.review
  1. A teacher uploads a note as PDF, DOC or DOCX, choosing class, subject and term. It waits in the review queue.
  2. A reviewer opens Pending Review and approves or rejects it. Rejecting needs a comment, which the teacher sees, and they can then edit and resubmit.
  3. Approved notes appear for parents of that class to download.

Admins can also upload a note directly (published at once) and edit any note in any status.

Part four

Communication

Notice Board

Menu › Notice BoardEveryone readsnotices.manage posts

Post a title and message for Everyone, Teachers, Parents or Students, with an optional expiry date after which it disappears. Delete a notice at any time.

Calendar

Menu › CalendarEveryone readsevents.manage adds

School events such as resumption, mid-term break, sports day and PTA meetings, visible to the whole school.

Messages

Menu › MessagesAdminTeachersParents
  • Messages (inbox): private conversations between the admin and a teacher, or the admin and a parent. A red badge on the menu shows unread messages.
  • Message button on the Teachers or Parents list: sends a one-off email to that person's address. Every email sent is kept on record.

Part five

Finance

Fees at a glance

Menu › FeesAdminfees.* permissions

The Fees page opens with the current term's totals (Billed, Collected, Outstanding, Students Owing) and a card for each tool you're allowed to use. There are two ways to bill:

ApproachBest forWhere
Simple Fee StructuresOne amount per class per term, nothing moreFees › Simple Fee Structures
Invoicing (billing engine)Itemised bills, new vs returning pupils, services, discounts, arrearsFee Items → Fee Templates → Invoices

They can run side by side. When a pupil has an invoice for the term, the invoice is used; otherwise the simple amount is.

Fee Items & Templates

Fees › Fee Items / Fee Templatesfees.structure

Fee Items are the list of things you charge for, such as Tuition, Books, Uniform, ICT and Bus. A new school starts with a sensible list. Each item has four switches:

SwitchWhat it means
DiscountableSibling and staff discounts may reduce it. Usually only Tuition.
Pro-rataReduced for a pupil who joins mid-term.
RefundableCredited back if a pupil opts out.
PriorityOrder in which a payment settles lines. Lower settles first.

A Fee Template is one term's bill: items with amounts, for one class, one school level, or the whole school, and for new intakes, returning pupils or all. SoftEdu always picks the most specific template that fits a pupil. That's how new JSS1 pupils get admission and uniform charges that returning pupils don't. Copy a template into next term in one click.

Invoices

Fees › Invoicesfees.invoice
  1. Pick a class and term and click Generate Invoices for This Class.
  2. Open an invoice to check it, add a one-off line, then Issue it. Parents can then see it and pay.
  3. Running Generate again is safe: lines typed by hand survive, and voided invoices stay void.
  • Brought forward: last term's unpaid balance moves onto the new invoice as the first line. The old invoice is marked Carried Forward, so a debt is never chased twice.
  • Wallet: an overpayment becomes credit and is used up automatically on the next invoice.
  • Void cancels an invoice but keeps it on record. Invoices are never deleted.

Collecting payments

Fees › Open Student Feesfees.collect
  1. Open the pupil's fee page (Open Student Fees). It shows the invoice, payment history, wallet and any requests.
  2. Under Record a Payment, enter the amount and channel: cash, POS, bank transfer or cheque.
  3. Save and print the receipt.

A payment is split down the invoice lines in priority order. For example, ₦123,500 paid against a ₦300,000 invoice clears Books and Uniform first, then ICT and Exam, then Tuition, with penalties last.

Teller or deposit slipsA payment recorded with a slip attached waits under Confirm Payments until a bursar checks it against the bank statement and confirms it. Only then does it count.

Reverse cancels a wrong payment. It needs a reason, and it may need an approver (see below).

Discounts, waivers & approvals

Fees › Discount Rules / Approvalsfees.structurefees.waiver.requestfees.waiver.approve
  • Sibling discounts: one click creates the usual ladder: 5% for the 2nd child, 10% for the 3rd, 15% for the 4th and above. They only touch discountable items, so they never reduce uniforms or books.
  • Staff-child concessions apply automatically to pupils linked to a staff parent, with separate rules possible for teaching and non-teaching staff.
  • Scholarships: merit, sports or humanitarian.
  • No combination of discounts can push a bill below zero.

The four-eyes rule

A one-off waiver, adjustment or reversal is a request until someone else approves it under Approvals. Whoever raised a request can never approve it themselves, even if they hold the approve permission.

Optional services, penalties & payment plans

Fees › Optional Services / Late Payment Penalties / Payment Plans
  • Optional Services (bus route, lunch): only subscribed pupils are billed, with a per-pupil price if routes differ. Opting out mid-term credits the unused part back straight away.
  • Late Payment Penalties are off until you create a rule: flat or percentage, after a grace period or a fixed cut-off date, optionally capped. Penalties are always settled last.
  • Payment Plans: record a post-dated cheque or an agreed date and the pupil shows as On Plan, not owing, until that date passes.

Online payments

Settings › Payment Gatewaygateway.manage

Parents can pay by card or transfer through Paystack, Flutterwave or Monnify. Only one is active at a time.

  1. Paste the keys from your provider's dashboard. For Monnify, also enter the Contract Code and choose test or live mode. Saved keys are encrypted and only ever shown masked (••••1234). Leaving a field blank keeps the saved key.
  2. Copy the Webhook URL shown on the provider's card into your provider dashboard. Without it, a payment made by a parent who closes the browser early is never recorded.
  3. Click Activate.

A payment only counts once SoftEdu has checked it directly with the provider. Every attempt is listed under Fees › Online Transactions.

Finance reports & audit

Feesfees.report
  • Fee Ledger: who owes how much, by class and term (View Ledger).
  • Inflow / Outflow: fees received against expenses over a date range.
  • Audit Trail: every reversal, void, waiver, adjustment and approval, with who did it, when, from where, and their written reason. It can't be edited or deleted.

Expenses

Menu › Expensesexpenses.access

Record what the school spends: category (e.g. Utilities, Supplies), a short description, amount and date. Expenses feed the Inflow / Outflow report.

Payroll

Menu › Payrollpayroll.access
  1. Choose the staff member, month and year, then enter basic salary, allowances and deductions. Net pay is worked out as basic + allowances − deductions.
  2. Click Mark Paid once the salary has gone out.

Each person can only have one entry per month, so nobody is paid twice by mistake.

Part six

Administration

Settings

Menu › SettingsAdminsettings.manage
TabWhat you do there
School ProfileName, motto, principal's name, address and contacts. Also your school's login link, with Copy, WhatsApp and Open buttons.
Sessions & TermsAdd sessions with start and end dates. Add terms with their position (1st, 2nd, 3rd) and dates; these dates drive Next Resumption on reports and pro-rata fees. Set Current marks the term everyone works in. The next-term fee note is also set here.
Brand ColoursYour school's colours for menus, buttons and the login page. Reset to SoftEdu Default undoes them.
ImagesLogo, Banner and Signature, each for Primary and Secondary: six images, all saved with one Upload button. PreSchool and Primary classes use the Primary set.
ReportsA shortcut to the Class Teacher's Comment Bank.
Payment GatewayOnline payment keys (see Online payments).
Banner sizeThe banner is printed across the full width of the report, so use a wide image, about four to six times as wide as it is tall. It should already include the school name, crest, address and phone numbers, because it replaces the drawn header on result sheets.

The parent's portal

Parents

What a parent sees after signing in with their PID code:

  • My Children's Reports: every released term, grouped by session, with View, Download PDF and Print. Only terms the school has authorized appear.
  • My Children's Fees: one family account covering all their children: billed, paid, outstanding and wallet credit, with each child's breakdown, invoices, receipts and a Pay Online button.
  • My Children's Timetable and E-Notes: read only.
  • Messages with the school, and the Notice Board.

Super Admin

Menu › SchoolsSuper Admin

Add a school

  1. Add School: name, short code, contacts and the first admin's username.
  2. The short code becomes the school's login link, so choose it carefully. It must be 2–20 letters, numbers or dashes (e.g. OBS, st-marys), not used by another school, and not a portal word such as fees or students. It can't be changed later.
  3. Tick the modules the school has paid for, then create. The admin's temporary password is shown once, and afterwards on Edit & Logins.

Managing schools

  • Edit & Logins: school details, the login link, and every admin login with its current password. Add another admin or set a new password here.
  • Modules: switch features on or off for the school, including the finance add-ons (Invoicing, Discounts, Penalties, Payment Plans, Online Payments, Audit Trail).
  • Gateway: set a school's payment keys for them.
  • Suspend: stops everyone in that school from signing in, and signs out anyone already inside. Activate restores access.
  • The login link and its copy button sit under each school's code on the list. Open shows you a preview of the school's login page without signing you out.

When something looks wrong

What you seeWhy, and what to do
A menu item described here is missingThe school doesn't subscribe to that module, or your account lacks the permission. Ask the School Admin.
No Preschool Assessment in the menuNo class is set to School Level PreSchool yet. Edit the class under Classes.
A teacher can't open score entry for a subjectThat subject isn't assigned to them in that class. Use Subjects → Assign Subject Teachers.
Principal's Comment shows as unavailableThe Grade Scale for that level has a gap. Make the bands cover 0–100.
Next Resumption is blank or wrongThe next term's start date isn't set. Fix it in Settings → Sessions & Terms.
A parent can't see a reportThe term hasn't been released. Authorize it from the Class Result Summary.
An online payment isn't showingCheck Fees › Online Transactions, and that the Webhook URL is set in the provider's dashboard.
A new logo or colour isn't showingRefresh the page. If it still looks old, clear the browser cache or open the page in a private window.