← Missions

Construction Takeoff Module (Desktop-Grade Web App)

Budget: $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.
Ouvrir sur Upwork