Harry Mbwasi

Latest

The OutbreakA hidden-role LAN game in Unity. Roles are dealt in secret, and the bunker they are dealt in is generated by code, not hand-built.September 2026

Work

Ventiqa

Digital invitations, live RSVP tracking and QR check-in for Tanzanian events. A Django platform, live at ventiqa.co.tz.

Role
Engineering
Built with
Django, Python, PostgreSQL, Redis, Docker, Cloudinary
The Ventiqa home page: cream serif type over a photograph of a decorated event hall, reading 'Elegant event access in Tanzania, from invitation to entrance.'

An event platform for Tanzanian organisers. Build a guest list, send every guest their own invitation card over WhatsApp or SMS, watch the replies arrive, then scan people in at the door. It is running in production at ventiqa.co.tz.

This is client work at Techpreneurs Solution, where I am a developer and graphic designer.

What it does

Four steps, which is the whole product:

  • Build the list. Upload from Excel, or add guests one at a time.
  • Send invitations. Each guest gets their own card, delivered over WhatsApp or SMS.
  • Track replies. Watch who is coming as the answers come in.
  • Run the door. Scan each guest in and count the room live.

It is priced per invitation record rather than per event, which suits organisers running one wedding as well as a company running a season of seminars.

How it is put together

The Django project is split into eleven apps, accounts, cards, check-ins, contributions, core, events, feedback, guests, messaging, payments and reports, so the messaging and check-in paths can change without touching each other.

A few decisions worth naming:

  • Postgres in production, SQLite as a fallback. The settings read DATABASE_URL and drop to a local SQLite file when it is absent, so a fresh clone runs with no database to set up first.
  • Redis for cache, with a local-memory fallback on the same principle. Nothing about first-run setup depends on a service being up.
  • A seed_demo command. The project can be brought up populated, which is the difference between a repo someone can evaluate in two minutes and one they give up on.
  • Docker and docker-compose for parity, a Procfile for platform deploys, and GitHub Actions in the repository.