How leocondra/metro_canteiro_de_obras works
Metro Canteiro de Obras is a React app for tracking construction progress against a BIM model. A user signs in, uploads or selects an IFC model, views it and captures a processed snapshot, then submits that snapshot with a site photo for analysis. The app displays the resulting progress, class-level comparison and alerts, and keeps model files in Supabase Storage for history. The README documents a Supabase Edge Function using Google Vision; its implementation is not in the supplied tree, so analysis internals are not expanded here.
Main entry points: TelaInicial.jsx Work dashboard · Supabase.js Supabase client · IFCPanel.jsx IFC viewer · main.jsx App routing
Components 18
Access
- App routing
metro_canteiro_de_obras/src/main.jsx - Login
metro_canteiro_de_obras/src/Login.jsx - Work dashboard
metro_canteiro_de_obras/src/TelaInicial.jsx - Status bar
metro_canteiro_de_obras/src/components/TopBar.jsx
BIM models
- Model history
metro_canteiro_de_obras/src/components/HistorySidebar.jsx - IFC viewer
metro_canteiro_de_obras/src/components/IFCPanel.jsx - Snapshot edges
metro_canteiro_de_obras/src/utils/sobelUtils.js
Progress comparison
- Compare dialog
metro_canteiro_de_obras/src/components/CompareModal.jsx - Comparison report
metro_canteiro_de_obras/src/components/RelatorioComparacao.jsx - Progress panel
metro_canteiro_de_obras/src/components/PainelProgresso.jsx - Compared images
metro_canteiro_de_obras/src/components/ImagesModal.jsx - File conversion
metro_canteiro_de_obras/src/utils/fileUtils.js
Backend services
- Supabase client
metro_canteiro_de_obras/src/Supabase.js - Supabase Storage
- Admin records
- Analysis function
- Google Vision
Other components
- User
Connections 28
- User → App routing: opens app
- App routing → Login: routes login
- App routing → Work dashboard: routes dashboard
- User → Login: submits credentials
- Login → Supabase client: queries admin
- Supabase client → Admin records: reads credentials
- User → Work dashboard: uploads model
- Work dashboard → Supabase client: uploads model
- Supabase client → Supabase Storage: stores model
- Work dashboard → Supabase client: lists and removes files
- Supabase client → Supabase Storage: lists and removes files
- Work dashboard → Model history: passes history
- User → Model history: selects model
- Work dashboard → IFC viewer: renders viewer
- IFC viewer → Supabase Storage: fetches model
- IFC viewer → Snapshot edges: processes snapshot
- IFC viewer → Work dashboard: returns snapshot
- User → Compare dialog: selects site photo
- Work dashboard → Compare dialog: supplies snapshot
- Compare dialog → Work dashboard: passes photo
- Work dashboard → File conversion: converts snapshot
- Work dashboard → Analysis function: submits image pair
- Analysis function → Google Vision: analyzes images
- Analysis function → Work dashboard: returns progress and findings
- Work dashboard → Comparison report: supplies report
- Work dashboard → Progress panel: supplies progress history
- Work dashboard → Compared images: supplies compared images
- Work dashboard → Status bar: supplies status