Project index

ConTrust Suite / multi-tenant reporting

Traceable construction reporting

The system converts daily-report PDFs and cloud files into project-scoped data for owners, contractors, and subcontractors.

Evidence
CLIENT SYSTEMPRODUCTION
Stack
FastAPIPostgreSQLPydanticReactPDF workers
01

Context

Problem

Construction teams needed one reporting model across daily-report PDFs, SharePoint, and FileCloud without losing tenant boundaries or document evidence.

Constraints

  • Owners, contractors, and subcontractors required different project scopes.
  • Extracted values needed to remain traceable to the original document.
  • The platform spanned several repositories and worker processes.
02

System

Architecture

  1. 01

    SharePoint, FileCloud, and PDF sources

  2. 02

    Project-scoped ingestion

  3. 03

    PDF extraction workers

  4. 04

    Raw and normalized records

  5. 05

    Validation and provenance

  6. 06

    Reporting workflows

My role

Led architecture and OCR work across FastAPI services, React workflows, PDF workers, shared Pydantic schemas, benchmarks, and reporting modules.

Decisions

  • Kept raw and normalized data as separate records.
  • Enforced project and tenant boundaries through scoped credentials and database policies.
  • Reduced requirements to user behavior, domain invariants, failure semantics, and acceptance criteria.
03

Validation

What failed

  • Early AI-assisted requirements were too verbose and prescribed implementation details.
  • Engineers had difficulty separating required behavior from suggested implementation.

Tests and checks

  • Used source-evidence contracts and real-document regression tests.
  • Required idempotent worker completion and bounded retry behavior.
  • Benchmarked extraction against retained document evidence.
04

Outcome

Result

The platform supports seven reporting workflows while retaining file, page, section, raw label, and validation state for normalized values.

  • Project-scoped source-file review
  • Report navigation
  • Dashboard metric mapping
  • Missing-data semantics
  • Canonical review
  • Manpower and equipment analytics
  • Grounded daily briefs and questions

What I would change today

Start with user behavior, domain rules, failure states, and acceptance criteria. Keep framework and service choices in architecture records after those requirements are clear.