Projects

Things I've built

Products with users first, experiments second. Each one has a short case study.

Featured

The four I'd show first.

TrackTrack screenshot

TrackTrack

Inventory, sales and credit for wholesalers - built for the doorway, not the office.

A multi-tenant web app for Ghanaian wholesalers: stock counted in cartons and loose pieces, multi-item sales with discounts and credit, purchase orders, money owed, and reports - and it keeps selling when the network drops.

  • Offline-first: sales recorded on the phone without signal are queued and synced when the network returns
  • ACID checkout - a multi-item sale rolls back completely if stock runs out halfway through
  • Units that match the trade: cartons and loose pieces, with price and stock converted automatically
  • Python
  • Flask
  • PostgreSQL
  • SQLAlchemy
  • Alembic
  • Bootstrap 5
  • Chart.js
  • Service Worker
  • Docker
  • Neon
SentriNet screenshot

SentriNet

Know every device on your network, and what it is doing.

Network monitoring and threat detection for small businesses. A lightweight sensor runs on a Windows or Linux machine, reads packet headers only, and feeds a dashboard that shows every device on the network and who it is talking to.

  • Sensor agent for Windows 10/11 and Linux, distributed as signed builds with SHA-256 checksums on every release
  • Header-only capture: who talked to whom, how much and when - packet contents are never read or stored
  • Device inventory built from the announcements devices already broadcast (ARP, DHCP, mDNS)
  • Python
  • Packet capture (Npcap / libpcap)
  • Flask
  • PostgreSQL
  • Linux
  • Windows services
Group-Alloc screenshot

Group-Alloc

Sequential group numbers for university classes, with zero duplicates under load.

A multi-tenant tool for course reps: group leaders open a class link and claim the next group number; the rep watches the roster fill in live and exports a PDF presentation schedule for the lecturer.

  • Race-condition-proof allocation: an atomic UPDATE … RETURNING counter row in PostgreSQL guarantees #1, #2, #3 with no duplicates even when everyone submits at once
  • Multi-tenant: one database, tenant_id isolation, and a rep can manage several classes across semesters
  • Two portals - a public, mobile-first submit page per class code, and an authenticated admin dashboard
  • Node.js
  • Express
  • PostgreSQL
  • React
  • Vite
  • JWT
  • jsPDF
  • Neon
  • Vercel
Kookoo Doctor screenshot

Kookoo Doctor

Cocoa disease diagnosis for farmers, from a phone photo.

A farmer photographs a cocoa pod or leaf and gets a plain-language read on black pod disease or CSSVD - with an honest confidence level, what to do next, and the option to ask a follow-up question. Built at the Build with Gemma 4 AI Hackathon (July 2026).

  • Refuses to guess: blurry, dark or off-subject photos are flagged for a retake instead of diagnosed
  • Confidence is tied to visible structural evidence (lesion shape, texture, spread) - never to how dark a pod looks
  • Actively rules out benign look-alikes such as ripening colour change, dirt, sun-scorch and old insect marks
  • Python
  • Flask
  • Gemma 4 (31B)
  • Google GenAI SDK
  • React
  • Vite
  • Docker

More projects

Earlier work and smaller builds.

More on github.com/Leobwoy - including Campus Fix-It, a school management platform, a URL shortener and a few forks I learn from.

Want something like this for your business?

I scope small, ship fast, and keep things running afterwards.