5G
Cube: Construction Company Management - Screenshot 1

Cube: Construction Company Management

Cube Contracting

A single mobile app that runs a construction company's day-to-day: who worked where, for how many hours, what it cost, and who's been paid, from the job site to payroll. Bilingual (Arabic/English).

React NativeExpoTypeScriptNativeWindLaravelPHPMySQLFirebase

Overview

A construction firm running several job sites at once has a messy, expensive question to answer every week: who actually worked, where, for how long, what did we spend, and who do we owe? Traditionally that lives in paper timesheets, WhatsApp messages and spreadsheets, slow to collect, easy to get wrong, and painful to turn into payroll. Cube replaces all of that with one system: site supervisors log the day's work and spending from their phones in the field, and the office turns it into accurate payroll and reports with a couple of taps. It's the operational backbone for a construction company: workforce, sites, spending and payments in one place.

The Challenge

The people generating the data (foremen and workers) are on-site with a phone in hand, not at a desk, and the stakes peak at the end of the pay period, where small tracking errors turn into real money and disputes.

  • One app, three very different users: admins who set up the company and run payroll, foremen who run each day's shift in the field, and workers who just see their own shifts and pay.
  • Capturing shifts, check-ins and expenses accurately and quickly in the field, deliberately manual (no surveillance-style auto-tracking), which people actually trust.
  • Turning messy real-world hours into correct payroll, then locking a finalized period so it can't be quietly changed later.
  • Full RTL/LTR bilingual support, and a data footprint broad enough to cover workforce, payroll, expenses, a money ledger, and procurement.

How I Solved It

The flow mirrors how a construction company actually operates. The office sets up sites, workers, work types and pay rates. A foreman opens a shift at a site, assigns their crew, checks workers in and out (individually or in bulk), and enters hours when the shift is finished. Money is captured as it happens: expenses with photo receipts, supplier invoices, and a "wallet" ledger tracking each person's balance. Then the office closes the loop: logged hours automatically become payroll (hours × pay rate), marked paid or unpaid, then locked and exported to Excel so a finalized pay period is protected from edits.

It's a React Native (Expo) app in TypeScript (one codebase for the phones, with push notifications and offline-friendly local storage) talking to a Laravel (PHP) REST API with token-based auth and server-side role gating, backed by MySQL. The parts most expensive to get wrong (the money, payroll and permission logic) are covered by an automated test suite.

Key Features

  • Shifts & crew: foremen open shifts at a site, assign workers, check them in/out (individually or in bulk), log hours, and attach site photos/videos.
  • Payroll engine: rolls hours into salaries, tracks paid vs. unpaid, and lets the office finalize (lock) a date range and export it to Excel; locked periods are protected from edits.
  • Expenses: record site spending with amounts, invoice numbers and photo receipts; the office approves them as paid.
  • Wallets & refunds: every person has a balance; admins can refund an invoice straight back to a foreman's wallet, with every movement recorded.
  • Materials ordering: a flexible product catalog (categories with admin-defined custom fields) plus a foreman-orders / admin-approves workflow.
  • Sites & suppliers, reports & dashboards: construction locations with map pins, a flexible report builder, and role-specific analytics.
  • Live location, in-app chat, notifications and an audit log: opt-in GPS during a shift, admin/foreman messaging, event alerts with read tracking, and a full activity trail for accountability.

Results & Impact

Cube turns scattered field data into trustworthy payroll and financial records, saving hours of admin work each week and cutting the payroll errors and disputes that come from paper and chat. It's a genuinely large, production-grade system rather than a demo: a full set of feature screens across permission-gated roles, a substantial backend of controllers and data models, a broad API surface, a long history of database migrations (a product that's really evolved), and a fully translated interface in both English and Arabic, an unusually broad span (workforce, payroll, expenses, a money/wallet ledger, procurement and location) for a single app.

More Projects