Skip to Content
Work

Problems we've already solved

Thirteen case studies from two production Odoo platforms. Each one starts with the problem a client brought us, then shows what we found, what we built, and what changed afterward.

Find your problem

Start from the symptom

Filter by platform or area, then click through to the case study.

MAFA Group · Odoo 17

“Payroll is off by half a day for a few people, every single month, and nobody can figure out why.”

See how we solved this
MAFA Group · Odoo 17

“Filing our VAT return is a multi-day spreadsheet exercise, and one missed row means it's wrong.”

See how we solved this
MAFA Group · Odoo 17

“Finance has a depreciation schedule and operations has a spreadsheet of who's holding what — and they don't agree.”

See how we solved this
MAFA Group · Odoo 17

“We're manually retyping customer forms into the ERP all day — PDFs, scans, the occasional phone photo.”

See how we solved this
MAFA Group · Odoo 17

“Our biometric attendance data is technically 'real' but practically fiction — duplicate punches everywhere.”

See how we solved this
MAFA Group · Odoo 17

“Changing a single letterhead logo on our invoices means opening a code editor and redeploying.”

See how we solved this
MAFA Group · Odoo 17

“Our database backups exist, but nobody's confident they'd actually work in an emergency — or that the admin console is even locked down.”

See how we solved this
MAFA Group · Odoo 17

“Someone with admin rights accidentally uninstalled a module we depend on — and another admin could do the same tomorrow.”

See how we solved this
Aviation ERP · Odoo 18

“We need dashboards our team can actually build themselves, without a developer for every new chart.”

See how we solved this
Aviation ERP · Odoo 18

“We bill flight/project hours by hand, and disputes over 'how many hours was that really' happen constantly.”

See how we solved this
Aviation ERP · Odoo 18

“We file VAT for three companies in three GCC jurisdictions, and a gap between filing periods could go unnoticed.”

See how we solved this
Aviation ERP · Odoo 18

“Sales reps burn hours on repetitive CRM admin — writing the same follow-up checklists over and over.”

See how we solved this
Aviation ERP · Odoo 18

“Some posted journal entries don't match what they should — broken payments, and exchange-rate lines that drifted after posting.”

See how we solved this
Platform 01

MAFA Group — Odoo 17

One Odoo 17 codebase, deployed as four separate company instances: MAFA (parent company, industrial engineering, Jeddah), TechTrade24 KSA and TechTrade24 Germany (B2B industrial trading), and Eesint (Pakistan). Maintained continuously since April 2025.

Odoo 17 4 instances Saudi Arabia · Germany · Pakistan
Team-built modules
55
Lines of team-written code
~130k
Company instances
4
Maintained since
Apr 2025

Four separate instances, one codebase

  • MAFA Parent company · industrial engineering, Jeddah
  • TechTrade24 KSA B2B industrial trading
  • TechTrade24 Germany B2B industrial trading
  • Eesint Pakistan
MAFA Group · Odoo 17

Payroll that was off by half a day, every month

Four parts of the system each decided what counted as a working day. We replaced them with one classifier everything reads from.

Led by Umar · ~28,000 LOC Read the case study
MAFA Group · Odoo 17

A multi-day VAT exercise became a button

Every posted invoice, bill and reversal in the period, claimed automatically — and locked to that one batch.

Led by Umar · Excel layer by Yaseen Read the case study
MAFA Group · Odoo 17

Finance and operations finally agree on who holds what

An employee assignment became a stock move, so custody, location and book value resolve from one record.

Led by Umar · ~8,900 LOC Read the case study
MAFA Group · Odoo 17

Customer forms that read themselves, with a person signing off

A vision model extracts registration forms straight from incoming mail. It never writes to the database — an admin approves.

Led by Umar · ~4,350 LOC Read the case study
MAFA Group · Odoo 17

Biometric attendance data the payroll engine can trust

Three punches from one person became one event — and HR notifications stopped firing for months-old data.

Led by Umar Read the case study
MAFA Group · Odoo 17

Changing a logo stopped needing a deployment

Every report in the system, configurable from one settings screen — per report, per page, or per company and language.

Built by Yaseen & Umar Read the case study
MAFA Group · Odoo 17

Backups that run, and an admin console that is no longer wide open

Scheduled backups that can't collide, and a guard on Odoo's database manager that a compromised admin account can't switch off.

Built by Yaseen · Initial work by Umar · ~7,400 LOC Read the case study
MAFA Group · Odoo 17

A second lock on the modules the business can't lose

Per-module PIN protection whose recovery secret lives outside the database.

Built by Yaseen Read the case study

Plus: a financial dashboard and budget-vs-actual reporting suite (built by Yaseen), Saudi ZATCA e-invoicing compliance, sales/CRM/project analytics, geofenced attendance expensing, and roughly 45 further modules across finance, inventory, HR, and public self-service portals.

Platform 02

Aviation & Charter ERP — Odoo 18

A second Odoo 18 deployment for a Gulf-based charter aviation and logistics group, operating across the UAE, Saudi Arabia, and Bahrain as three companies under one multi-company instance. Built collaboratively across three engineers since October 2025.

Odoo 18 1 instance, 3 companies UAE · Saudi Arabia · Bahrain
Team-built modules
24
Lines of team-written code
~62k
Companies, one instance
3
Built since
Oct 2025

Three companies, one multi-company instance

  • United Arab Emirates Operating company
  • Saudi Arabia Operating company
  • Bahrain Operating company

Plus: a reusable report letterhead engine (Yaseen), percentage-based billing schedules, per-company sequence auto-provisioning that requires zero setup when a new operating company is added, a Central Bank exchange-rate integration, and a Gmail-Meet-style meeting UI for internal collaboration.

Facing something similar?

Tell us what's broken. Chances are we've already fixed a version of it.