Traceable construction reporting
The system converts daily-report PDFs and cloud files into project-scoped data for owners, contractors, and subcontractors.
01Context
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.
02System
Architecture
SharePoint, FileCloud, and PDF sources
Project-scoped ingestion
PDF extraction workers
Raw and normalized records
Validation and provenance
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.
03Validation
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.
04Outcome
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.