StaffStack



Problem
Staff records, salary calculations, leave requests, and teaching assignments affect one another but are often managed separately.
Constraint
Payroll needs explicit calculation rules, and school administrators need to see the teaching coverage affected by staff leave.
Decision
Connect people, salary structures, payroll runs, leave, attendance, and subject assignments in an organisation-based PostgreSQL model.
Implementation
A TypeScript payroll engine, bank-ready exports, printable payslips, and email delivery support the operational workflow behind the interface.
A workspace for the people running a school
StaffStack connects the administrative work around a school's team: maintaining staff records, preparing monthly payroll, handling leave, recording attendance, and tracking who teaches each subject. The public page introduces the product; the workspace is where those interconnected tasks happen.
The aim is to make consequences visible across workflows. A teacher's leave request is more useful when the administrator can also see which subjects that person covers. Payroll depends on the same staff records and salary structures, rather than a separate list maintained elsewhere.
Payroll is a calculation system
The TypeScript payroll engine separates salary inputs from calculated payslip outputs. It handles gross pay, configured deductions, employee and employer contributions, and net pay. The implementation includes progressive PAYE bands and per-employee deduction toggles.
Payroll runs and payslips are stored separately from current salary structures. Bank-ready CSV exports, printable payslip views, and email delivery turn the calculations into usable administrative outputs.
School-specific coverage
Subject assignments connect teachers to the classes and subjects they cover. The workspace flags unstaffed subjects and assignments with only one teacher, making coverage gaps visible.
Showing assigned subjects alongside leave requests brings that context into the approval decision. This is a school-specific workflow rather than a generic employee directory.
The system behind the screens
React and TypeScript provide the interface, backed by Supabase authentication and an organisation-based PostgreSQL schema. Staff, departments, payroll runs, leave requests, and attendance records share a connected data model.
StaffStack is an evolving product, with the focus on bringing payroll preparation, people management, and teaching coverage into a consistent administrative workflow.