Selected work

Case study 01

Construction ERP. An operating system for fit-out contractors.

Fit-out companies run several projects and sites at once. This system is the single source of truth for operations, finance, human resources, and an assistant that answers from live data inside the user’s role.

Sector
Construction and interior fit-out
Type
Multi-project ERP with an in-product assistant
Role
End-to-end owner: product, architecture, backend, frontend, assistant, and delivery

The business problem

  • Tender pricing, bills of quantities, and contracts sit apart from execution.
  • Change orders, client certificates, and subcontractor claims are not tied to cost or cash.
  • Material requests, quotes, purchase orders, and store movements are not one chain.
  • Attendance, leave, and payroll are manual, with no link to the site or an approval path.
  • Finance does not see the same project picture as operations.

What the platform changes

One source for the project

From the client, contract, and bill of quantities through change orders, schedule, cost, certificates, and collection.

Approval before execution

Sensitive documents do not move into operations until the role’s approval path is complete.

Site and office

Site diaries, inspections, petty cash, daily work, and subcontractors.

Procurement and stores

Supplier, request, quote comparison, purchase order, item, warehouse, and movement.

Project finance

Chart of accounts, journals, vouchers, cheques, bank reconciliation, and receivables and payables.

HR on the job

Employees, attendance inside the site geofence, leave balances, published payroll, and self-service.

The assistant

It does not invent figures or project codes. An operational answer comes from tools that read the system. A write waits for a preview and confirmation, then it is stored through the same rules and written to the audit log. The server refuses a tool the role cannot use.

Operations

Search projects, tenders, and bill lines. Open the user’s own approvals. Draft a site diary, material request, or lead, and save only after confirmation. Read an Excel file and import material prices after confirmation.

Leadership

Project status, tenders, waiting approvals, and contract value. Cost alerts: purchase-order exceptions, guarantees nearing expiry, store issues not yet costed, and pending change orders. Budget against actual, from the same data.

System workflow

The interface never connects to the database. The assistant uses the same session and the same permissions.

  1. 01Office, site, and leadership
  2. 02Web app and in-app assistant
  3. 03ASP.NET Core API /api/v1
  4. 04PostgreSQL

Browser to Next.js, then the API, then the database. The assistant calls the same API.

Project cycle

  1. Tender and bill of quantities
  2. Live project
  3. Variations
  4. Certificates
  5. Cost and cash

Technical architecture

FrontendNext.js 16, React 19, TypeScript, Tailwind CSS 4, Arabic RTL and English
AuthWeb session, JWT on the API
Backend.NET 10, ASP.NET Core, Clean Architecture
DataPostgreSQL, EF Core
AssistantIn-app chat, tools on live data, confirmation before writes, audit log
OpsDocker on AWS, health checks, structured logs

What I owned

  • Business scope: projects, tenders, site, procurement, finance, and HR.
  • The boundary: data and rules live behind the API only.
  • Approval paths, and the scope of company, sector, and role.
  • The assistant: instructions, role-scoped tools, confirmation, and the audit log.
  • Arabic and English, on mobile and desktop.
  • Release order: database, then API, then web. Egyptian rules in this release: certificates, Cairo-time attendance, and leave deducted on approval.