Projects

Four systems I designed, built, and shipped

Each one solves a concrete operational problem in Kenya — hospitals, hotels, students, government desks.

  1. 2024–2025 Afya HMS A multi-branch hospital system for Kenyan healthcare.
  2. 2024–2025 Taara HMS Front desk to back-office finance, including M-Pesa.
  3. 2024–2025 InduTrack KE Digitising Kenya’s student placement process.
  4. 2024 Vuka Attachment Portal From application to deployment for a government internship desk.

Afya HMS

The problem

Facilities were drowning in paper and fragmented records. Front desk, labs, and pharmacy had no shared system — every handoff was friction, and billing errors were routine.

What I built

I designed the domain boundaries, wired the Laravel 11 API, built the React/TypeScript PWA, implemented live patient queues with Laravel Reverb, and integrated M-Pesa.

What changed

Built to scale from 1,000 to 10,000+ concurrent users across branches. Duplicate entry goes away, and administrators get operational visibility they did not have before.

Laravel 11 · PHP 8.3 · React 18 · TypeScript · MySQL 8 · Redis · Laravel Reverb · M-Pesa API · PWA

View on GitHub

Taara HMS

The problem

Hotel teams juggled reservations, housekeeping, restaurant POS, and finance in disconnected tools. Cash, card, and M-Pesa lived in different places.

What I built

The whole system: Laravel 11 and Blade, Safaricom Daraja for STK Push and C2B, queued PDF/CSV exports, and audit logging on every financial change.

What changed

Hotels stop copy-pasting payment confirmations. Rate limits and audit trails protect against insider abuse and brute-force attacks.

Laravel 11 · PHP 8.3 · Blade · TypeScript · MySQL 8 · M-Pesa Daraja API · Vite

View on GitHub

InduTrack KE

The problem

Attachment in Kenya still runs on paper logbooks, cold-call applications, and no institutional visibility. Logs can be faked. Companies get unvetted piles of applicants.

What I built

A six-role system (student, company, supervisors, institution admin, super admin), Laravel 11 API and React/Vite frontend, Africa’s Talking SMS, and queued PDFs for certificates and logbooks.

What changed

Institutions get live placement tracking, compliance escalation, and exportable reports — instead of a process that ran on paper and trust.

Laravel 11 · React · Vite · TypeScript · MySQL 8 · Laravel Sanctum · Africa's Talking · Redis

View on GitHub

Vuka Attachment Portal

The problem

Departments had no digital workflow. Applications arrived by hand, document checks were manual, and supervisors could not see where a candidate stood.

What I built

Authentication with email verification, Bearer sessions, four-tier RBAC with department isolation, Chart.js dashboards, CSV exports, and skeleton loaders throughout.

What changed

A paper internship process becomes a logged, auditable one. Documents stay with authorised staff only.

PHP · Laravel · MySQL · JavaScript · Chart.js

View on GitHub

The code is open. Read the READMEs, or write if you want to talk through any of them.

GitHub