
Consolidate a fragmented set of internal applications into a single platform — replacing inconsistent, separately-licensed Microsoft tools with one shared database, one design standard, and one place for a globally distributed contractor base to work.
Agency contractors submitting data from different regions, and the internal data teams responsible for reporting and evaluation — two operational user groups with very different needs from the same system.
The agency ran on a scattered set of Microsoft PowerApps and SharePoint tools — no shared database, no consistent design standard, and per-seat licensing that made scaling expensive. The contractor base was globally distributed: each region needed to see only its own data, through forms structured for its own local requirements.
Before drawing a single screen, the real work was mapping the system — how data should be modelled once and reused everywhere, which fields depended on which, and what each user should and shouldn't be able to see. I rebuilt the platform on two foundations. The data layer became a shared SQL database — one source of truth in place of the disconnected SharePoint lists. The interface was built in the JetAdmin no-code environment, chosen specifically because it could sit on top of that SQL layer and handle the hard part: data-heavy entry forms with hierarchical, grouped, and dependent fields, conditional logic that changed the form's behaviour by region, and strict data segregation so contractors only ever saw what was theirs.
Designing this meant working through the states and edge cases explicitly — what a form shows when a region is missing a value, how a submission moves through review, what each role sees at each step. From there I layered in automated notifications to keep teams in sync as submissions moved through the system.
What began as a reporting tool grew well beyond it. Over time the Hub absorbed invoicing, evaluations, and a centralised support-ticket system, until it became the single entry point contractors and head office used for everything — the architecture held because the data model was built to extend from the start.