Skip to content
Tchomtchi Kamgang Daniel Merlys
FR
Back to projects
  • Automation
  • Data
  • Finance
Version 1.8.0

Payroll management

Teacher payroll application for schools in Cameroon: from the monthly Excel workbook to payslips and accounting exports.

Status
Version 1.8.0
Role
Design and development
Period
2026

01Context

Teacher payroll for schools in Cameroon, with two statuses following different rules: part-time teachers, subject to a specific tax, and permanent staff paid monthly.

Payroll inputs arrive every month in an Excel workbook (hours, staff information, accounting statement).

02Problem

Every month, payroll starts from an Excel workbook: compute amounts according to each teacher's status, check discrepancies, produce payslips in the school's format and prepare the accounting statement. Done by hand, this work is repetitive, hard to check and leaves little trace of corrections.

03Objective

Cover the whole payroll cycle in a single tool: input, calculation, control, validation, closing, payslips and accounting exports.

04Data

  • Monthly Excel workbook: hours, teacher information, accounting statement.
  • Existing teacher lists (Excel, CSV, Word or PDF), imported with likely-duplicate detection.
  • The school's payslip templates (Word or PDF).

Automated tests use a fictitious workbook built on the model of the schools' own.

05Methodology

  • Strict layered architecture: Streamlit page → service → repository → SQLite. No SQL from the UI, no business logic in pages.
  • A single payroll calculation module, used as the one source of truth.
  • Pay period lifecycle: draft → open → validated → closed. The tax rate is frozen at validation.
  • Controlled imports: discrepancies flagged with a correction table before validation; bulk imports with a dry-run and a transaction.
  • Automated tests (pytest) run in continuous integration with GitHub Actions.

06Solution

  • Authentication and roles (administrator, payroll manager, read-only), with no default password ever created.
  • Payroll calculation, control, validation and closing.
  • Payslips matching the school's official layout, in Word or PDF.
  • Excel accounting exports, multi-period history and reporting, statistics.
  • Document management and archiving; backup and restore through SQLite's native API, with automatic rollback on failure.
  • Licence keys signed with Ed25519.
  • Source code available on GitHub under a proprietary licence.

07Technologies

  • Python
  • Streamlit
  • SQLite
  • pandas
  • openpyxl
  • python-docx
  • PyMuPDF
  • cryptography
  • pytest
  • GitHub Actions

08Results

Version 1.8.0, covered by more than 1,600 automated tests running in continuous integration (GitHub Actions).

Payroll data security is handled by design: no default password, role-based permissions, logged status changes and verified backups before any restore.

09Limits

The Windows executable is specified (PyInstaller) but has not yet been built or tested on Windows.

Local SQLite database: the application is designed to run on one machine, not as an online service.