Contractor ERP
Project, Labour & Supplier Operations
Site-wise project cost: labour, material, supplier bills and running-account billing against a budget.
- TYPE
- PROJECT OPS
- STATUS
- BUILDING
- YEAR
- 2026
- ROLE
- System design, full-stack implementation
- PLATFORM
- Flutter (Android + Web), Node.js API
- STACK
- Flutter · Node.js · MySQL · REST
PROBLEM
A contractor running several sites knows the contract value and the bank balance, and very little in between. Labour is paid weekly in cash, material moves between sites, supplier bills arrive late, and the client is billed on measurement.
Whether a site is making money is usually discovered after it is finished, which is exactly too late to do anything about it.
SYSTEM
The project is the cost centre. Every labour entry, material issue, supplier bill and client billing is booked against a project and, where it matters, a work item within it.
Budgeted against actual is the primary screen rather than a report at the end. The system is built so a site engineer entering attendance is, without thinking about it, maintaining project cost.
CORE FLOW
How the operation moves through the system.
- Contract value, work items, budget per head, timeline
- Daily attendance per site, rate per category, weekly payout
- Purchase, site issue, inter-site transfer and consumption
- Bill against receipt, retention and payable ageing
- Measurement-based running account bill to the client
- Project-wise cost and revenue posted to the shared engine
- Budget against actual per project and per work item
Project cost flow from project setup through labour, material, supplier bills and client billing into accounting and a margin view.
KEY MODULES
- M01Projects
- Contract value, work items, budget per head and timeline.
- M02Labour
- Site attendance, category rates, advances and weekly payout.
- M03Material
- Site issue, inter-site transfer, consumption and closing stock.
- M04Suppliers
- Bills against receipt, retention, payable ageing and payment.
- M05Client billing
- Measurement-based running account bills with retention and deduction.
- M06Cost view
- Budget against actual, per project and per work item.
ARCHITECTURE
- Cost centre
- Project is a first-class dimension on every transaction, not a free-text tag.
- Field client
- Attendance and material issue entered on site, offline-tolerant.
- Accounting
- Posts to VS Accounts with the project dimension preserved.
- Data
- MySQL; measurement and billing history retained for claim disputes.
ENGINEERING
The parts that were not obvious, and what the system does about them.
- 01 / 03
Attendance is the real data-entry problem
Project cost is only as good as daily labour capture, which happens on a dusty site with one bar of signal. The entry screen is a single-tap grid per category and works offline, because a perfect cost model with no attendance data is worthless.
- 02 / 03
Material that moves between sites
Steel issued to one site and moved to another must leave the first project cost and enter the second. Transfers are modelled as paired movements rather than an edited issue, so both project costs stay defensible.
- 03 / 03
Running account billing arithmetic
Each client bill is cumulative measurement minus everything billed before, with retention and deductions. It is modelled as cumulative-to-date with a derived current bill, which is the only version that survives a revised measurement.
SCREENS
- SCREEN_01Site attendance grid
- SCREEN_02Project cost — budget against actual
- SCREEN_03Running account bill
RESULT
Site profitability becomes visible while the site is still running, which is the only time the number is useful.
Labour, material and supplier cost land on the project as it is incurred rather than being reconstructed at closure.