~/portfolio
MIZAN: BUDGET MANAGEMENT & APPROVAL SYSTEM(7) — Bilingual budget management system for a Saudi organization: annual planning, budget distribution to administrative units, expenses, transfers, and multi-step approval workflows. In production for internal use.
($ cd ~/projects && ./mizan)

NAME

Mizan: Budget Management & Approval System — Bilingual budget management system for a Saudi organization: annual planning, budget distribution to administrative units, expenses, transfers, and multi-step approval workflows. In production for internal use.

SYNOPSIS

Bilingual budget management system for a Saudi organization: annual planning, budget distribution to administrative units, expenses, transfers, and multi-step approval workflows. In production for internal use.

DESCRIPTION

Client: Saudi organization (confidential) · Role: Sole developer, AI-assisted. Requirements, specs, testing, feedback rounds and deployment were mine · Period: May – Sep 2026 · Status: In production (internal)

Mizan manages an organization's yearly budget from approval to spending. A specialist enters the general budget for the year; after approval it is distributed to administrative units, and each unit only sees the budget lines that received an allocation. Expenses, transfers between budget lines, exchange requests and budget overrides go through multi-step approvals. Includes an audit log, delegations, notification templates, statistics, Excel import and PDF reports, in Arabic and English. I continued development of an existing ASP.NET Core system.

TECH STACK

C# ASP.NET Core .NET 10 Entity Framework Core SQL Server Docker Coolify Playwright NUnit EPPlus QuestPDF

ARCHITECTURE

Every budget change (new budgets, expenses, transfers, overrides) goes through a configurable multi-step approval chain, and funds are held while a request is pending so two requests cannot spend the same money. Access is controlled per page and per feature through roles and permissions.

BUGS / CHALLENGES

The client required reserved budget amounts to be shown in full to admins, as one lump sum to unit managers, and hidden from everyone else. Early versions leaked those amounts on some screens; tracking down every place they appeared took several feedback rounds. The client tests only in production, so every change was logged and verified against the live system.

EXIT STATUS / OUTCOMES

Delivered over six rounds of client feedback and 220+ commits, and in production for internal use. Covered by end-to-end test suites per feature (expenses, permissions, notification templates, reserve visibility) plus unit tests.

SEE ALSO