All projects

Case study · School system

St. Peter’s Mission Schools — website & staff portal

A public website and a role-based staff portal for a Creche-to-SHS school in Accra. Parents apply online; inside, the headmaster, administrators, teachers and accountants each get their own view of students, attendance, grades, fees, payroll and the school’s finances.

Role
Design & development
Status
Website live · portal in progress
Users
Parents and six staff roles
Stack
JavaScript · Node.js · SQLite
Staff portal accountant dashboard with a finance scorecard: fees collected 65.5%, outstanding fees GH₵36,245 and expenses this month
The accountant’s dashboard. All names and figures in these screenshots are fictional demo data.

Running a school means tracking hundreds of students across levels from Creche to SHS, collecting fees in instalments, paying staff with SSNIT and PAYE deducted, and reporting to the headmaster and board. Much of that usually lives in paper registers, spreadsheets and WhatsApp messages.

The goal was one system where each person sees exactly what their job needs, with the accounting done properly: fees, payroll and expenses that flow into a profit and loss statement and a balance sheet.

Public website

Programmes, departments, facilities, calendar and an online admissions form that sends each application straight to the portal.

Fees & fee bills

Fee structures broken down per class level, part payments and balances, and PDF fee bills emailed to every parent.

Payroll

SSNIT tiers and GRA PAYE bands applied to each payslip. The accountant prepares, the headmaster approves, and paying records the expense.

Financial reports

Profit and loss for any date range and a balance sheet as at any date, downloadable as PDFs on the school letterhead.

Academics

Attendance, grades, timetables without clashes, and report cards with class position, emailed to parents as PDFs.

KPI scorecards

Every dashboard opens with targets for that role: fee collection, attendance, pass rate, payroll status.

The website is static HTML, CSS and JavaScript. The portal is a Node.js and Express server with a SQLite database and a plain JavaScript front end, so it can run on a modest school server.

  • Permissions enforced on the server. A teacher who types another class’s address still gets “You do not have access”; hiding menu items isn’t treated as security.
  • Separation of duties. Accountants record expenses and prepare payroll, but only the headmaster can approve them for payment, and approved payroll figures lock.
  • Privacy by role. Teachers see their students’ health and special-needs notes; accountants never do.
  • Installable app (PWA). Staff can install the portal on their phones; school data is never cached, so records are always current.
  • Audit log. Sign-ins and changes are recorded for the system admin to review.

This project sits right where my accounting and my development work meet. Getting payroll deductions, fee arrears and the link from transactions to the financial statements right mattered as much as the screens did, and approval steps like the headmaster signing off payroll are internal controls written into code.

Next: putting the portal online on the school’s server and connecting an SMS provider for parent broadcasts.

Next case study

Sika — Fintech App

Read it