Scafol — Construction Project Management Platform

Scafol is a B2B SaaS platform built to modernize construction project management in Indonesia. It enables contractors and project owners to monitor progress, manage finances, track logistics, and share documentation — all in real time, from any device. The platform serves two distinct user personas (owners and contractors) with tailored dashboards and role-based access, and is available on web, tablet, mobile web, and native mobile apps (iOS & Android).
Project Overview
The Indonesian construction industry is notorious for fragmented reporting, opaque financial flows, and project delays caused by poor site-to-office communication. Contractors juggle spreadsheets, WhatsApp messages, and manual ledgers — while project owners have no real-time visibility into what's happening on site.
Scafol was built to solve that. It is a comprehensive, multi-tenant SaaS platform under PT. Aplikasi Konstruksi Global that connects contractors and project owners in a single unified system. The platform covers the full operational lifecycle of a construction project: physical progress tracking, S-curve visualization, financial management (including earned value analysis), logistics and material control, and document storage.
The product is live at scafol.com, available as a web application at app.scafol.com, and distributed via both the Google Play Store and Apple App Store for mobile access.
Business Outcomes
- Dual-sided product adoption: Separate onboarding flows and dashboards for Owners and Contractors, increasing platform stickiness from both sides of the construction relationship.
- Monetization-ready: A dedicated pricing page (
/biaya) with tiered plans built into the architecture from day one. - Reduced reporting overhead: Automated PDF and Excel report generation eliminates hours of manual data formatting per project per week.
- Real-time site-to-office sync: Field teams can submit logistics entries, progress photos, and material movements directly from their smartphones — instantly visible to the central office.
- Increased financial accountability: Earned Value Management (EVM) integration (ACWP, BCWS, BCWP) gives owners automated cost/time performance analysis, a feature typically reserved for enterprise construction software.
- Cross-platform reach: Web + iOS + Android coverage ensures the platform is accessible to both office staff and field workers regardless of device.
What I Built
1. Multi-Tenant Project Architecture
Designed the core data model to support multiple organizations, each with isolated project workspaces. Projects are shareable between contractors and owners via a permission-based sharing system, allowing real-time collaborative visibility without full account merging.
2. Progress Reporting Module
Built a structured progress tracking system where contractors log work item completion, and the system automatically calculates physical progress weights. Reports are generated on-demand in multiple formats:
- Resume report
- Weekly report
- Monthly report
- Full project report All exportable as PDF or Excel with a single click.
3. S-Curve (Time-Schedule vs. Realization) Visualization
Implemented a graphical S-curve chart comparing planned time schedule against actual progress realization — a standard construction industry KPI visualization — rendered via jQuery-powered charting on the frontend.
4. Financial Management Module
Built a comprehensive construction finance ledger covering:
- Purchase Orders
- Cash income & expenditure tracking
- Accounts receivable & payable
- Cashflow statements
- Cost of Goods Produced (Harga Pokok Produksi / HPP) — including BOQ calculations for residential construction
5. Earned Value Management (EVM) Engine
Implemented the full EVM methodology into the backend:
- ACWP (Actual Cost of Work Performed)
- BCWS (Budgeted Cost of Work Scheduled)
- BCWP (Budgeted Cost of Work Performed)
- Automatic variance analysis and project completion estimation — enabling early detection of cost and schedule overruns.
6. Cost Control Dashboard
Built a RAP (Rancangan Anggaran Pelaksanaan) vs. realization comparison tool that automatically flags budget deviations and prevents projects from going over budget silently.
7. Logistics & Material Management
Designed a logistics module for field teams to log material inflow/outflow directly from the job site via smartphone. The system:
- Tracks materials consumed per work item
- Maintains real-time stock levels
- Auto-syncs to the central office
8. Document & Photo Management
Built a cloud document storage system supporting multiple file types (DWG, SKP, images, PDFs) for design and project documentation. Photos taken from the mobile app are uploaded and synced to the project dashboard in real time.
9. Role-Based Access Control (RBAC)
Implemented a granular multi-role system distinguishing between owners, contractors, and team members — with invite-based team access and configurable project-level permissions.
10. Multi-Device Responsive UI
Delivered a fully responsive interface optimized for web, tablet, and mobile — ensuring usability for both office staff and on-site field workers. Complemented by native iOS and Android apps for the most field-intensive interactions.
11. Marketing Website
Built and maintained the public-facing marketing site at scafol.com, including feature pages, pricing, blog, help center, and dual CTAs for Owner vs. Contractor onboarding.
Technical Constraints
- PHP CodeIgniter 3 — a mature, proven MVC framework well-suited for rapid structured development in the Indonesian market; chosen for its low server requirements and ease of deployment on affordable hosting infrastructure.
- MySQL — relational database backing all project, financial, and logistics data with normalized schemas to support multi-tenant isolation.
- jQuery — used for DOM manipulation, AJAX-based data interactions, and chart rendering on the frontend; avoids heavy JS framework overhead for a server-rendered application.
- Server-rendered HTML — pages are rendered server-side via CodeIgniter views, keeping the architecture simple, SEO-friendly, and fast on low-bandwidth connections common on construction sites.
- No CDN or edge infrastructure assumed — the system is designed to work reliably on standard shared or VPS hosting environments typical in the Indonesian market.
Key Challenges and How They Were Solved
Challenge 1: Multi-Tenant Data Isolation at Scale
Problem: Multiple independent organizations (contractors, owners) needed complete data isolation while allowing selective project sharing between them.
Solution: Designed a multi-tenant schema with organization-scoped project ownership. A dedicated project-sharing model was introduced as a join table with explicit permission levels, allowing cross-organization visibility without data leakage. All queries are scoped by organization_id at the model layer.
Challenge 2: Automated Report Generation (PDF + Excel)
Problem: Construction reports are complex, multi-page formatted documents. Generating them dynamically from live database data — in both PDF and Excel formats — without manual reformatting is non-trivial.
Solution: Built a report generation pipeline in PHP that compiles relational data (progress weights, timelines, financial figures) into structured view templates, then renders them into PDF via a PHP PDF library and Excel via PHPSpreadsheet-compatible output. Users trigger generation with a single click; the system assembles and streams the file.
Challenge 3: Earned Value Calculation Accuracy
Problem: EVM (Earned Value Management) requires precise real-time calculation of ACWP, BCWS, and BCWP across multiple work items and time periods. Errors in the calculation engine would directly mislead project owners about cost performance.
Solution: Built isolated EVM calculation functions at the service layer, unit-tested against known project scenarios. The system stores both planned schedules and actual progress snapshots, computing variance metrics on-the-fly from these two data sources on every dashboard load.
Challenge 4: Real-Time Field-to-Office Sync on Mobile
Problem: Field workers have intermittent connectivity on construction sites. The system needed to feel "real-time" without a complex WebSocket or offline-first architecture.
Solution: Leveraged AJAX polling via jQuery for lightweight data refresh on the dashboard. Mobile app submissions (photos, logistics entries) are processed via RESTful API endpoints in CodeIgniter that accept and persist data immediately, making entries visible on the web dashboard within seconds of submission.
Challenge 5: Dual-Persona UX Without Complexity Overload
Problem: Owners and contractors have fundamentally different goals on the same project — one monitors, the other manages. Serving both from a single codebase risked either over-complicating the UI or under-serving one persona.
Solution: Designed separate entry points (/register vs /register/contractor), distinct dashboard layouts, and RBAC-gated feature visibility. Shared data (project progress, financials) is presented through persona-specific lenses — owners see summary and approval views; contractors see input, logging, and reporting tools.
Stack
Layer
Technology
Backend Framework
PHP CodeIgniter 3
Database
MySQL
Frontend Interactivity
jQuery
Report Generation
PHP (PDF + Excel export)
Mobile Apps
iOS (App Store) + Android (Google Play)
Hosting
VPS / shared hosting (Indonesia region)
Architecture
Server-rendered MVC (CodeIgniter Views)
Auth
Session-based with RBAC
Rendering Strategy
Server-Side Rendering (SSR) via CodeIgniter MVC.
All pages are rendered server-side using CodeIgniter's View layer, returning fully-formed HTML to the browser. This approach was chosen for:
- Performance on low-bandwidth connections — common on Indonesian construction sites
- SEO compatibility for the public marketing pages
- Simplicity of deployment — no Node.js runtime, no build pipeline required
- Maintainability — a single-language PHP codebase is easier to hand off and extend
Dynamic interactions (charts, AJAX form submissions, live data refresh) are layered on top via jQuery without a full SPA architecture, keeping time-to-first-byte fast and progressive enhancement intact.
Key Engineering Challenges Solved
- Multi-tenant schema design with project-level sharing across organizational boundaries — without data leakage or query performance degradation.
- EVM financial engine — real-time earned value calculation (ACWP, BCWS, BCWP, variance, completion estimates) derived from live project data, surfaced in a human-readable dashboard.
- Automated multi-format report generation — dynamic construction reports rendered as PDF or Excel from relational data, triggered on-demand without pre-generation queues.
- Role-based access control across three user types (Owner, Contractor, Team Member) with project-level permission inheritance.
- Cross-platform mobile-first logistics — field-to-office material and progress sync via REST API consumed by both the mobile app and the jQuery-powered web dashboard.
- S-Curve visualization engine — planned vs. actual schedule comparison charts generated from structured project timeline and progress data, rendered client-side via jQuery charting.
- HPP (Harga Pokok Produksi) calculation — automated cost-of-goods calculation for construction including BOQ (Bill of Quantities) breakdowns, a domain-specific financial computation unique to the Indonesian construction market.