Invoice mailbox4 languagesCrew timesheetsGoogle SheetsInvoice readerwith arithmetic checkSplit by projectBudgetsAccounting exportDaily digestin each person’s language
Job costing for a construction company, on its own server
Client
Construction and aluminium fabrication, Lithuania and Germany
Timeline
3 weeks to production
Status
Live since September
The company rented a third-party service for job costing and wanted its own, connected to its accounting software. Invoices now arrive by e-mail, get read, split across projects and exported to the ledger.
The problem.
Supplier invoices came in four languages and two number formats. Someone had to type each one, decide which project it belonged to and copy it into accounting. Foremen could not see their budget until the month was closed.
What we built.
Projects with budgets per cost category and a log of every budget change with its reason.
An invoice mailbox read every five minutes. Project and category come from the e-mail subject in any of four languages; if a letter cannot become an invoice, the sender gets a reply saying why.
Invoice recognition with arithmetic checks and Lithuanian and German number formats.
Line-level split of an invoice across projects. The server will not approve it until the split adds up to 100% and the supplier, number, date and totals check out.
Export to the accounting system. New suppliers are created there automatically before their first invoice.
Four roles with data scoping: a foreman sees only his own projects, including in totals and counters.
Decisions worth explaining.
Their server, not ours
The system runs as native Windows services on the client’s machine, with HTTPS and nightly backups. Docker Compose is kept as an option if they move.
Tests gate every deploy
A release does not go out unless the test suite passes. That is how the system stayed stable through daily changes in the first weeks.
In numbers.
4interface languages: LT, DE, EN, RU
5 minfrom an e-mailed invoice to a draft in the system