School dashboard
Pick a term to see the full picture β top-line results, subjects, attendance, top performers, and who needs support.
Students
Enroll one at a time, or in bulk for a whole class/stream. Junior students are auto-enrolled in all JSS subjects; Senior students need subjects picked by stream.
Enroll individually
Bulk enroll
One name per line. Same class and subjects apply to everyone in the list β for a Senior class with mixed streams, run this once per stream group.
| ID | Name | Class | Status |
|---|
Score entry
Pick a class, subject, and term β the grid loads automatically and shows every student taking that subject in that class.
Social & Work Habits
Pick a class and term to rate every student at once β click a cell, choose a rating. "Diligence" isn't shown here; it's auto-computed from academic performance and printed automatically.
Learner Profile (Beyond Marks)
Global competencies β Creativity, Communication, Collaboration, Critical Thinking, Leadership, Innovation, Entrepreneurship, Digital Literacy, Emotional Intelligence. These are deliberately never printed on the report card β they show only on the parent's own view of their child.
Import from Excel / Sheets
Upload an exported spreadsheet for one class and term. Empty classes auto-create every student β no review needed.
Sessions & terms
Curriculum: 2025 NERDC update
Adds the six real, individually-chosen trade subjects (Solar PV Installation, Fashion Design, Livestock Farming, Beauty and Cosmetology, Computer Hardware/GSM Repairs, Horticulture) and Pre-vocational Studies to the subject list, if they're not already there. Safe to run more than once β only ever adds what's genuinely missing.
Create a session
Advance promoted students to their next class
Also happens automatically the first time an admin logs in on or after a new session's real start date β this lets you do it now, or check before that date arrives.
Create a term
Update an existing term's signature & resumption date
Set these once per term β they print automatically on every report card generated for it, PDF and Word alike.
Close a term
Preview first β this computes grades and GPA without saving. Commit is permanent.
Repair CGPA on already-closed terms
Fixes a real historical bug: a prior closed term's CGPA contribution used to be re-derived from that term's raw scores every time a later term closed, so if those raw scores were ever edited or cleaned up afterward, the stored CGPA on terms closed since could be wrong even though GPA stayed correct. Safe to run more than once β only touches stored CGPA (and its supporting totals), never scores, grades, or promotion decisions.
All terms
| Term | Session | Current | Status |
|---|
Exam timetable
Real, class-wide exam scheduling β the school catches a clash automatically, since two exams can't share the same room and time.
| Subject | Date | Time | Venue |
|---|
Summer Program
A genuinely standalone program β nothing here ever affects a real term report, CGPA, or promotion. Students are only ever included by explicit registration.
Grading: all weekly tests together count for 50% of a subject's grade, and the exam counts for the other 50% β 100% total.
Programs
| Name | Current | Dates |
|---|
Summer-only students awaiting conversion
Students added purely for the summer program β no admission ID, not part of the regular roster or curriculum. Convert one to a full student when they're ready to join for real: this assigns a real student ID and enrolls them in the regular curriculum.
| Name | Class |
|---|
Register a student
Explicit, real registration β a student is never part of the summer program without a row here.
Not a regular student yet? Add them here for the summer program only β no admission ID is assigned and it never touches the regular curriculum.
Register a teacher
Explicit registration for this summer program, so the subjects and their real rosters show up on that teacher's own portal. A teacher's existing regular-term subjects carry over automatically and don't need registering here.
Not on the regular teaching staff yet? Add them here first β they'll appear in the Teacher list below right away.
Click a teacher's name to see every subject and class they're registered for in this program.
| Teacher | Subjects & classes |
|---|
Registered students
Click a student's name to see everything registered for them β their courses and their summer performance.
| Student | Subjects registered |
|---|
Analytics
A rollup of everyone real registered for this program β the same numbers used everywhere else, never a separate calculation.
Reports
A term must be closed before its reports are available.
Student report card
Class broadsheet
Student transcript
Full multi-term academic history for one student.
Promotion report
Executive summary
Analytics
Class performance
School Quality Assurance Dashboard
Real, data-backed answers for school leadership β which subjects are genuinely declining, which classes and teachers are strongest and weakest, and which teachers show measurable student improvement.
Student trend
Assign a teacher
Required before any teacher-effectiveness report can show data.
All teachers β performance overview
Every teacher's real collective average, ranked, from the exact same numbers report cards use. Click a bar to open that teacher's full appraisal report below.
Teacher effectiveness β individual appraisal report
Gender comparison
Optional β only shown for students with gender recorded.
Session comparison
Multi-year comparison across academic sessions.
Benchmarking
Executive KPIs
Attendance
Entirely optional β powers attendance-impact analytics once recorded. Nothing here is required for grading or reports.
Record attendance
Class teacher (set at the start of each term)
The one real staff member responsible for taking this class's morning attendance this term.
Real daily attendance & downloadable sheet
Attendance list
| Student | Days present | Total days | Rate |
|---|
Attendance impact
Compares average scores between higher- and lower-attendance students in a class.
Staff
Everything about staff β payroll, leave, attendance, performance, and development β in one place.
Register a new staff member (onboarding)
One real action β creates their teacher record (if applicable), their real login, and their linked payroll record together. Salary details can be filled in now or corrected later.
Staff members β profiles & records
Every real staff member the school pays β including anyone with no NAIP login. Click "View profile" on any row to see everything on record for that person: HR history, PD certificates, and β for a teacher β their students' real performance trend. Tenure and salary structure here are what real pension projection is calculated from.
| Name | Role | Started | Birthday | Pension |
|---|
Real pension projection
Based on real tenure and salary on file β a planning tool, not a substitute for a licensed pension administrator's real statement.
Staff attendance & leave
Real, day-by-day staff attendance, and every real leave request against the school's own real policy.
Leave policy
Record staff attendance
View history
Leave requests awaiting decision
Staff leave balance & history
Full request history
Staff performance
Classroom observations, professional development, summative ratings, and disciplinary records.
Classroom observation
Grounded in Danielson's Framework for Teaching β score each of the five real criteria 1 (needs significant improvement) to 5 (exemplary).
History
Professional development
A real video every staff member should watch, with a real exam to confirm it was understood.
| Title | Pass mark | Time limit | Status |
|---|
Certificate of completion β Director signature
Shown on every PD certificate as "Signature of Director, Professional Development." An uploaded signature image overrides the typed name below.
Import questions into a module
Supports Aiken, GIFT, Missing word, Embedded answers (Cloze), Moodle XML, and Blackboard pool exports β same real formats the CBT question bank uses. Only mcq/true-false questions can be auto-graded here; anything else is reported back, not silently dropped.
Summative rating
One real overall rating per term. The annual figure is always a real average of a staff member's own term ratings β never entered separately.
History & annual average
Disciplinary records
Genuinely restricted β visible only here, on the admin and Principal side. Never shown on any staff member's own portal.
History
Weekly topic coverage
Real, week-by-week records of what was actually taught β review to confirm the scheme of work is genuinely on track.
Check for gaps
Cover assignments
Who actually covered a class while the regular staff member was away.
Onboarding / offboarding checklist
Performance improvement plan
Genuinely developmental β the staff member will see their own plan.
Staff recognition
Staff documents
Qualifications, certificates, contracts, and ID documents on file β with real expiry reminders.
Documents on file
Expiring within 60 days
Staff memos
Every real staff member sees these on their own portal, formatted exactly as posted here.
Posted memos
Shows the title and a short highlight first β click a memo to open its full formatted content.
School premises location
Staff check-in only works within this real radius. Nothing here works until this is set.
Predictive Analytics
Gated on real history β a student, class, or subject needs enough genuine closed-term data before any projection appears. Never a guess dressed up as a forecast.
Student projection
Class intervention list
Student portfolio
The whole real learner journey β every closed term, attendance record, and earned achievement on file.
Career guidance
Rule-based, transparent suggestions from a student's real, consistently-strong subjects β never a guess.
AI-powered insights
Personalized learning plans, study recommendations, and parent summaries β written by Claude, grounded strictly in this student's real recorded data.
Subject trend
School forecast
Integrations
Connect NAIP's real, current rosters to Moodle or any other OneRoster-compliant LMS.
OneRoster export
A standard CSV bundle (1EdTech OneRoster v1.1) that Moodle's OneRoster Enrolment Plugin β or any other compliant LMS β can import directly.
Moodle connection
Direct sync via Moodle's own Web Services API β no plugin install needed on the Moodle side. Enable Web Services + REST protocol in Moodle, then create a token there and enter it below.
Sync a class to Moodle
Creates (or reuses) a Moodle course per subject and enrols the real, current roster.
Automatic weekly results from Moodle
Link a NAIP subject/component to a Moodle course's grade item (e.g. a weekly quiz). Once saved, it pulls automatically once a week β or trigger it manually below.
| Class | Subject | Moodle course | Last synced |
|---|
WhatsApp notifications (parents & teachers)
Sends via WhatsApp Business Cloud API. Requires a verified WhatsApp Business number and an already-approved message template β WhatsApp does not allow free-form business-initiated messages.
Gmail notifications (parents)
Sends real email as the school's Gmail account via Google's Gmail API. Requires a one-time Google OAuth consent flow (outside NAIP) to obtain a refresh token β NAIP never sees the school's Google password.
Privacy & Audit
NDPA-aligned data protection tools: an audit trail of sensitive actions, and the two individual rights every modern privacy framework requires β access and erasure.
Data protection policy
Document integrity check
Every report card and transcript ever issued is chained together β altering even one historical record after the fact would break this chain. Run this any time to confirm every issued document is still genuine.
Audit log
Every student record change, score write, term close, and data export β who did it, and when.
| When | Admin | Action | Resource | Details |
|---|
Login history
Every real login β admin, teachers, exam officers, principal, students, and parents β who, from what role, when, and from which IP address.
| When | Username | Role | Name | IP address |
|---|
Student data export
Everything NAIP holds about one student, in one bundle β the access/portability right.
Right to erasure
Irreversibly removes a student's identifying fields (name, gender, parent info) while keeping their academic record intact.
Accounts & Publishing
Create logins for teachers, the Examination Officer, and the Principal β and control when a term's results become visible to parents.
Create a staff login
| Username | Role | Linked teacher | Active | HR record |
|---|
Create a parent login
Link one or more children to a single parent account β for siblings, add both student IDs.
| Username | Children | Last Visited | Active |
|---|
Create a student portal login
One login per student β the Student Portal at /student-portal.
| Username | Student | Last Visited | Active |
|---|
Publish a term's results to parents
This is the ONLY action that makes a term's results visible in the Parent Portal. Normally requires Examination Officer verification and Principal approval first β or override below to publish directly.
| Term | Status |
|---|
Finance
The real Accounts Department β fees, payments, receipts, expenses, and staff salary, all in one place.
Dashboard
Accounts receivable β aging
Not just how much is owed β how overdue it genuinely is, so collections can be prioritized on real, current fact.
Fee items
Quantity is for fees that genuinely cover more than one unit β e.g. 3 sets of textbooks at β¦2,000 each. Leave it at 1 for an ordinary single fee like Tuition or PTA Levy; the total is always unit amount Γ quantity.
| Name | Unit amount | Qty | Total | Active |
|---|
Class-specific amounts
Set a real, different amount for a specific class β a class with no amount set here just uses the default above.
Assign a fee to students
Fee items
Tick every fee item to charge in this action β each row keeps its own real amount, so Tuition and PTA Levy can carry different figures at once instead of one shared number.
Leave a ticked row's amount blank to charge each selected student their own class's real amount instead (based on class allocation) β useful right after a promotion moves students between classes with different fees.
Students
Choose a class above to load its students, then tick who should be charged.
By default every assignment is created as a draft β invisible to parents and not payable β until you review and post it below in the student's own fee statement.
Payment allocation review
Flags every case where the same fee was assigned to the same student for the same term more than once β the real check against double charges, especially important right after a promotion.
Student fee statement & record a payment
Record a general expense
Anything the school spends that isn't a staff salary β utilities, supplies, maintenance, anything real.
| Date | Category | Description | Amount | Status |
|---|
Pending approvals
Real expenses at or above the school's approval threshold, waiting on a real decision before they count in any total.
Staff salary
Genuinely sensitive β visible to admin only, never to the parent portal. A linked staff member's own real payslip becomes visible on their own portal login.
| Date | Staff | Period | Amount |
|---|
Bank reconciliation
Upload your own bank statement (CSV or PDF β including a real password-protected PDF, exactly how your bank exports it). NAIP never connects to your bank directly; nothing here moves real money, and no password is ever stored.
Recognizes VAT, interest charges, stamp duty, salary, and school fee payments automatically β anything uncertain is left for you to confirm below, never guessed at.
Awaiting review
Financial statement
Any real period β a term, a quarter, a year, or a custom range. The same calculation every time.
Fixed assets
Real school property β buildings, buses, equipment, furniture. Straight-line depreciation applied automatically.
| Name | Category | Cost | Net book value |
|---|
Vendors
Optional, reusable supplier records β genuinely useful for a repeat vendor, never required for a one-off payment.
| Name | Phone | TIN | WHT rate | Active |
|---|
Vendor bills (accounts payable)
Real money the school owes but hasn't paid yet.
| Vendor | Description | Amount | Balance owed |
|---|
Capital contributions
Real money the proprietor put into the school β the foundation of Equity, alongside accumulated results.
| Description | Amount | Date |
|---|
Financial year close/open
Close a financial year to freeze its real closing balance sheet and lock its records read-only; open the next one to auto-prepare that September's real staff payroll bills.
| Name | Range | Status |
|---|
Staff payroll bills
Prepared automatically each September from each active staff member's own salary structure on file β review and confirm payment here; nothing is paid until you do.
| Staff | Period | Gross | Net | Status |
|---|
Scholarships
A real scholarship covers part or all of a fee through the same discount already shown on a student's statement β never a second, separate number.
| Name | Sponsor | Coverage |
|---|
Award a scholarship to a student
| Scholarship | Student | Status |
|---|
Scholarship spend report
Instalment plans
Split a fee assignment into a real schedule of parts. Payments are still recorded normally and matched against the earliest-due instalment first.
| # | Amount Due | Due Date | Paid | Balance | Status |
|---|
Overdue instalments, school-wide
| Assignment ID | # | Balance | Due Date |
|---|
Online payments (Paystack)
Lets a parent pay a real outstanding balance online from their own portal. NAIP never touches card details β Paystack's own checkout handles that; NAIP only verifies the result.
Manually reconcile a transaction (fallback if a webhook didn't fire)
Direct bank transfer
Shown to every parent as a real alternative to paying online β a parent who transfers directly still gets matched automatically once the school imports its bank statement, as long as the transfer narration includes the child's full name and the amount matches an open balance exactly.
Bank transfer claims
A parent's real claim that they've already transferred a fee balance β confirm it only once you've genuinely checked the school's own bank statement for it. Confirming creates a real payment and receipt immediately; nothing is recorded until then.
| Student | Amount | Transfer Date | Note | Proof | Status |
|---|
Fee reminders
Sends a real outstanding-balance reminder to every active student's parent who genuinely owes something β via whichever channel is configured under Integrations.
Balance sheet
Assets = Liabilities + Equity, as of any real date. This is a genuine internal record β for statutory financial statements or tax filing, always confirm with a licensed accountant.
Tax settings (Nigeria Tax Act 2025)
This is an estimation and tracking tool, not a certified tax filing. Pre-filled with the real NTA 2025 rates effective 1 January 2026 β every rate below is editable, since tax law can change again. Always confirm final figures with a licensed accountant before remitting.
PAYE bands (annual, cumulative):
PAYE calculator
A real estimate for one real annual salary β for planning, not a certified figure.
Tax summary β for remittance planning
Every real PAYE, pension, NHF, and WHT figure actually recorded in this period.
Income & expense trend
The last several months, side by side β is the school's real financial position rising, falling, or steady?
Budget vs actual
Set a real target per category and period, then see how actual income or spending compares.
| Category | Type | Period | Budgeted |
|---|
Compare for a real period
Settings
General preferences for this device/browser.
Display
Applies immediately and is remembered on this device.
Your email (for password reset)
If you're ever locked out, this is where a reset link would be sent β set it now while you have access.
Two-factor authentication
The single most recommended way to protect a school's real data β a second, real code from your own phone, in addition to your password, every time you log in.
Change password
Backup & restore
A complete copy of every real student, score, result, account, and setting β download this regularly, especially right after entering a batch of real students or closing a term, and keep it somewhere safe (a USB drive or cloud folder) separate from wherever NAIP runs.
Automatic offsite backups
A real full backup, automatically emailed on a schedule to an inbox that isn't on the same server NAIP runs on β genuinely separate from a manual download someone might forget to do. Requires Gmail to be configured under Integrations first.
Restore from backup
This completely replaces everything currently in NAIP with what's in the backup file β not a merge. Only use this for genuine disaster recovery (a corrupted database, a fresh server after a real failure), not routine use.
Claude access (MCP)
Lets Claude (Desktop, Claude.ai's custom connectors, or the API) do real work in NAIP directly β enroll students, close terms, pull the dashboard, notify parents β as this same live deployment, from anywhere. A key is shown to you exactly once; NAIP can never show it again after this, only revoke it.
| Label | Key prefix | Created | Last used | Status |
|---|
Connector URL: · Header: Authorization: Bearer <your key>
OAuth clients (Claude.ai "Advanced settings")
If Claude.ai's custom connector shows "OAuth Client ID / OAuth Client Secret" fields instead of a header option, register a real client here and paste the resulting ID/Secret into those fields. This drives a genuine OAuth 2.1 + PKCE login-and-approve flow β you'll log into NAIP again at that point to approve access, the same as any real OAuth consent screen.
| Label | Client ID | Redirect URI | Status |
|---|