Skip to content
Edson Francisco
  • Communities & information

Kukura

A platform for community organisations to prove impact and raise funds — backend, deployment and account verification.

Period
2024–2026
Status
In production
Role
Backend and DevOps: created the API repository, automated deployment and email/SMS verification; PR review and merging
Client
EQUIP Moçambique
Partners
ECO-MICAIA

Problem

Civil-society organisations in Mozambique struggle to formalise processes, show impact and reach donors. They need a simple tool on the phone.

Solution

The Ionic/Angular app is the team's work: organisation profile, assessment questionnaire, resource library and causes. I created the Laravel backend repository in 2024, set up deployment and test CI/CD, and implemented sign-up with email and SMS verification and password recovery. I review and merge backend PRs. The project started as the "Doar Para Transformar" prototype (DPT App), built by a colleague, and was renamed Kukura.

Technical decisions

  1. 01

    Email and SMS verification in parallel

    The verification code goes out on both channels (SMS via Twilio); if one fails, the other arrives. Email alone was not reliable in production.

  2. 02

    Normalising Mozambican numbers to E.164

    `843216789` becomes `+258843216789` before sending, because users type their number in many formats.

  3. 03

    SSH deployment to shared hosting

    GitHub Actions with maintenance mode, `composer install`, migrations, caches and post-deploy tests — no dedicated server needed.

  4. 04

    Resource library seeded from shared JSON

    The same JSON files feed the backend seeders and the app, so the resources never drift apart.

Images

01 / 03 — Kukura home page: "Your community needs you now", with Google Play and App Store links

Technologies

  • Laravel
  • PHP
  • MySQL
  • Ionic
  • Angular
  • Capacitor
  • Twilio
  • Docker
  • GitHub Actions

Verifiable results

migrations in the backend
56

What I learned

Email reliability in production calls for a second channel; and CI/CD on shared hosting takes many iterations to get stable.

SDGs

  • SDG 17 · Partnerships for the Goalsprimary

    An organisation profile, an assessment questionnaire and causes give civil-society organisations a way to prove impact and reach donors.

  • SDG 10 · Reduced Inequalitiescomplementary

    Small organisations outside the main cities gain a digital fundraising channel in an app on the phone.