Wisdsol Edu Advance
A complete school management platform built for Ghanaian schools — from Crèche to SHS. Manage students, staff, fees, results, attendance, ID cards, and more from one place.
Student & Staff Records
Full profiles, guardians, admissions, payroll, and QR ID cards.
Fees & Finance
Term fees, receipts, scholarships, arrears, accounting ledger, and reports.
Results & Report Cards
Configurable score weights, GES grading, and printable report cards.
QR Clocking & Gate
Scan QR codes or enter PINs to clock students and staff in/out.
Subscription-Based Access
Plans with feature-level access control — Basic, Standard, and Premium.
Multi-School Platform
Each school runs in its own isolated database under one installation.
Logging In
Visit your school's URL (e.g. https://yourschool.edu.gh/s/school-slug/) and enter your username and password. After a successful login you are redirected to your role dashboard.
The login screen — enter your school username and password to access your dashboard.
Change Password NEW
Any logged-in user can change their own password at any time. Go to Account → Change Password in the sidebar, or click your name in the top-right corner and select Change Password.
- Enter your Current Password to verify your identity.
- Type your new password (minimum 6 characters). A live strength meter shows how secure it is.
- Confirm the new password — the field turns green when both match.
- Click Update Password. You stay logged in automatically.
Roles & Permissions Reference
Every user is assigned exactly one role. The role controls which sidebar sections, pages, and actions are available. The table below is the complete permission matrix.
✓ Full V View only A Approve only S Submit only ✗ No access
| Module / Action | Director | Admin | Principal | Head of Academics |
Accountant | Secretary | Teacher | Security | Cook | Parent |
|---|---|---|---|---|---|---|---|---|---|---|
| Students & Staff | ||||||||||
| View students | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | V | ✗ |
| Add / edit students | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Import students | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ |
| View staff | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Edit staff | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Academic | ||||||||||
| Classes & subjects | ✓ | ✓ | ✓ | ✓ | ✗ | V | V | ✗ | ✗ | ✗ |
| Attendance view | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ | ✓ | ✗ |
| Mark attendance | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ |
| Enter results | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ |
| Report cards | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ | ✗ | ✓ |
| Assignments | ✓ | ✓ | ✓ | ✓ | ✗ | V | ✓ | ✗ | ✗ | ✗ |
| Finance & Fees | ||||||||||
| View fees & reports | ✓ | ✓ | V | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Collect fees / receipts | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Manage fee structures | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Submit expenses | ✓ | ✓ | ✗ | ✗ | S | ✗ | ✗ | ✗ | ✗ | ✗ |
| Approve expenses | A | A | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Arrear balances | ✓ | ✓ | V | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Daily services (feeding) | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
| Accounting / payroll | ✓ | ✓ | V | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Financial analytics & export | ✓ | ✓ | V | ✗ | ✓ | V | ✗ | ✗ | ✗ | ✗ |
| Security & Gate | ||||||||||
| Gate kiosk & clocking | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✗ |
| Visitor management | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✗ |
| ID card printing | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Certificates & Awards PREMIUM | ||||||||||
| Graduation Certificates | ✓ | ✓ | ✓ | ✓ | ||||||
| Award Certificates | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Bulk Certificate Print | ✓ | ✓ | ✓ | ✓ | ||||||
| Certificates & Awards PREMIUM | ||||||||||
| Graduation Certificates | ✓ | ✓ | ✓ | ✓ | ||||||
| Award Certificates | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Bulk Cert Print | ✓ | ✓ | ✓ | ✓ | ||||||
| Administration | ||||||||||
| User management | ✓ | ✓ | ✓ | ✓ | ✗ | V | ✗ | ✗ | ✗ | ✗ |
| Data import | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ |
| Data export | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ |
| Assignment Hub | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| School settings | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Subscription management | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Subscriptions NEW
Each school on the platform requires an active subscription. Subscriptions are managed by the platform superadmin at Admin → Subscriptions.
| Plan | Included Features |
|---|---|
| Basic | Students, Staff, Attendance, Fees, Results |
| Standard | Everything in Basic + Accounting + Assignments |
| Premium | Everything in Standard + Security & Gate + Graduation & Award Certificates |
- Free Trial — 30-day trial on any plan. Full access during trial.
- Active — Paid subscription with an expiry date.
- Expired / Suspended — Users see a block page and cannot access the system. The public landing page remains visible.
When a feature is locked by your plan, its sidebar link shows a padlock icon and clicking any locked URL shows an Upgrade Required page listing what your current plan includes and a link to contact your administrator.
My Subscription & Plan — current plan status, active features grid, and side-by-side plan comparison with upgrade button.
Customise Your Landing Page NEW
Each school has a public-facing branded landing page shown to visitors and parents at your school URL. Admin and Headmaster users can customise it at Admin → Edit Landing Page.
- Hero tagline & subtitle — the main headline and text shown on the landing page.
- Colour theme — choose from Ocean Blue, Forest Green, Sunrise Orange, Royal Purple, Crimson Red, Dark Slate, or Ghana Gold. Also set exact primary and accent hex colours.
- Stats bar — three customisable stat labels and values (e.g. "500+ Students", "40+ Teachers").
- About section — a paragraph about your school and your founding year.
- Contact details — address, phone, email, Facebook URL, and WhatsApp number.
- Announcement banner — a coloured strip for notices such as "Enrolment now open".
- Admission CTA button — links to an external application form or the built-in admissions page.
Click Preview Live Page at the top to see your changes live. Toggle Landing Page Published off to hide the branded page and show a plain sign-in page instead.
School Profile
Set your school's name, motto, address, region, district, phone, email, logo, school type, GES circuit, proprietor, and headmaster via Admin Panel → Core → School Info.
Academic Year & Terms
Go to Admin → Academic Years & Terms to create or edit the school calendar.
For a fresh school, run this command on the server to create the current academic year, all three terms with GES dates, and all classrooms from Crèche to JHS 3 in one step:
python manage.py setup_school # For SHS schools: python manage.py setup_school --shs # Specific year and current term: python manage.py setup_school --year 2025/2026 --term 2 --shs
- Click Add Academic Year and enter the label (e.g. 2025/2026), start and end dates.
- Click Add Term under the year to create Term 1, 2, and 3 with their start/end dates.
- Click Set as Current next to the active term.
Classes & Subjects UPDATED
Go to Academic → Classes to view, create, and edit classrooms. Each class is linked to a grade level and an academic year. Add sections (A, B, C) for parallel streams.
Grade levels available: Crèche · Nursery 1 · Nursery 2 · KG 1 · KG 2 · Primary 1–6 · JHS 1–3 · SHS 1–3.
Click the amber Edit button on any classroom card (list page) or the Edit Class button in the classroom detail header. You can update the class name, grade level, section, class teacher, capacity, room number, and academic year.
Go to Academic → Assignment Hub to manage all teacher assignments in one place across three tabs:
- Class Teachers — assign a class teacher to each classroom. Filter by "No Teacher Yet" to spot gaps quickly.
- Staff User Links — link staff records to their system login accounts so they can access their portal.
- Subject Teachers — assign subject teachers per class-subject pair. Filter by class or search by subject name.
Subjects are managed at Academic → Subjects. Each subject has a code, category (Core / Elective / Extra-curricular), and department.
Students
Go to Academic → Students to manage all student records.
Both Student ID and Admission Number are now optional. Leave them blank when adding a student and the system auto-generates them in the format:
- Student ID —
STU-2025-0001 - Admission Number —
ADM-2025-0042
You can still type your own ID format — the auto-generation only triggers when the field is left blank.
Each student stores: name, gender, date of birth, nationality, religion, region of origin, photo, current class, admission date, NHIS number, guardian links, emergency contacts, residential address, and boarding status.
Guardians & Parents
Go to Academic → Guardians. A student can have multiple guardians (father, mother, uncle, etc.) through the StudentGuardian link. Guardians can be linked to a parent portal account.
Admission Applications
Prospective families can apply online via the public form at Apply for Admission on your school's landing page — no account required.
- Applicant fills in the form: student details, class applied for, and guardian information.
- Admin reviews pending applications at Academic → Admissions.
- Approve the application to convert it into a full student record, or reject with a note.
Staff
Go to Academic → Staff. Each staff record holds personal details, employment information, qualifications, bank details, SSNIT number, and a QR clock-in token.
Leave the Staff ID field blank when adding a new staff member. The system generates it automatically as EMP-2025-0001. Existing custom IDs are never overwritten.
User Account Management & Role Privileges
Go to Admin → User Management. Each system user has exactly one role which controls every page, button, and action they can access.
- Full access to every module: students, staff, academic records, fees, accounting, payroll, security.
- Approve and reject expenses submitted by Accountants.
- View and manage all user accounts across the school.
- Customise the school landing page and subscription settings.
- Export any dataset and access all financial analytics and reports.
- Reset any user password (except platform superusers).
- Manage school profile, academic year, terms, and classroom setup.
- Full access to every module identical to Director.
- Approve and reject expense submissions.
- Manage all users, registration requests, and role assignments.
- Assign class teachers and subject teachers via the Assignment Hub.
- Access all exports, analytics, and financial reports.
- Full access to students, staff, attendance, results, report cards, assignments, ID cards.
- Manage academic years, terms, classes, subjects, and timetables.
- View fees, payments, accounting, and financial reports -- but cannot collect or edit.
- Approve registration requests and manage user accounts.
- Import/export data. Access Assignment Hub.
- Cannot collect fees, add fee structures, or manage scholarships.
- Cannot add expenses, approve expenses, or edit accounting entries.
- Full access to students, staff, attendance, results, report cards, assignments.
- Manage classes, subjects, timetables, and score weight configuration.
- Print student and staff ID cards.
- Assign class teachers and subject teachers via the Assignment Hub.
- Import student/staff data. Access data export for academic datasets.
- Manage user accounts for academic staff roles.
- No access to fees, payments, receipts, accounting, payroll, or any financial module.
- Cannot see the Finance or Accounting sidebar sections.
- View all student and fee records.
- Collect fees and issue receipts for any student.
- Create and manage fee structures, scholarships, and service plans.
- Record other income (grants, donations, etc.).
- Submit expenses for approval -- expenses remain Pending until an Admin or Director approves them.
- Full access to accounting: chart of accounts, journal entries, trial balance, budgets, bank reconciliation.
- Process payroll for all staff.
- Export financial reports and access the Financial Analytics dashboard.
- Import and manage arrear balances.
- Cannot approve their own (or any) expense submissions -- approval is reserved for Admin/Director.
- No access to student results, report cards, or academic management.
- Add, edit, and import student records and guardian information.
- Manage admission applications and registration requests.
- View staff records (cannot edit).
- Collect fees and print receipts for students.
- View fee dashboard and defaulter reports (cannot manage fee structures).
- Print student and staff ID cards.
- View attendance reports.
- View user accounts (cannot create, edit, or reset passwords).
- Export student, fee, and attendance data.
- Cannot add or approve expenses, manage accounting, or access payroll.
- Cannot enter results or manage academic settings.
- View student list and student profiles (read-only).
- Mark attendance for assigned classes.
- Enter and edit term results for assigned subjects.
- Create, assign, and print assignments and question papers.
- View and print report cards for own students.
- Access the Teacher Portal for a simplified daily workflow.
- View own timetable.
- Export results and attendance for own classes.
- No access to fees, payments, accounting, or financial data.
- Cannot edit student records, manage admissions, or access admin settings.
- Operate the Gate Kiosk -- clock students and staff in/out via QR or PIN.
- Check visitors in and out, record visitor purpose and host.
- Manage authorised student collectors and record student collections.
- View campus zones and zone movement logs.
- Access the Security Portal.
- No access to student academics, fees, accounting, or administrative functions.
- View the list of students enrolled in feeding / daily service plans.
- Mark daily feeding attendance (present / absent).
- View school notices and dashboard announcements.
- No access to student records, fees, finance, results, or any other module.
- View own children's daily attendance and summary.
- View outstanding fees and payment history for own children.
- View term results and download report cards for own children.
- Manage authorised persons who may collect their child from school.
- View school notices addressed to parents.
- Cannot see any data for other students.
- No access to staff records, financial management, or administration.
- View own timetable and class schedule.
- View own term results once published.
- View school notices addressed to students.
- No access to any administrative, financial, or staff-facing feature.
Admins and Directors can create accounts directly from Admin → User Management → Add User or approve self-registration requests at Admin → Registration Requests. Each user is automatically tagged to the school they registered through -- they cannot see users or data from other schools.
Admin and Director can reset any user's password from the User Management list. Platform administrator (superuser) passwords cannot be changed by school-level admins for security. Any user can change their own password via Account → Change Password.
Each school's user list only shows users registered under that school. Superusers (platform admins) appear in every school's list but show a "Platform Admin" badge -- their Edit and Reset buttons are hidden for school-level viewers.
Users created before the school-scope migration have no school assigned. Run this command once per school to fix them:
python manage.py assign_user_school --slug your-school-slug python manage.py assign_user_school --slug your-school-slug --dry-run # preview
Attendance Tracking
Go to Records → Attendance. Teachers mark attendance for their assigned class each school day.
- Select your class and the date (defaults to today).
- The full class list loads automatically. Click each student's status: Present (P), Absent (A), or Late (L).
- Add a reason for absences using the notes field beside each student.
- Click Save Attendance. The record is timestamped with who marked it.
- Daily roll — shows who is present, absent, or late for a given day.
- Term summary — shows total days present, absent, and late for each student. Used for report card attendance figures.
- Low attendance alerts — students below a threshold (configurable) are flagged automatically.
- Filter any report by class, date range, or individual student.
Attendance marking — tick Present, Absent, or Late per student, add excuse notes, and see the weekly class overview.
QR / PIN Clocking
The gate kiosk at Clocking → Gate Kiosk allows students and staff to clock in/out by scanning their ID card QR code or entering their 4-digit PIN.
QR codes on ID cards now encode the full school-specific URL including the school slug (e.g. /s/hill-spring/portal/clock/scan/TOKEN/). This ensures QR scans from any device — phone, tablet, or dedicated scanner — correctly identify the school and clock the right person.
Each student and staff member also has a 4-digit PIN (last 4 digits of their ID, or a random number). PINs work offline and on the mobile clock page.
Staff and students can clock themselves in on their own phones at Clocking → Mobile Clock. No login required — just scan or enter PIN.
QR / PIN Gate Kiosk — students scan their ID card QR code or enter their 4-digit PIN to clock in. A green card confirms with name and time. Works fully offline.
Fees & Payments UPDATED
Go to Finance → Fees Dashboard. The system supports multi-term fee structures, bulk fee assignment, scholarships, bulk payment, advance payments, and service plans.
Use Finance → Collect Fees to record a single payment for one fee item. Type the student's name or admission number, select the outstanding fee, enter the amount, choose the payment method (Cash, MoMo, Bank, Cheque), and save. A printable receipt is generated automatically.
Use Finance → Bulk Payment to pay multiple fee items for one student in a single session — useful when a parent is clearing term fees, building fund, and PTA levy all at once.
- Search for the student by name or admission number.
- All outstanding fee items are shown in a table. Type the amount to pay into each row, or click ✓ to fill the full balance. Click All to fill every fee at once. A running total updates live.
- Choose payment method, date, and optional reference, then click Record Bulk Payment.
Each fee item gets its own receipt. If only one fee is paid you go directly to the receipt; if multiple fees are paid you return to the student's fee summary with a total confirmation.
Define fees per class per term at Finance → Fee Structure. Fee types include Tuition, Building Fund, Sports, Uniform, Library, PTA, Examination, Boarding, and Lunch. Use Auto-Assign Fees to apply a fee structure to all students in a class at once. Scholarships are applied automatically when fees are assigned.
If a fee was applied to the wrong student or class, cancel it rather than delete it. Go to the student's fee page and click the red button on the fee card, or use Finance → Cancel Fees for bulk cancellation across a class. See the Fee Cancellation section for full details.
You can bulk-create fee structures by importing a spreadsheet at Academic → Import Data → Fee Structures. Download the template to get the correct column format. The class column is optional — leave it blank to create a fee that applies to all classes; enter a class name to make it class-specific. The term column must match an existing term (e.g. "Term 1 2025/2026").
Create scholarships at Finance → Scholarships and award them to individual students. Coverage can be a fixed GHS amount, a percentage, or full waiver.
Auto-application: Discounts now apply automatically when a scholarship is awarded or when fees are assigned — you no longer need to manually trigger the discount. To fix any student whose discount isn't showing:
- Open the student's fee page. Their active scholarships appear as green badges in the header.
- Click the Re-apply button next to the scholarship badge.
- All matching fee rows are updated instantly and the discount appears in the fee table.
To re-apply all scholarships across all students at once, use Finance → Scholarships → Re-Apply All.
Fee receipt — a printable A4 receipt with letterhead, amount, student details, balance, and signature lines. Also available in PDF and 80mm thermal formats.
Bulk Payment NEW
Access via Finance → Bulk Payment, or the green Bulk Pay button on any student's fee page.
Bulk Payment lets you record payments for multiple outstanding fees in one session — ideal when a parent is settling all their arrears at once.
- Search for the student by name, ID, or admission number. Click their name from the list.
- All outstanding fee items are displayed in a table showing the remaining balance and any scholarship discount applied. Type the amount to pay for each row, or click ✓ to fill the full balance for that fee. Click All to fill every fee at once.
- A running total at the bottom shows the combined amount being entered. The Record Bulk Payment button activates as soon as any amount is entered.
- Select the payment method, date, and optional transaction reference, then submit.
Each fee item gets its own individual receipt so records stay clean. If one fee is paid you are taken straight to the receipt; if multiple fees are paid you return to the student's fee summary with the combined total confirmed.
Scholarships & Discounts UPDATED
Go to Finance → Scholarships. Scholarships reduce a student's fee balance automatically once awarded.
Click Add Scholarship. Set the coverage type:
- Percentage (%) — e.g. 50% discount on applicable fees
- Fixed Amount (GHS) — a fixed GHS reduction per fee item
- Full Coverage — entire fee amount waived
Use the Applies to fee types field to restrict the scholarship to specific fee categories (e.g. tuition,exam). Leave blank to apply to all fee types.
On the scholarship detail page click Award to Student. Search for the student and confirm. The discount is applied immediately to all matching fee rows — no extra step needed.
If discounts aren't showing on a student's fee page, click the Re-apply button next to their scholarship badge. This forces a recalculation across all their fee rows. To bulk-fix all students at once, use Finance → Scholarships → Re-Apply All.
Arrear Balances
Schools migrating from a previous system can import outstanding balances from prior terms at Finance → Arrear Balances → Import Arrears. Arrears are tracked separately from current-term fees so they do not affect term reports or auto-fee assignments.
- Prepare a
.xlsxor.csvfile with columns: admission_number, amount, and optionally description, academic_year, notes. - Upload the file and set a default academic year and description for rows that don't have them.
- Click Preview to review each row — green OK rows are valid, red Error rows show what's wrong.
- Click Confirm Import to save all valid records.
Go to Finance → Arrear Balances. Use the filter to show Outstanding only, All, or Cleared records. Each arrear record expands to show its full payment history with receipt links.
Three KPI cards at the top show Total Outstanding, Total Collected, and Total Imported across all records.
Click the green Pay button on any outstanding arrear. The payment modal lets you enter the amount, payment method (Cash, MoMo, Bank, Cheque), a transaction reference, and optional notes. Clicking Save & Issue Receipt creates the payment and immediately opens the printable receipt.
Arrear balances also appear at the bottom of each student's individual fee page (Finance → Student Fees), where the same Pay modal is available and payment history is shown inline.
Click the pencil button on any arrear row to open the Edit modal. You can correct the Description, Academic Year, Original Amount, and — importantly — the Amount Paid field. The Amount Paid field lets you directly correct a wrong balance without needing to delete and re-enter payment records. A live balance summary bar shows the calculated balance as you type.
Click the red button to delete an entire arrear record (and all its payments). To delete a single payment, click the button on the payment row in the payment history table — the amount is automatically reversed from the balance.
Arrear Receipts & Payment Management
Every arrear payment generates a numbered receipt (prefix ARR). The receipt page is a standalone printable document styled to match regular fee receipts.
Click the Receipt button on any payment row in the arrear payment history table. The receipt shows: school letterhead, receipt number and date, student details, arrear description, amount paid (with method icon), balance summary, full payment history for that arrear (with the current payment highlighted), and a signature section.
Two print formats are available from the receipt action bar:
- Print — prints the full A4 receipt. The action bar is hidden automatically when printing.
- Thermal — opens a 80mm thermal receipt in a new tab, formatted for ESC/POS thermal printers. Use your browser's Print function (Ctrl+P) to send it to the printer.
Click the amber Edit button in the receipt action bar. The edit modal lets you correct the amount, payment method, payment date, transaction reference, and notes. After saving, the receipt page reloads showing the updated figures.
The maximum amount you can set is the current payment amount plus any remaining balance on the arrear — you cannot overpay.
Click the red Delete button in the action bar and confirm. The payment record is removed and the amount is reversed from the arrear balance. You are redirected to the Arrear Balances list.
Comprehensive Financial Summary
Go to Finance → Summary & Analytics for a complete overview of all income and expenditure streams. Use the term selector to view a specific term or select All Terms for a cumulative school-wide view. Click Print to print the page, or Export Excel to download a workbook.
A dark header strip always shows four headline figures regardless of scroll position: Total Income (all streams combined), Total Expenditure (expenses + payroll), Net Surplus (income minus expenditure, red if negative), and Total Receivable (outstanding fees + outstanding arrears).
| Card | What it shows |
|---|---|
| Fee Collections | Term fees collected, collection rate progress bar, defaulter count, total discounts applied via scholarships |
| Arrear Collections | Arrear payments received in the selected period, total arrear debt still outstanding, number of open vs cleared records |
| Service Income | Feeding and transport plan payments, broken down by plan name |
| Other Income | Grants, donations, facility rentals, government subventions — broken down by type |
| Card | What it shows |
|---|---|
| Approved Expenses | All approved expenses by category. Pending-approval amount is flagged separately in amber. |
| Staff Payroll | Paid payroll net pay total, gross pay, deductions (SSNIT, tax), and a month-by-month breakdown with staff count |
| Scholarships & Discounts | Total fee revenue foregone through active scholarship awards this term — helps quantify the true cost of bursary programmes |
- Income vs Expenditure — doughnut comparing total income against total expenditure.
- Income by Stream — doughnut breaking income into the four streams (fees, arrears, services, other).
- Payment Methods — doughnut of Cash vs MoMo vs Bank vs Cheque across all payment types.
- Daily Fee Trend — bar chart of GHS collected per day over the last 30 days. Identifies peak collection days.
- Expense Breakdown — horizontal bar chart of approved spending by category.
A detailed table lists every fee type with Expected, Discount, Collected, Owed, and a colour-coded progress bar. In All-Terms mode each row includes the term name so you can compare across periods.
Only shown when a specific term is selected. Progress bars turn red below 50%, amber 50–80%, green above 80% — useful for targeting follow-up calls with specific classes.
Two tabs at the bottom show the latest 15 fee payments and latest 10 arrear payments, each with a direct Receipt link.
Select All Terms from the term dropdown to aggregate data across the entire school history. Fee breakdown rows show the term name alongside the fee name. Per-class breakdown is hidden in this mode as it is only meaningful within a single academic year.
Comprehensive Financial Summary — all income and expenditure streams, KPI cards, payment methods, and fee breakdown in one view.
Expense Approval Workflow NEW
Expenses recorded by the Accountant do not post immediately -- they require approval by an Admin or Director before counting in the Net Surplus figure.
- Accountant records an expense: Finance → Expenses → Add Expense. Saved as Pending.
- Admin or Director opens the expense list. Pending rows show a yellow badge and Approve / Reject buttons.
- Click Approve -- the expense is posted and included in financial reports. Click Reject to decline it.
Daily Services (Feeding & Transport)
Go to Finance → Service Plans. Create service plans (Feeding, Transport, etc.) and enrol students. Daily attendance is marked per student at Clocking → Gate Dashboard → Daily Services. Payments are collected per term in advance or daily.
Results & Grades
Go to Records → Results. Teachers enter class scores and exam scores per subject. The system automatically calculates the weighted total and assigns the GES grade (A1–F9).
- Go to Records → Results → Enter Scores and select the class, subject, and term.
- The student list loads. Enter the Class Score (continuous assessment) and Exam Score for each student.
- The system computes the weighted total using the configured weights (default 30% class / 70% exam for most levels). The GES grade is assigned automatically.
- Click Save Scores. You can return and edit until results are published.
| Score Range | Grade | Remark |
|---|---|---|
| 80 – 100 | A1 | Excellent |
| 70 – 79 | B2 | Very Good |
| 65 – 69 | B3 | Good |
| 60 – 64 | C4 | Credit |
| 55 – 59 | C5 | Credit |
| 50 – 54 | C6 | Credit |
| 45 – 49 | D7 | Pass |
| 40 – 44 | E8 | Pass |
| 0 – 39 | F9 | Fail |
- Click a class from the Results Dashboard.
- Select a subject from the left panel.
- Enter Class Score and Exam Score for each student. Totals and grades update live as you type.
- Use Enter to move to the next student without lifting your hands from the keyboard.
- Click Save All Grades. An unsaved-changes counter tracks any modifications before saving.
A progress bar in the header counts how many students have been scored in the current subject. Saved rows show with a green tint; unsaved changes turn amber. The browser will warn you before navigating away with unsaved scores.
Report Card — GES-format with Ghana flag stripe, subject scores, grade badges, class position, teacher remarks, and signature lines.
Score Weight Configuration NEW
By default the system uses the Ghana GES standard: 30% Class Score + 70% Exam Score. Admins and Headmasters can change this ratio at Records → Score Weights.
Enter the Class Score weight — the Exam Score weight automatically adjusts to make the total 100%. A live validation indicator turns green when valid and red if they don't sum to 100. Quick preset buttons provide common splits: 30/70, 40/60, 50/50, 60/40, and 20/80.
The current weights are shown in the header of the grade-entry page so teachers always know which split is in effect.
Report Cards & ECD UPDATED
After entering all scores, go to Results → Generate Grades to compute positions, class averages, and overall remarks for every student in the class. Report cards are generated automatically.
Print individual report cards from the student's results page, or print the full class batch. The report card shows all subject scores, grades, teacher remarks, class/overall position, conduct, attitude, and head teacher remarks — all auto-generated from the results data.
All report cards (standard, ECD, batch, and evolution) now use your school's brand colours set in Admin → School Profile → Edit → Brand Colours. The header, table backgrounds, grade badges, and highlight boxes all update to match. See the Brand Colours section for setup instructions.
Click the 🎨 Colour / B&W toggle button on any batch report page to switch all cards to greyscale before printing — useful for monochrome printers.
For Crèche, Nursery, and KG students, use the Records → ECD Reports checklist-style report card that covers developmental skills: language, physical development, social skills, mathematics, and art.
Access from the Results Dashboard or Batch Report Cards toolbar. Evolution reports show a student's performance across all three terms on a single A4 landscape page — with trend arrows, highlight panels, and attendance. ECD evolution reports show skill ratings across terms. See the Evolution Reports section.
Assignments & Question Bank
Go to Records → Assignments. Teachers create assignments, build a question bank, and print formatted question papers.
Accounting
Go to Accounting → Dashboard. The accounting module is a full double-entry bookkeeping system designed for school finance.
Go to Accounting → Chart of Accounts. All financial transactions must be posted to an account. Accounts are organised into five types:
| Type | Description | Examples |
|---|---|---|
| Asset | Things the school owns | Cash, Bank, Equipment, Receivables |
| Liability | Things the school owes | Salaries Payable, Loans, SSNIT |
| Equity | Net worth / retained surplus | Retained Earnings, Opening Balance |
| Revenue | Income earned | Tuition Fees, Grants, Donations |
| Expense | Money spent | Salaries, Maintenance, Supplies |
If the chart is empty, click Load Default Accounts to seed ~50 standard Ghana school accounts. You can add custom accounts at any time. System accounts (marked "System") cannot be deleted.
Go to Accounting → Journal Entries → New. All transactions are recorded as journal entries with at least two lines: one debit and one credit. The entry must balance (total debits = total credits) before it can be posted.
- Select the entry type (General, Fee Income, Expense, Payroll, etc.) and fill in the description and date.
- Add debit and credit lines, each linked to an account in the chart of accounts.
- Click Save as Draft to keep editing, or Post Entry to finalise. Posted entries cannot be edited — they must be reversed.
- Trial Balance — lists every account with its debit/credit total. Used to verify the books are balanced.
- Income Statement (P&L) — Revenue minus Expenses for a period. Shows whether the school is operating at a surplus or deficit.
- Balance Sheet — Assets = Liabilities + Equity at a point in time.
- General Ledger — every transaction line for any account in date order.
- Cash Flow — movement of cash in and out.
Payroll
Go to Finance → Payroll. Generate monthly payslips for each staff member based on their basic salary, allowances, and deductions (SSNIT, income tax). Print individual payslips or export the full payroll summary.
Data Export
Go to Admin → Data Export. Export any dataset to Excel: students, staff, payments, defaulters, results, attendance, scholarships, expenses, income, users, accounting entries, clocking records, and more. Exports include all relevant columns formatted for further processing in Excel.
Role Portals
Every user has a dedicated portal accessible via My Portal. Portals are simplified views showing only what's relevant to that role.
| Portal | Key Features |
|---|---|
| Teacher Portal | My classes, attendance marking, results entry, timetable, assignments |
| Parent Portal | Children's attendance, fees, results, report cards, authorised pickups |
| Student Portal | Own timetable, results, and notices |
| Accountant Portal | Fee dashboard, quick collect, expense recording, financial reports |
| Security Portal | Gate kiosk, visitor check-in, student collections, campus zones |
Gate & Visitor Management
Go to Security → Gate / Pickup. Security staff manage who collects students and log visitors entering the campus.
- Student Collections — record who collected a student and at what time.
- Authorised Collectors — manage the list of approved people who can pick up each student.
- Visitor Log — check visitors in/out with name, host, purpose, and photo.
- Campus Zones — define entry zones and log zone movements.
- Gate Kiosk — a full-screen QR / PIN clocking terminal designed to run on a dedicated tablet at the gate.
ID Cards UPDATED
Print credit-card-sized (CR80 85.6×54mm) ID cards for students and staff. Go to Admin → Student ID Cards or Admin → Staff ID Cards.
Front side shows: full name, class badge, Student ID, Admission Number, date of birth, gender, NHIS number, school contact details, QR code (scan to clock in), PIN, and academic year.
Front side shows: full name, position badge, Staff ID, GES number, qualification, employment date, phone, school phone, and QR code for clock-in.
Student cards can be filtered by class. Staff cards can be filtered by position and status (Active / On Leave / Inactive). The print button shows the count before you send to printer. Cards print 2–4 per A4 page with crop marks.
Data Import UPDATED
Go to Academic → Import Data to bulk-import records from Excel or CSV files. Download a pre-formatted template for each type directly from the import page.
| Type | Key columns | Notes |
|---|---|---|
| Students | first_name, last_name, class, gender, admission_number | admission_number optional — auto-generated if blank |
| Guardians | first_name, last_name, relationship, phone, student_admission | Links guardian to student via admission_number |
| Teachers | first_name, last_name, staff_id, phone, qualification | staff_id optional — auto-generated if blank |
| Subjects | name, code, category, is_examinable | category: core / elective / extra |
| Class Subjects | class, subject, periods_per_week | Links subjects to classrooms |
| Arrear Balances | admission_number, amount, description, academic_year | Carried-forward outstanding fees |
| Fee Structures | name, fee_type, amount, term, class | Leave class blank for all-class fees; term must match existing |
| Results | admission_number, subject_code, class_score, exam_score, term | Template for bulk results entry |
.xlsx, .xls, .csv, or .json. All templates download as styled .xlsx files with example rows.
Class names in the file are matched flexibly — JHS 1, JHS1A, jhs 1 a all resolve correctly. Three matching passes are attempted: exact, whitespace-insensitive, and prefix partial.
The term column is matched to existing terms (e.g. "Term 1 2025/2026"). The class column is optional — leave blank to create a school-wide fee that applies to all classes. Existing fee structures are not duplicated (get_or_create is used).
Click the Load GES Defaults button on the import page to instantly seed all standard GES subjects and link them to every classroom in the current academic year — no file needed.
Offline Mode
Wisdsol Edu Advance is a Progressive Web App (PWA). It can be installed on any device and continues to work when your internet connection drops — including in areas with unreliable mobile data. Data entered offline is stored securely in the browser and synced automatically when connectivity is restored.
- A red banner at the top of every page appears when you are offline.
- The sync badge in the navbar turns amber with a count when items are queued, spins blue while syncing, and flashes green when all data is saved.
- QR scanning works fully offline using the cached jsQR library.
- Previously visited pages are served from the browser cache instantly.
| Feature | Works offline? |
|---|---|
| Mark attendance | ✅ Queued and synced on reconnect |
| Student / staff clocking (QR & PIN kiosk) | ✅ Queued and synced on reconnect |
| Record fee payment | ✅ Queued and synced on reconnect |
| Enter exam / term scores | ✅ Queued and synced on reconnect |
| Record expense | ✅ Queued and synced on reconnect |
| Record other income | ✅ Queued and synced on reconnect |
| Visitor check-in | ✅ Queued and synced on reconnect |
| Security collection | ✅ Queued and synced on reconnect |
| Record pickup | ✅ Queued and synced on reconnect |
| View cached pages | ✅ Any page previously visited |
| Print receipts | ✅ If receipt page was previously opened |
| Generate report cards | ❌ Requires server connection |
| Upload files / photos | ❌ Requires server connection |
- When you submit a form while offline, the data is saved to the browser's IndexedDB storage and a toast notification confirms "Saved offline — will sync when back online."
- When internet is restored, the app pings the server within 8 seconds to confirm real connectivity.
- The sync badge spins and all queued items are sent to the server in one batch.
- The server replays each form through the normal Django views so all validation, permissions, and business logic runs exactly as if you had submitted online.
- Successfully synced items are removed from the queue. A green toast confirms "Back online — X changes synced."
The install option appears differently depending on your browser and device:
| Device / Browser | How to install |
|---|---|
| Chrome on desktop | Look for a computer-with-down-arrow icon in the address bar (far right). If not visible, click the three-dot menu (⋮) → Save and share → Install page as app. |
| Edge on desktop | Click the three-dot menu (…) → Apps → Install this site as an app. |
| Chrome on Android | Tap the three-dot menu (⋮) → Add to Home screen → Install. The app icon appears on your home screen. |
| Safari on iPhone / iPad | Tap the Share button (box with arrow at bottom of screen) → scroll down → Add to Home Screen → Add. |
| Firefox on desktop | Firefox does not support PWA install. Use Chrome or Edge instead. |
Multi-School Support
The platform supports multiple independent schools. Each school has its own isolated SQLite database under tenant_dbs/school-slug.sqlite3. Schools share no data with each other.
- Add the school to the School Registry in Django Admin (Admin Panel → School Registry → Add).
- Add a subscription record in Admin → Subscriptions → New Subscription.
- Visit the school URL — the database is created and migrated automatically on first access.
- Run
python manage.py setup_schoolinside the school context to create default classes, terms, and academic year.
# If existing DBs have auth table issues: python manage.py fix_tenant_auth python manage.py fix_scoreweight python manage.py migrate_all_schools
Fee Cancellation NEW
Administrators and Accountants can cancel a fee that was wrongly applied to a student. Cancelled fees are excluded from all balance calculations — dashboards, defaulter reports, receipts, and report cards — but kept permanently for audit.
- Open the student's fee page via Finance → [Student Name].
- Click the red Cancel button on the fee card you want to remove.
- A modal appears. Enter a reason (required — saved permanently for audit).
- If the fee has payments recorded, tick Force cancel anyway to proceed. Payments remain on record.
- Click Cancel This Fee. The fee moves to a strikethrough "Cancelled Fees" table at the bottom of the page.
In the "Cancelled Fees" table at the bottom of the student's fee page, click Reinstate next to the relevant row. The fee is immediately restored and included in balance calculations again.
Use Finance → Cancel Fees (button in Finance Dashboard header) or Finance → Fee Structure → Bulk Cancel to cancel one fee structure across multiple students at once.
- Select the Fee Structure to cancel from the dropdown. Optionally filter by Class.
- A preview table shows every student with that fee assigned (already-cancelled and fully-cancelled rows are excluded). Their paid / balance amounts are shown so you can make an informed decision.
- Tick the checkboxes for students whose fee you want to cancel. Use All / None to select or deselect all at once.
- Enter a reason and click Cancel Selected Fees. A confirmation prompt shows the count before committing.
Once a fee is cancelled, it is automatically excluded from:
- Finance Dashboard — expected revenue, collected, outstanding, and collection rate totals
- Financial Summary / Analytics — all per-term and per-class breakdowns
- Defaulters report — cancelled fees never appear as outstanding
- Payment receipts — overall balance and outstanding sidebar exclude cancelled fees
- Report cards — term fees, arrears, and overall balance on report cards and ECD report cards
- Excel export — financial export sheets use non-cancelled figures only
Assigning Fees to Students UPDATED
Fees can be assigned to students individually (from the student's fee page) or in bulk (via Auto-Assign for a whole class).
- Open the student's fee page: Finance → [search student] → [Student Name].
- Click Assign Fee (the blue button in the fee summary area).
- Use the Term dropdown to filter fee structures by term. Defaults to the current term.
- A card grid shows all available fee structures. Already-assigned fees appear as grey dashed cards with a green ✓ Assigned badge — they cannot be selected again.
- Click any card (or its checkbox) to select it. Use Select All to tick everything available. A running counter shows how many are selected.
- Click Assign Selected Fees. The page reports how many were created and how many were already assigned (skipped).
Use Finance → Fee Dashboard → Auto-Assign Fees to assign all mandatory fee structures for the current term to every active student in a class at once. Optionally include non-mandatory fees by ticking Include Optional Fees.
Defaulters Report UPDATED
Go to Finance → Defaulters. The report lists every student with an outstanding (unpaid) fee balance — cancelled fees are automatically excluded.
- Term filter — defaults to the current term. Select any previous term to see historical defaulters, or clear to see all terms at once.
- Class filter — narrow to a single classroom.
- Search bar — type a student name or class to instantly filter the table.
Three stat cards update live with the filters: Defaulting Students, Total Outstanding (GHS), and Total Collected (GHS) for the filtered set.
Click Collect on any row to go directly to the payment recording page for that fee. Click 👁 View to open the student's full fee summary.
Academic Evolution Reports NEW
Evolution reports give a term-by-term view of every student's academic progress across a full year — one A4 landscape page per student.
Access via Results Dashboard → [Class Card] → Academic Evolution Report, or from the Batch Report Cards toolbar.
- Shows each subject's score for Term 1, Term 2, and Term 3 side by side.
- Trend arrows — ▲ (improved) / ▼ (declined) / – (unchanged) compared to previous term.
- Highlight panels — Most Improved Subject, Highest Average, overall trend indicator (Improving / Declining / Steady).
- Attendance summary per term with percentage bar.
- School brand colours applied via the colour customisation settings.
Access via ECD Reports → [Class Card] → Evolution.
- Shows each developmental skill's rating (G / S / P / NI etc.) across all terms in a compact table.
- Skills are grouped by domain: Social Skills, Language Oral, Language English, Reading Readiness, Mathematics, and Development in Art.
- Trend arrows and a "Best" column show the most consistent rating achieved.
- Teacher remarks from each term's report are included in the sidebar.
A dropdown at the top of both evolution reports lets you select any academic year. The report automatically loads all terms and scores for that year.
School Brand Colours NEW
Customise the colours used across all printed report cards, batch reports, and evolution reports to match your school's identity. Go to Admin → School Profile → Edit.
| Field | Used for | Default |
|---|---|---|
| Primary Colour | Report card headers, table backgrounds, section titles, borders | #0f1e3d (navy) |
| Primary (Light) | Gradient shading and hover states on dark headers | #1a2f5a |
| Accent Colour | Grade badges, score boxes, key highlights, toolbar print button | #c9a84c (gold) |
| Accent (Light) | Text on dark backgrounds (e.g. badge text, column headers on dark) | #f0d896 |
- Go to Admin → School Profile → Edit School Information.
- Scroll to the Report Card Brand Colours section near the bottom of the form.
- Click a colour swatch or type a hex value (e.g.
#1a2744) into the text box. Both controls stay in sync. - A live preview strip updates in real time showing the report header and a sample grade badge using your chosen colours.
- Click ↺ Reset to default navy/gold to restore all four fields to the defaults at once.
- Click Update School Information to save. All reports will use the new colours immediately — no restart needed.
#RRGGBB). Invalid values are silently rejected and the previous colour is kept. The live preview will only update when a valid hex is entered.- Individual Report Cards (standard and ECD)
- Batch Report Cards (class printing)
- Batch ECD Report Cards
- Academic Evolution Reports (standard and ECD)
The QR code on report cards always uses dark navy regardless of colour settings, since QR codes require high contrast to scan reliably.
Graduation & Award Certificates NEW 🔒 PREMIUM
Two certificate tools are available under Administration in the sidebar:
Go to Administration → Graduation Certificates (or click the Certificate button on any student's detail page).
- Single student — Select one student and click Generate & Print. The certificate opens in a new tab immediately.
- Bulk print — Toggle Bulk print, tick students (use the class filter to quickly select a whole class), then click Generate & Print. Every selected student gets their own full-page certificate; the browser prints them all in one job.
- Colour scheme — Pick from 8 one-click presets (Classic Gold, Royal Blue, Emerald, Crimson, Purple, Teal, Rose Gold, Midnight) or customise each colour individually with a colour picker or hex code. A live preview strip updates as you select.
- The certificate includes the school logo (header + watermark), school motto, student photo, student details, academic year, Ghana flag bars, ornamental corner frames, and signature blocks.
- Certificates are printer-ready (A4 landscape). Print controls disappear automatically when printing.
Go to Administration → Award Certificates.
- Recipient types — Student, Staff, Parent, or Other (free-text name).
- Award categories — Best of the Week / Month / Year, Best Performance, Best Attendance, Best Behaviour, Academic Excellence, Most Improved, Leadership, Community Service, or a fully custom award title.
- Period — This Week, Month, Term, Year, or Special Occasion.
- Bulk print — Toggle bulk mode to select multiple recipients at once. Use All / None buttons and the class filter. Click Bulk Print All Selected to generate all certificates in one print job.
- Attendance suggestions — A gold banner automatically appears showing the top students (≥ 95% attendance in the current term). Click any name to pre-fill them as the recipient with the Best Attendance award and their exact percentage in the note field.
- Colour scheme — Same 8 presets plus individual pickers for Primary, Accent, Background, Text, and Ribbon colours. Live preview updates instantly.
- Additional note — An optional personalised message appears as an italicised quote block on the certificate.
Both certificate types share the same design language:
- A4 landscape, print-optimised with page-break controls for multi-page jobs.
- Ghana flag tricolour bars at top and bottom.
- School logo displayed in the header ring and as a large transparent watermark centred on the page.
- Ornamental corner flourishes and wavy gold rule dividers.
- Three signature blocks: Headmaster (auto-filled from staff records), Official Seal (uses school logo), and recipient (uses their photo if available).
- All colours controlled by CSS variables — changing the scheme updates every element consistently.
| Role | Graduation Cert | Award Cert | Bulk Print |
|---|---|---|---|
| Admin / Headmaster | ✓ | ✓ | ✓ |
| Secretary | ✓ | ✓ | ✓ |
| Accountant | ✓ | ✓ | ✓ |
| Teacher | ✓ | ||
| Parent / Student |
All roles above require an active Premium subscription. Without it, the pages show an upgrade prompt and no certificate can be generated.
Q: The certificate page loads but fonts look plain.
A: The system uses built-in device fonts (Georgia / Times New Roman / Palatino) for instant loading — no internet connection is required for fonts. The design is intentional.
Q: The student photo doesn't appear on the certificate.
A: Go to the student's profile and upload a photo. Only students with an uploaded photo show a photo in the signature block; others show a placeholder icon.
Q: Bulk print shows a blank page between certificates.
A: This is controlled by page-break-after: always in CSS. Some printers add a blank page. In Chrome: File → Print → uncheck "Print headers and footers" and set margins to None.
Q: Can I remove the Ghana flag stripes?
A: Not from the builder UI — the stripes are part of the fixed design. If you need a custom layout, contact support.
Frequently Asked Questions
Q: A fee was assigned to the wrong student or class. How do I remove it?
A: Use the fee cancellation feature — do not try to delete the fee. Open the student's fee page, click the red button on the fee card, enter a reason, and confirm. The fee is hidden from all balance calculations immediately but kept for audit. To cancel the same fee across an entire class, use Finance → Cancel Fees → Bulk Cancel.
Q: I cancelled a fee by mistake. How do I restore it?
A: Scroll to the "Cancelled Fees" table at the bottom of the student's fee page and click Reinstate. The fee is restored immediately.
Q: The Finance Dashboard still shows the cancelled fee in the totals.
A: Make sure the latest version of fees/views.py has been deployed. After deployment all dashboard figures, analytics, receipts, and report cards automatically exclude cancelled fees.
Q: A student has a scholarship but the discount isn't showing on their fees.
A: Open the student's fee page. You'll see their active scholarship badge in the header. Click the Re-apply button next to it. This forces the discount to recalculate across all their fee rows. If the problem affects many students, use Finance → Scholarships → Re-Apply All.
Q: How do I record a payment that covers multiple fees at once?
A: Use Finance → Bulk Payment. Search for the student, enter the amount for each outstanding fee, and submit once. Each fee gets its own receipt number internally.
Q: Fee auto-assign created records but scholarships weren't applied.
A: This is now fixed automatically — when fees are assigned, any active scholarships are applied immediately. For existing records created before this fix, use the Re-Apply All button.
Q: The Chart of Accounts page is empty.
A: Go to Accounting → Chart of Accounts and click Load Default Accounts. This seeds ~50 standard Ghana school accounts. You can also add accounts manually or import via Accounting → Import Finance Data.
Q: I recorded an expense but it's not showing in the Net Surplus figure.
A: Expenses require approval by an Admin or Director before they count toward financial reports. An Admin or Director must open Finance → Expenses and click Approve on the pending entry.
Q: How do I link revenue/income to the chart of accounts?
A: When importing income via Finance → Other Income → Import Income, include an account_code column in your file matching the account code from the chart of accounts. You can also enter this manually when recording individual income entries.
Q: I imported students but they aren't assigned to a class.
A: Check the class column in your import file. Ensure the class name matches an existing classroom in the current academic year. The system tries three matching methods: exact, whitespace-insensitive, and partial prefix. If still failing, check that the academic year has been set up and classrooms added under Academic → Classes.
Q: How do I set a student's class teacher?
A: Go to Academic → Assignment Hub → Class Teachers tab. Use the dropdown to select a teacher for each class and click Save.
Q: QR codes on ID cards aren't scanning correctly.
A: If cards were printed before the QR URL fix, reprint them. Old QR codes didn't include the school slug in the URL, so they fail on external devices. After reprinting, all new cards will scan correctly on any device.
Q: A teacher can log in but can't access their portal.
A: The teacher's user account must be linked to their staff record. Go to Academic → Assignment Hub → Staff User Links tab and click Link Account next to the teacher's name.
Q: Migration fails with "invalid foreign key" error.
A: Run python manage.py fix_tenant_fks to null out any orphaned FK references, then retry migrate_all_schools.
Q: A new school's setup is incomplete — missing classes or subjects.
A: Run python manage.py setup_school --slug <slug>. This creates the current academic year, three terms, all 17 classrooms (Crèche → SHS 3), and seeds GES default subjects automatically.
Contact Support
Wisdsol Support
Reach us through any of the channels below. Please include your school name and a description of the issue.