A full-stack web application connecting Builders and Contractors with AI-powered quoting, BIM 3D visualization, and blockchain-secured milestone-based escrow payments.
π Live Demo: https://bim-build-trust.lovable.app
In the construction industry, the quotation and procurement process is fragmented, opaque, and prone to disputes:
- Builders struggle to compare contractor quotes objectively
- Contractors lack a centralized platform to discover and bid on projects
- Payment disputes arise due to lack of milestone verification
- No transparency in fund flow between parties
- Manual processes lead to errors in risk assessment and contract drafting
- No immutable proof of project completion or contractor reputation
ConQuote Connect is a smart construction quotation platform that digitizes the entire builder-contractor workflow:
- Builders post projects with budgets, timelines, and optional BIM/3D model files
- Contractors browse open projects and submit structured quotes
- AI Tools analyze quotes, assess project risks, and auto-generate contract drafts
- BIM Viewer enables 3D model visualization with milestone tagging and annotations
- Blockchain Escrow locks funds on-chain and releases them per approved milestone
- NFT Certificates provide immutable proof of project completion
- Reviews & Ratings build verifiable contractor/builder reputation
- Real-time Chat enables project-scoped communication with file sharing
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FRONTEND β
β React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui β
β βββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββββ β
β β Landing β β Builder β βContractorβ β Shared Pages β β
β β Page β β Panel β β Panel β β (AI, BIM, Escrow)β β
β βββββββββββ ββββββββββββ ββββββββββββ ββββββββββββββββββββ β
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββ β
β β Three.js/R3F β β Ethers.js β β React Query β β
β β BIM Viewer β β Wallet/Escrowβ β Data Fetching β β
β ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββ β
ββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β BACKEND (Supabase) β
β ββββββββββββ ββββββββββββββββ βββββββββββββββββββββββββββ β
β β Auth β β PostgreSQL β β Edge Functions β β
β β (Email) β β + RLS β β (AI Tools via Lovable AI)β β
β ββββββββββββ ββββββββββββββββ βββββββββββββββββββββββββββ β
β ββββββββββββ ββββββββββββββββ β
β β Storage β β Realtime β β
β β (Files) β β (Messages) β β
β ββββββββββββ ββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β BLOCKCHAIN (Sepolia) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β MilestoneEscrow.sol (Solidity 0.8.20) β β
β β β’ deposit() β lock ETH per milestone β β
β β β’ releaseFunds() β pay contractor on approval β β
β β β’ dispute() / resolveDispute() β conflict resolution β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β MilestoneCertificateNFT.sol (ERC-721) β β
β β β’ mintCertificate() β immutable completion proof β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Email/password signup & login with email verification
- Role selection: Builder or Contractor
- Role-based routing and dashboards
- Row-Level Security (RLS) on all database tables
- Protected routes with auth guards
- Create projects with title, description, location, budget range, timeline
- Upload BIM/IFC files for 3D visualization
- View and compare contractor quotes side-by-side
- Award projects to winning contractors
- Track milestones and approve/reject completed work
- Leave reviews and ratings for contractors
- Browse open projects with search and filters
- Submit structured quotes (pricing, materials, timeline, notes, PDF upload)
- Track awarded projects and milestones
- Submit milestones for builder review
- View earned NFT completion certificates
- Leave reviews and ratings for builders
- Quote Analysis β AI compares quotes highlighting pros, cons, and value
- Risk Assessment β evaluates project risk based on scope, budget, timeline
- Contract Draft Generator β auto-generates contract from project + quote details
- Upload and display IFC/3D model files (Three.js + React Three Fiber)
- Pan, zoom, rotate controls
- Milestone tagging on 3D model geometry
- Annotations with position markers
- Model comparison view
- MetaMask wallet connection with address persistence
- Milestone-based ETH deposits into smart contract
- Fund release upon milestone approval
- Dispute mechanism with owner resolution
- Transaction history with Etherscan links
- NFT completion certificates (ERC-721) viewable on Etherscan
- Project-based chat between builder and contractor
- File attachments in messages
- Real-time updates via Supabase Realtime
- Post-project ratings (1β5 stars) with comments
- Verified badge for users with β₯4.0 avg rating
- Public profile pages with review history
- Browse all builders and contractors
- Filter by role (Builder / Contractor)
- Search by company name
- View ratings and verified status
- In-app notifications for key events
- New quote, milestone approved, payment released alerts
- Bell icon with unread count
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite 5 |
| UI | Tailwind CSS 3, shadcn/ui, Radix UI, Framer Motion |
| 3D Rendering | Three.js, React Three Fiber, web-ifc |
| State Management | TanStack React Query, React Context |
| Backend | Supabase (PostgreSQL, Auth, Storage, Edge Functions, Realtime) |
| Blockchain | Solidity 0.8.20, Ethers.js 6, Sepolia Testnet |
| AI | Lovable AI Gateway (GPT/Gemini models via Edge Functions) |
| Routing | React Router DOM v6 |
| Forms | React Hook Form + Zod validation |
| Charts | Recharts |
| Drag & Drop | @dnd-kit (milestone reordering) |
conquote-connect/
βββ contracts/
β βββ MilestoneEscrow.sol # Solidity escrow smart contract
β βββ MilestoneCertificateNFT.sol # ERC-721 NFT certificate contract
βββ public/
βββ src/
β βββ components/
β β βββ ui/ # shadcn/ui components (40+ components)
β β βββ AppHeader.tsx # Navigation header with theme toggle
β β βββ AppSidebar.tsx # Dashboard sidebar navigation
β β βββ BimViewer.tsx # 3D BIM model viewer (Three.js)
β β βββ BimAnnotations.tsx # 3D model annotations
β β βββ BimCompareView.tsx # BIM model comparison
β β βββ DashboardLayout.tsx # Protected layout wrapper
β β βββ DropZone.tsx # Drag-and-drop file upload
β β βββ NFTCertificateDisplay.tsx # NFT certificate viewer
β β βββ OnChainEscrow.tsx # Blockchain escrow UI
β β βββ ProjectChat.tsx # Real-time messaging
β β βββ ProjectFileGallery.tsx # Project file management
β β βββ ProtectedRoute.tsx # Auth route guard
β β βββ TransactionHistory.tsx # Escrow transaction log
β β βββ WalletConnect.tsx # MetaMask wallet connection
β β βββ NotificationBell.tsx # Notification bell with badge
β β βββ ThemeProvider.tsx # Dark/light theme provider
β β βββ ThemeToggle.tsx # Theme toggle button
β βββ contexts/
β β βββ AuthContext.tsx # Auth + role context provider
β βββ hooks/
β β βββ use-mobile.tsx # Responsive breakpoint hook
β βββ integrations/
β β βββ supabase/ # Auto-generated client & types
β βββ lib/
β β βββ escrowContract.ts # Smart contract ABI & address
β β βββ nftContract.ts # NFT contract ABI & address
β β βββ notifications.ts # Notification helper functions
β β βββ utils.ts # Utility functions (cn, etc.)
β βββ pages/
β β βββ Landing.tsx # Public landing page (3D globe)
β β βββ Auth.tsx # Login / Signup page
β β βββ SelectRole.tsx # Role selection (Builder/Contractor)
β β βββ BuilderDashboard.tsx # Builder overview dashboard
β β βββ ContractorDashboard.tsx # Contractor overview dashboard
β β βββ CreateProject.tsx # New project creation form
β β βββ ProjectDetail.tsx # Full project view with tabs
β β βββ BrowseProjects.tsx # Contractor project search
β β βββ SubmitQuote.tsx # Quote submission form
β β βββ Milestones.tsx # Milestone tracker (drag & drop)
β β βββ EscrowDashboard.tsx # Blockchain escrow management
β β βββ AITools.tsx # AI analysis tools
β β βββ Profile.tsx # User profile settings
β β βββ PublicProfile.tsx # Public user profile with reviews
β β βββ UserDirectory.tsx # Browse all users
β β βββ Messages.tsx # Chat interface
β β βββ Notifications.tsx # Notification center
β βββ App.tsx # Route configuration
β βββ main.tsx # Entry point
βββ supabase/
β βββ functions/
β β βββ ai-tools/index.ts # AI edge function (quote/risk/contract)
β β βββ escrow-notify/index.ts # Escrow notification function
β βββ migrations/ # Database migration files
β βββ config.toml # Supabase configuration
βββ package.json
βββ tailwind.config.ts
βββ vite.config.ts
βββ tsconfig.json
| Table | Purpose |
|---|---|
profiles |
User profile info (company, contact, avatar, wallet address) |
user_roles |
Role assignment (builder / contractor) β enum-based |
projects |
Project listings with budget, timeline, BIM files |
quotes |
Contractor quote submissions with pricing & materials |
milestones |
Project milestones with status tracking & amounts |
messages |
Real-time project chat messages with file attachments |
project_files |
Uploaded project documents and attachments |
model_annotations |
3D model annotation markers (x, y, z positions) |
notifications |
In-app notification records with read status |
reviews |
Post-project ratings (1β5) and comments |
escrow_transactions |
On-chain escrow deposit/release transaction records |
nft_certificates |
Minted NFT certificate records with token IDs |
All tables use Row-Level Security (RLS) policies to ensure data access control. Security-definer functions (has_role, is_accepted_contractor) prevent RLS recursion.
| Page | Route | Access |
|---|---|---|
| Landing Page | / |
Public |
| Login / Sign Up | /auth |
Public |
| Role Selection | /select-role |
Authenticated |
| Builder Dashboard | /builder |
Builder only |
| Create Project | /builder/create-project |
Builder only |
| Contractor Dashboard | /contractor |
Contractor only |
| Browse Projects | /contractor/browse |
Contractor only |
| Project Detail | /projects/:id |
Authenticated |
| Submit Quote | /projects/:id/submit-quote |
Contractor only |
| Milestone Tracker | /milestones |
Authenticated |
| Escrow Dashboard | /escrow |
Authenticated |
| AI Tools | /ai-tools |
Authenticated |
| Profile Settings | /profile |
Authenticated |
| Public Profile | /user/:userId |
Authenticated |
| User Directory | /directory |
Authenticated |
| Messages | /messages |
Authenticated |
| Notifications | /notifications |
Authenticated |
| BIM Test | /bim-test |
Public |
- Node.js β₯ 18 (install via nvm)
- npm or bun package manager
- MetaMask browser extension (for blockchain features)
- Git for version control
# 1. Clone the repository
git clone <YOUR_GIT_URL>
cd conquote-connect
# 2. Install dependencies
npm install
# 3. Set up environment variables
# Create a .env file with:
# VITE_SUPABASE_URL=your_supabase_url
# VITE_SUPABASE_PUBLISHABLE_KEY=your_supabase_anon_key
# 4. Start the development server
npm run devThe app will be available at http://localhost:5173
Key dependencies installed automatically via npm install:
react,react-domβ UI frameworkreact-router-domβ Client-side routing@supabase/supabase-jsβ Backend client@tanstack/react-queryβ Server state managementthree,@react-three/fiber,@react-three/dreiβ 3D renderingethersβ Ethereum blockchain interactionframer-motionβ Animationsrechartsβ Charts and data visualizationreact-hook-form,zodβ Form handling and validation@dnd-kit/core,@dnd-kit/sortableβ Drag and drop- Full list in
package.json
- Go to Remix IDE
- Create new files, paste
contracts/MilestoneEscrow.solandcontracts/MilestoneCertificateNFT.sol - Compile with Solidity 0.8.20+
- Deploy to Sepolia testnet (select "Injected Provider - MetaMask")
- Copy the deployed contract addresses to
src/lib/escrowContract.tsandsrc/lib/nftContract.ts - Get free test ETH from sepoliafaucet.com
npm run test- Sign up β verify email β choose your role (Builder or Contractor)
- Builder creates a project with budget, timeline, location, and optional BIM files
- Contractors browse open projects and submit structured quotes with pricing breakdown
- Builder reviews quotes, uses AI tools for analysis/risk/contract generation
- Builder awards the project to a contractor
- Milestones are created β contractors submit work, builders approve or reject with comments
- Escrow β Builder connects MetaMask, deposits ETH per milestone into the smart contract
- Fund Release β Upon milestone approval, builder releases locked ETH to contractor
- Reviews β Both parties rate each other after project completion
- NFT Certificate β Contractor and builder mint ERC-721 certificates as immutable proof of completion
- Reputation β Verified badges appear for users with strong review history
This project is structured as a workshop-ready, sellable learning experience:
- Target Audience: CS/IT students, web dev learners, blockchain beginners
- Duration: 4β6 hour hands-on workshop
- Modules: React setup β Supabase backend β CRUD panels β AI integration β BIM viewer β Blockchain escrow
- See
Workshop_Outline.mdfor the complete workshop structure
- Live Demo: https://bim-build-trust.lovable.app
- Demo Video: [Your Google Drive Links]