Construction Prototype Test Report — 16 October 2026
Executed checks for material approvals, progress, finances, offline drafts and restricted access. Read the environment and limitations alongside the results.
What the tests establish
The tested local prototype passed the listed workflow, calculation and browser checks. Live unauthenticated requests were denied access to the workspace and API. Offline capture and manual sync worked in an already-open page; reopening that page while disconnected did not. These results do not establish production reliability or a completed construction project.
Download individual test results and source fingerprints (JSON)
Test environment and version
Test run: 16 October 2026. Automated checks were executed with Codex for Digittrix. This is a first-party prototype report, not an independent security audit, a completed construction client project or a technical review signed by Harsh Abrol.
The workflow library, admin controller, workspace HTML, JavaScript and CSS tested locally matched the deployed files by SHA-256 before testing. Full fingerprints and individual check names are available in the downloadable results. No live administrator session was used for workflow mutations.
Local environment: PHP 8.5.4 and Chrome 154.0.8037.98 on macOS 15.8.2. Browser tests used widths of 1440, 768, 390 and 320 CSS pixels. Mobile views were emulated in desktop Chrome; no physical mobile-device test is claimed.
Source fingerprint: c0cae7345a6e7581932528044e7990d59a522169d8af7b16a4560b1b0669d31b. The local browser fixture reused the deployed workflow library and front end. Its session adapter is test-only; authentication was tested separately using the real controller in an isolated CodeIgniter session and unauthenticated requests to the live site.
Results by test layer
Counts are grouped by layer and include overlapping coverage. They are not a count of independent security vulnerabilities assessed or proof of production readiness.
| Layer | Observed result | Boundary |
|---|---|---|
| Workflow API fixture | 27 checks passed | Local material, approval, retry, revision and role-preview rules. |
| Finance and progress library | 29 checks passed | Local cost, payment, invoice, variation and task calculations. |
| Admin controller and CSRF | 19 checks passed | Isolated framework sessions for anonymous, staff, admin and logged-out states. |
| Browser workflow and layout | 18 checks passed | Includes explicit checks of the offline-reload limitation; not a claim that offline reopening works. |
| Live public access | 6 unauthenticated requests denied; media page returned 200 | No login credentials or session cookies supplied. No authenticated live workflow mutation was performed. |
Reproduce the material and finance checks
- Start a fresh fictional workspace. Return the 120-bag request, resubmit 100, approve it and create an order at USD 8 per bag. An order before approval must be rejected.
- Record 60 accepted and 2 rejected bags. Expect Part received, 40 outstanding and USD 480 accepted material cost. Resend the identical operation: the receipt count and workspace revision must not increase.
- Submit a new operation with the same delivery reference: expect rejection. Attempt 41 additional accepted bags when 40 remain: expect rejection with no partial state change.
- Receive the final 40 bags and close the order. In the API scenario, actual cost becomes USD 23,300 from the USD 22,500 seed and USD 800 accepted materials; open commitments become zero.
- In the browser scenario, add a USD 250.55 expense and pay USD 100.25. Expect USD 150.30 unpaid and USD 23,550.55 total actual cost. Attempt to pay USD 151 more: the form must reject it. These scenarios use separate resettable test sessions.
Observed browser results
| Check | Observed result |
|---|---|
| Partial receipt entered through the browser form | 60 accepted, 2 rejected, 40 outstanding against an order of 100. |
| Expense and partial payment reconcile | USD 250.55 cost and USD 100.25 payment leave USD 150.30 unpaid; project actual cost is USD 23,550.55. |
| Overpayment is rejected in the UI | USD 151 exceeds the remaining USD 150.30; the form shows an error. |
| Blocked task affects progress | One blocked task is reflected in the progress summary. |
| Responsive layout at 1440 CSS pixels | Materials, finances, progress and reports fit the page width; data tables scroll within their containers. |
| Responsive layout at 768 CSS pixels | Materials, finances, progress and reports fit the page width; data tables scroll within their containers. |
| Responsive layout at 390 CSS pixels | Materials, finances, progress and reports fit the page width; data tables scroll within their containers. |
| Responsive layout at 320 CSS pixels | Materials, finances, progress and reports fit the page width; data tables scroll within their containers. |
| Mobile drawer navigation | Selecting Finances closes the drawer and opens the module. |
| Network-disconnected capture in an open workspace | Browser network disabled; report stored locally as Pending sync and absent from server-loaded records. |
| Reconnect and manual sync | Exactly one report appears after successful manual synchronization; queue clears. |
| Stale queued draft requires review | A changed workspace causes Needs review rather than automatic overwrite. |
| Reviewed retry succeeds | Explicit review and retry submits one report with the current revision. |
| Offline reopening limitation observed | Reload fails with the browser disconnected: the authenticated workspace is not cached for offline reopening. |
| Draft survives failed offline reload | After network restoration and reopening the same session, the queued draft is available and synchronizes. |
| CSV payment export | Downloaded CSV includes the tested USD 100.25 payment. |
| Client preview hides internal finance | Finance navigation and internal finance payload are absent from the role preview. |
| Browser JavaScript errors | No page JavaScript errors during the run. |
Observed live access responses
Responses were observed without session cookies on 16 October 2026. Rejection codes differ by route and method. In the isolated controller tests, valid administrators could open the workspace, staff were denied, missing/invalid CSRF tokens were rejected and logout prevented later mutations. Role switching inside the prototype is an administrator preview and does not change the authenticated identity.
| Unauthenticated request | HTTP status | Observed result |
|---|---|---|
| GET /admin/construction-demo | 401 | Denied without workspace state |
| POST /admin/construction-demo | 404 | Denied without workspace state |
| GET /admin/construction-demo/api | 401 | Denied without workspace state |
| POST /admin/construction-demo/api | 403 | Denied without workspace state |
| GET /construction-demo/api.php | 403 | Denied without workspace state |
| POST /construction-demo/api.php | 403 | Denied without workspace state |
| GET /construction-website-app-development/construction-web-app-demo | 200 | Public videos and screenshots; no interactive role selector |
Limits and tests still required
Offline reload is an observed limitation, not a failed promise of offline reopening. The blank offline worksheet includes additional scenarios that were not run here, including real attachment-upload failures and storage exhaustion. Its proposed checks must not be confused with this report’s executed results.
Production deployment needs agreed device testing, security review, migration reconciliation, acceptance criteria and a field pilot. Interfaces, integrations, hosting, support and prices remain proposal-specific.
- The authenticated workspace cannot be reopened while disconnected. Draft capture was tested in an already-open page; draft recovery was tested after reconnecting in the same session.
- Role selection is an administrator preview, not separate authenticated customer accounts. Multi-project isolation was not tested.
- No physical Android/iOS devices, Safari/Firefox, native apps, prolonged disconnection, storage exhaustion, live third-party integrations, uploaded-file failure handling, production load or construction-site pilot were tested.
- Only fictional data and supplied sample illustrations were used. No client records, production payment processing or measured business benefits are established.
Continue planning
- Offline Construction Site Reporting: Scope, Sync & Testing
- Construction Material Approval Workflow: Request to Receipt
- Construction Software Cost: Build, Buy or Integrate?
- Construction website and app development services
Share your current records, tools and first-release goals. Interfaces, integrations, migration, support and pricing are confirmed for the agreed proposal.
Discuss Your Construction Project