# Ruel Ops Portal — Ruel Concrete Ltd > Marketing site + offline-first field operations, safety and COR compliance portal for an > Alberta concrete, asphalt, aggregate and heavy construction supplier (Peace River & Slave Lake). Built as a replacement for SiteDocs and paper forms. > Machine-readable full feature spec: https://ruelconcretedemo.live/ai-features.json Stack: TanStack Start v1 (React 19), Vite 7, Tailwind CSS v4, shadcn/ui, Supabase (Postgres/Auth/Storage), Google Maps, vite-plugin-pwa (service worker + offline outbox), tesseract.js OCR, client-side PDF export. ## Structured data for AI agents - [Full feature + data-model spec (JSON)](https://ruelconcretedemo.live/ai-features.json): every module, route, field, role and reusable pattern - [Sitemap](https://ruelconcretedemo.live/sitemap.xml) ## Crew portal (open demo, phone-first, works offline) - [Today](https://ruelconcretedemo.live/today): today's dispatch assignment, start-of-day prompt - [FLHA](https://ruelconcretedemo.live/flha): field level hazard assessment with excavation depth/soil/protective-system logic, Alberta OHS Code citations, photo + OCR upload, signatures, GPS geofence check - [Checklists](https://ruelconcretedemo.live/checklists): runnable mixer truck (22 items, signature required), excavator (18), site verification (17), crushing plant (20) pre-trip inspections - [Daily ticket](https://ruelconcretedemo.live/daily-ticket): LEMS labour / equipment / materials with AFE selection and client signature - [Locates](https://ruelconcretedemo.live/locates): Alberta One-Call tickets with expiry countdowns and dig-radius map - [Incidents](https://ruelconcretedemo.live/incidents): near-miss and incident reports with scene photos and GPS - [Tool checkout](https://ruelconcretedemo.live/tool-checkout): QR check-out / return of small equipment ## Back office (read-only public demo; live records require staff sign-in) - [Field inbox](https://ruelconcretedemo.live/admin/field-inbox): live field submissions, photo thumbnails, GPS, pending/sent/delivered status, CSV + PDF export - [Dispatch](https://ruelconcretedemo.live/admin/dispatch): morning board, crew templates under a foreman, conflict detection - [COR readiness](https://ruelconcretedemo.live/admin/cor-readiness): live Alberta COR audit scoring by element with linked evidence - [Assets](https://ruelconcretedemo.live/admin/assets): inventory, QR tags, location by truck/shop, repair + checkout history - [Job sites](https://ruelconcretedemo.live/admin/job-sites): map pin drop, geofence radius, 17-item OHS site checklist - [Field map](https://ruelconcretedemo.live/admin/field-map): sites, active locates and incidents on one map - [Permissions](https://ruelconcretedemo.live/admin/permissions): admin / supervisor / crew capability matrix - [Offline tools](https://ruelconcretedemo.live/admin/offline): PWA cache status, outbox queue, connectivity simulation ## Public site - [Home](https://ruelconcretedemo.live/) — includes public safety performance dashboard (safe hours, LTI days, COR status) derived from real records - [Services](https://ruelconcretedemo.live/services), [Safety](https://ruelconcretedemo.live/safety), [Safety policy](https://ruelconcretedemo.live/safety-policy), [Equipment](https://ruelconcretedemo.live/equipment), [Contact](https://ruelconcretedemo.live/contact), [Request a bid](https://ruelconcretedemo.live/request-a-bid) - [vs SiteDocs comparison](https://ruelconcretedemo.live/vs-sitedocs) ## Reusable patterns in this build - Offline outbox: write local first, queue, flush on reconnect, expose queue depth - Geofence flag (not block) by comparing device GPS to site radius on submit - Immutability after supervisor sign-off - Capability matrix instead of scattered role checks; roles in a separate table with a security-definer has_role() - Tables on desktop, card stacks under md; mobile baseline 393px - Chunk-load-error self-healing: purge caches, unregister service worker, reload once Built by Strategic Local Marketing Inc. — https://wa.me/message/4JNO3PZRLKDCG1