Akbr Projects

Home / Projects

Projects

Most of what I've built, grouped by who it's for. Open any row for the full story.

Group by

Official statistics, at the Uganda Bureau of Statistics

Sanyu

2024 to now, agentic AI

The Government of Uganda's official AI assistant for national statistics.

Sanyu is the official AI assistant of the Uganda Bureau of Statistics (UBOS), built for the Government of Uganda and for anyone who needs its numbers. It's agentic: you ask in plain language, in English or one of five Ugandan languages, and the agent plans its own lookups across indicators, report tables and survey text. It answers with the figure and its source, draws charts, and compares districts or years.

It also writes reports. A statistician picks a template, such as a district profile, a health brief or the monthly CPI release, and Sanyu drafts the whole document from live figures, ready to export to Word, PDF or HTML. Statisticians now spend their time checking and interpreting numbers, where they used to copy them out of tables.

The language model never writes a number on its own. Every figure reaches it through tool calls to the statistics database, and Sanyu cites the table and survey it came from. We built it in-house at UBOS, and Sunbird AI helped with the Ugandan languages.

  • 5,100+indicators from six official sources
  • 6languages, English and five Ugandan ones
  • 7report templates it drafts from live data
  • 45golden-fact tests that run on every build

Node.js, SQLite, agentic tool calling, RAG, MCP endpoints, Python pipelines, Nginx and pm2.

statistics.ubos.org/sanyu
Sanyu's chat screen: a sidebar of data sources such as Census 2024 and CPI, and the prompt 'Ask Sanyu about Uganda's official statistics'

Census e-recruitment and field staff management

2023 to 2024, web platform

The system behind the people who counted Uganda in 2024.

Every district used it to recruit staff for the 2024 National Population and Housing Census and to keep their payroll records. The Bureau followed the whole effort on national dashboards. I was the main developer, and I ran the rollout.

  • 200,000+census staff it managed across the country
  • 80%faster fixes, once the tests and monitoring I added were in place

Next.js, MongoDB, Docker, AWS.

The national recruitment dashboard, showing applicant totals and a table of applicants per district

UBOS dissemination portal

2024 to now, data platform

Uganda's official statistics in one place, from more than six national datasets.

The 2024 census is live down to parish level, next to the Baseline Education Census 2025 and the Uganda Aquaculture Census 2025. Four more datasets are on the way, including the Malaria Indicator Survey 2024-25 and a poverty index built from the census. Each one opens as dashboards and maps, and you can download the tables.

I led the team of three that built it. I also wrote the pipelines that load the data and produce the reports, and a tool that pulls tables out of old PDF survey reports so people can search decades of them.

  • 6+national datasets in one place
  • 500,000+people have used it
  • 3people on the team I led

Python and SQL pipelines, Power BI, QGIS.

Visit statistics.ubos.org
The UBOS dissemination portal: the Census 2024, Baseline Education Census and Aquaculture Census cards, with four more datasets marked coming soon

Also at the Bureau

2023 to now, data work

Smaller jobs that kept the census moving.

I used machine learning to code census and survey answers, which saved months of manual work. I built the data collection tools for the national count, and wrote Python and QGIS scripts that helped the GIS team draw maps faster. I run the Bureau's servers on AWS and GCP, including a shared proxy that every outside connection now goes through. I've also run phishing drills with the security team.

Regional statistics, for the East African Community

Harmonised CPI system for the East African Community

2026 to now, data platform

How East Africa collects its prices and computes its inflation.

The East African Community wants every partner state to measure prices the same way, so their inflation figures compare. The system covers the whole path. Collectors record prices on a tablet app, the system validates them and imputes the gaps, and it computes each national index. Every index then feeds a regional dashboard at the EAC Secretariat. Kenya, Tanzania, Uganda and Zanzibar run their CPI on it now, and the other partner states are next.

Kola Technologies built the first version on Odoo in 2023, and I inherited their code. I checked the engine against standard CPI practice and fixed what it got wrong. Half-collected months no longer drag the index toward zero, and validated prices now reach it. I also reworked the dashboards. From 25 May to 5 June 2026 I trained ICT staff from the four countries in Dar es Salaam to run and extend it, and wrote the documentation.

  • 4national statistics offices that compute their CPI on it
  • 8.4 millionprice observations across them
  • 16 sto impute missing prices, down from several minutes

Odoo 18, Python, PostgreSQL, background job queues, and a Flutter app for collectors.

The note from Dar es Salaam
The EAC Secretariat Hub's chart of national CPI over time, one line each for Kenya, Tanzania, Uganda and Zanzibar, from April 2025 to June 2026

Tools for census and survey teams

csync, a sync tool for CSPro

2026, open source

Move CSPro survey data between a CSWeb server and your own code.

Most census and survey fieldwork in the region runs on CSPro. Tablets collect cases and sync them to a CSWeb server, but getting those cases into your own code, and back again, is hard. csync reads the survey's dictionary and handles that part.

You pull cases into a plain SQLite file and change them as ordinary Python dictionaries. When you push them back, csync adds the vector clocks CSEntry expects, so the changes reach the tablets. It works with any dictionary, whether that's a staff list or a full household questionnaire, and it talks to CSWeb 8.0 and 8.1. You can use it as a Python library or from the command line.

  • AnyCSPro dictionary, with no field names hard-coded
  • 8.0 and 8.1CSWeb versions it talks to
  • 0third-party packages the core library needs

