Construction Takeoff Module (Desktop-Grade Web App)
Költségvetés: $25.0 - $47.0
HOURLY / FULL_TIME
⭐ 5.00 (8)
United States
react-js, javascript, node.js, api-development, amazon-web-services, docker, redis, postgresql, web-programming
We are building a high-performance construction takeoff module inside an existing AI-native construction platform. The module must feel as fast and smooth as a desktop takeoff tool (e.g. PlanSwift), not like a standard web PDF viewer. Users need to open drawings, zoom, pan, measure, code items, revise quantities, and export takeoff data into the main platform with minimal lag.
This is a substantial full-stack project spanning a custom drawing engine, PDF processing pipeline, measurement tooling, versioning, REST APIs, and platform integration.
Core Requirements
1. Drawing viewer (highest priority)
Desktop-grade performance: instant pan/zoom, smooth zoom-to-cursor, fast sheet switching
Tile-based rendering — server-side sheet rendering to S3; viewer loads cached tiles, not live PDF
Canvas or WebGL drawing surface with a separate overlay for takeoff geometry
No full-page React rerenders on mouse move; measurement previews at ~60 FPS where possible
Tile preloading, virtualized thumbnails, IndexedDB/local cache for recent projects
2. PDF processing pipeline
Import from platform document connectors and manual user upload (drag-and-drop, progress, background processing)
Split PDFs into sheets; extract metadata: sheet number, name, discipline, title, scale, rotation, thumbnails, OCR/text, tile pyramid, revision fingerprints
Store raw PDF + rendered assets in object storage (S3)
3. Takeoff tools
Linear, area, perimeter, count, rectangle/polygon area
Scale calibration and assignment
Select, pan, duplicate, move/delete points, undo/redo, layers, keyboard shortcuts
Live quantity updates; optimistic UI + background autosave; bulk-save endpoints
4. CSI coding (required)
Every takeoff item must have a valid 6-digit CSI code before export
CSI picker: search by code, name, trade; optional AI suggestions (user must confirm)
Measurements inherit CSI from parent takeoff item
5. Data model
Store measurements as vector geometry, not just totals — fully traceable to project, plan set, sheet, sheet version, takeoff item, CSI code, user, scale snapshot
Hierarchy: Project → Plan Set → Sheet → Sheet Version → Measurements → Takeoff Items
6. Revisions and addendums
Match sheets across plan sets; mark new/changed/unchanged/deleted/replaced
Never silently overwrite old takeoff data
Carry-forward measurements to new versions; mark changed sheets as needs_review
Compare mode: side-by-side, overlay, highlight changes
7. API and platform integration
Full REST API: plan sets, sheets/tiles, takeoff items, measurements (including bulk), CSI, revisions, export
Export approved quantities to estimating, procurement, scope ledger, etc.
Publish integration events (e.g. plan set processed, quantities ready, exported to estimate)
8. AI-assisted features (non-blocking)
Sheet detection, discipline/title detection, CSI suggestions, revision matching — all as confirm-first suggestions; manual takeoff must work while AI runs in background
Technical Stack (expected)
Frontend: React (or similar) + Canvas/WebGL; web workers for geometry; spatial indexing for hit testing
Backend: Containerized API (Docker); background workers for PDF processing
Infra: S3 (or compatible storage), Redis, job queue, PostgreSQL (or similar)
Performance: Server-rendered tile pyramids, Redis caching for metadata, bulk save patterns
UI Layout
Left: Plan sets, sheets, revisions, addendums, search/filter
Center: High-performance viewer + measurement overlay
Right: Takeoff items, CSI, description, quantity, unit, color/layer, assembly
Bottom: Quantity summary, export status, scale, selected item
Deliverables (milestone structure)
Milestone 1 — Proof of quality
Manual upload → sheet processing → tile viewer with smooth pan/zoom → scale calibration → linear/area/count tools → live quantities → 6-digit CSI coding. Delivered as a live demo proving desktop-grade performance.
Milestone 2 — Functional and connected
Full data model, autosave/bulk save, REST API, connector import, export + events into main platform.
Milestone 3 — Polished and ready for use
Revisions/addendums, compare workflows, carry-forward with needs_review, performance hardening for large plan sets, full tool/shortcut set, AI suggestions, completion against acceptance criteria.
Acceptance criteria (summary)
The module is complete when users can: upload/import plan sets; view sheets in a fast viewer; calibrate scale; create all takeoff types; assign required CSI codes; see live quantities; persist vector geometry; handle revisions without data loss; carry forward and review changed sheets; export approved quantities via API; and use large plan sets without freezing the browser.
Required experience
Strong portfolio in canvas/WebGL or similar high-performance drawing UIs
PDF processing (splitting, rendering, tiling) at scale
Construction takeoff, estimating, or AEC software (highly preferred)
REST API design, background job processing, object storage
Performance optimization: tile pyramids, spatial indexes, optimistic UI, bulk persistence
Comfortable working in an existing codebase and Docker-based staging environment
Nice to have
PlanSwift, Bluebeam, or similar takeoff tool experience
CSI / MasterFormat familiarity
Revision compare / diff workflows on drawings
Event-driven platform integration
Engagement
Remote, milestone-based delivery with clear demo at each stage
Access to staging environment, repo, and existing platform APIs provided
Strong communication and ability to work independently with a detailed build spec
To apply
Please include:
Examples of high-performance drawing/canvas or map/tile-based viewers you’ve built
Relevant construction or takeoff experience, if any
Your proposed approach to the tile pipeline + viewer (brief)
Estimated timeline per milestone
Any questions about scope before quoting
Detailed build script with API endpoints, data models, database tables, and full acceptance criteria will be shared with shortlisted candidates.
Megnyitás Upworkön