Seydina Sow
All work

Sanoo Solutions · 2026 · In production

Daara

Online school enrollment with fees paid by Wave or Orange Money, live one week after the first commit, on plain shared hosting.

First commit to production
1 week
September 28 → October 4, 2026
Architecture decisions
25
documented ADRs
Open-source contributions
5
fixes submitted to the Gibbon project
Role
Design and development
Duration
Since September 2026
Stack
PHP 8.2 · Gibbon · MySQL · Wave · Orange Money · o2switch

Daara · enrollment

  1. Parent :

    I’d like to enroll my two children, how do I do it?

  2. School :

    You can do it online or in person. Once the application fee is paid, the school reviews the file, and then you can enroll your children.

A parent’s question about enrollment, and the answer they got (anonymized, translated from French).

Context

Daara is a Sanoo Solutions product for schools. A parent receives an enrollment link, fills in a multi-step form and pays the application fee with Wave or Orange Money: a direct link on a phone, a QR code on a computer. Monthly fees are then tracked in the Finance module.

The problem

Three constraints framed the project. The school needs a real school management system, not a standalone form. Hosting is shared: no Docker, no queue, no always-on process. And a payment must never be counted twice, nor treated as successful without proof.

My approach

Building on Gibbon rather than reinventing it. Gibbon is an open-source school management platform. Daara is an overlay: a mobile money payment module and a theme. Gibbon’s core is only changed through patches listed one by one, so its updates can still be followed.

A payment only counts once it’s proven. Every payment attempt is recorded as an intent, which serves as the idempotency key. A payment is only confirmed by a check against the provider’s API or by a signed webhook. Providers sit behind a common interface, with an HMAC-signed simulator to develop without real money.

Choosing restraint. No front-end framework, no microservices, no queue: whatever the hosting can’t run, the code doesn’t assume. Twenty-five architecture decisions document these choices.

Moving forward without waiting for keys. Until the merchant verification documents come through, direct API collection is ready but switched off: parents pay through a Wave merchant link or an Orange Money QR code, and the school confirms.

Giving back to open source. Bugs found in Gibbon during the project were reported upstream: five fixes submitted to the project in October 2026.

What changed

Daara has been live since October 4, 2026, one week after the first commit.

What I took away

The fastest code to ship is the code you don’t write: by building on Gibbon, Daara went live in one week, and the fixes went back to the project.