Python's standard library and SQLite, with an optional Flask page.

csync on GitHub

CSPro toolkit, a skill for AI assistants

2026, AI

Teaches Claude and other AI assistants to work on CSPro survey apps.

A CSPro app spreads across several files that have to stay in step, and CSPro can't compile an entry app from the command line. An AI assistant that edits one is working blind. This skill gives it a map.

It explains what each file does and how a change to the dictionary affects the rest. A linter checks logic edits before anyone opens CSPro. The skill also covers building a deployment package and asking a CSWeb server for its dictionaries and cases. It follows the Agent Skill format, a SKILL.md file that Claude and other assistants can load.

Markdown instructions and Python helper scripts.

The skill on GitHub

Civic platforms

National Youth Council accountability platform

2024, web platform

Where Uganda's youth council showed its money.

The National Youth Council of Uganda used it to publish each project it funds, with its budget and what it spent. Young people could download the reports and leave feedback. I built it in 2024 with support from Konrad-Adenauer-Stiftung.

Uchaguzi

2021, app and chatbot

Voter information for Uganda's 2021 general elections.

Voters could find out where to vote and what the rules were on WhatsApp or in a phone app. We built it for the Ministry of ICT's Government Citizen Interaction Centre and the Electoral Commission, with Konrad-Adenauer-Stiftung, and I led the team.

  • 10,000+people used it during the election

Flutter, Drupal, PHP, Python.

Read about it on PC Tech
Uchaguzi app screens on phones

Youth Action Handbook

2022, mobile app

A bilingual learning app for young peacebuilders in the Great Lakes.

The Great Lakes Youth Network for Dialogue and Peace, an EU and Konrad-Adenauer-Stiftung project, uses it to teach young people in DR Congo, Rwanda and Uganda. Learners take short courses with quizzes and earn a certificate at the end. I led development and published the app to the stores.

Flutter, with offline caching for patchy networks.

Android   iOS, archived listing
Four Youth Action Handbook app screens: home, sign in, a course, and a quiz

Makerere at 100

2022, web platform

The main website for Makerere University's centenary.

More than 12,000 people used it to give to the university and to buy centenary merchandise. I was the technical lead.

PHP and a custom WordPress theme.

100.mak.ac.ug

BudgetMate

2023, mobile app

Helps Yemen's Ministry of Finance collect budgets, with or without internet.

Spending units fill in budget requests in the app, by hand or from a CSV file. Where there's no internet, the app encrypts each request and sends it by SMS. It shared first place at the Yemen Public Financial Management Hackathon, which Yemen's Ministry of Finance and the IMF held in Amman in March 2023.

  • 1stplace, shared, with a USD 5,000 grant

Expo and React Native, MongoDB, Twilio.

The hackathon results, archived

Products and open source

Wapp

2026 to now, agentic AI

AI agents for businesses, on WhatsApp and the other apps their customers use.

Each business gets its own AI agent and puts it on WhatsApp and its other chat channels. Customers message it to ask about products, prices, orders or opening hours, and it answers at any hour. The owner talks to the same agent. They can ask how sales went this week, have it chase unpaid orders, or send an update to every customer.

The agent does more than answer. It calls tools to take orders, book appointments and update records, and it hands a conversation to a person when it should. It learns each business from its own catalogue, documents and past chats.

LLM agents with tool calling, RAG, the WhatsApp Business Platform.

TuuraHub

2026 to now, product

Rental management for East African landlords.

Landlords use it to keep track of units and tenants, and to send invoices and rent reminders over SMS or WhatsApp. Tenants get a portal where they can pay and report repairs. It's for landlords who have outgrown a spreadsheet but don't need enterprise software, and Uganda is the first market. I designed and built it.

Next.js, Prisma and Postgres, Stripe, AWS S3.

tuurahub.com
The TuuraHub landing page: 'Manage every rental, without the chase' above buttons to create a hub and cards for landlords, renters and tenants

flutter_fido2

2022, open source

Sign in without passwords, in Flutter.

An open-source Flutter plugin for FIDO2 and WebAuthn. It registers security keys and signs the login challenges your server sends. It runs on phones and on Windows, and web support is in progress. I wrote it for my master's, along with a companion server.

On GitHub

Companies, events and school

Foot-traffic counter for Sport Chek

2020, web app

Helped Sport Chek stores in Canada stay under their pandemic limits.

During the pandemic, shops in Canada had to cap how many people were inside at once. We built a low-cost counter for Sport Chek, a sporting goods chain with stores across the country. It ran on iPads in each store and reported to a central server, so staff always knew how many people were inside.

JavaScript, on iPads, with a central server.

Africa Now Summit app and ticketing

2019, app and website

The website, conference app and ticketing for the Africa Now Summit 2019.

I built the summit's website and its conference app for the Africa Strategic Leadership Centre, and I ran the online ticketing.

  • ~1,000delegates who bought tickets through it

School shuttle tracker

2018, final-year project

Tracks school shuttles on their routes.

My final-year project at Makerere. I built the server, a web app and an Android app, and I graduated as class valedictorian.

PHP and Java.

Leave system for Airtel Uganda

2017 to 2018, web platform

Cut leave approvals at Airtel Uganda from days to under an hour.

Staff used to wait several days for a leave request to clear. I led the IT intern team that built an HR management system on Oracle Application Express, and approvals dropped to under an hour.

  • <1 hourto approve leave, down from several days

Oracle APEX, PL/SQL, JavaScript.