🏠 Make It Home — Application Flow

Overview: Single HTML shell with 3 entry points sharing one in-memory data layer.

System Architecture

flowchart TB
    subgraph Shell["📱 Single HTML Shell"]
        Data[("💾 In-Memory Data Layer")]
    end
    
    subgraph EntryPoints["🚪 Entry Points (Modes)"]
        Admin["Admin Panel
Business Owner"] Trades["Trades Kiosk
On-site Workers"] Client["Client Kiosk
Homeowners"] end subgraph DataLayer["📊 Shared Data"] Projects["Projects"] TradesList["Trades"] Checklists["Checklists"] Timeline["Timeline Events"] Reports["Weekly Reports"] end Shell --> EntryPoints EntryPoints --> Data Data --> DataLayer

Mode 1: Admin Panel — Navigation Structure

flowchart LR
    subgraph BottomNav["Bottom Tab Bar"]
        Dashboard["🏠 Dashboard"]
        Projects["📁 Projects"]
        Trades["🔧 Trades & Roles"]
        Checklists["✅ Checklists"]
        Reports["📊 Reports"]
    end
    
    Dashboard --> DashboardContent["Stats Cards
Alerts (No Check-in, On Site)
Recent Activity Feed"] Projects --> Active["Active Projects
(cards with kiosk buttons)"] Projects --> Archive["Archived Projects
(collapsed)"] Projects --> Add["+ Add Project Modal"] Active --> Timeline["Project Timeline
(sub-page)"] Trades --> TradeCards["Trade Cards
(name, icon, counts)"] Trades --> AddTrade["+ Add Trade Modal"] Checklists --> TradeSelect["Trade Selector"] TradeSelect --> Items["Check-in + Check-out Items"] Reports --> ByProject["Grouped by Project
(active → archived)"] ByProject --> ReportCards["Report Cards
(newest first)"] ReportCards --> Detail["Report Detail Modal"] Reports --> History["Report History Page"]

Dashboard View Details

flowchart TB
    subgraph Dashboard["🏠 Dashboard"]
        Stats["Stats Cards"]
        Alert1["⚠️ Projects Without Check-In Today"]
        Alert2["⚠️ People Still On Site"]
        Activity["Recent Activity Feed
(last 10 events, collapsible)"] end Stats --> S1["Check-ins"] Stats --> S2["Check-outs"] Stats --> S3["Active Projects"] Stats --> S4["Issues"] Alert1 --> List1["List of projects with no check-ins"] Alert2 --> List2["Workers checked in, not out"]

Projects View Details

flowchart LR
    subgraph ProjectsView["📁 Projects Tab"]
        Search["🔍 Search (name/address)"]
        Active["Active Project Cards"]
        Archived["📦 Archived Projects
(collapsed)"] Add["➕ Add Project"] end Active --> Card["Project Card"] Card --> Info["Name, Address, Status, Today's Count"] Card --> Actions["Actions"] Actions --> Timeline["📋 Timeline"] Actions --> TradeKiosk["🔧 Trades Kiosk
(scoped)"] Actions --> ClientKiosk["👤 Client Kiosk
(scoped)"] Actions --> ArchiveBtn["📦 Archive"] Archived --> Restore["🔄 Restore Button"] Add --> Modal["Modal: Name, Address, Status"]

Project Timeline (Sub-page)

flowchart TB
    subgraph Timeline["📋 Project Timeline"]
        Header["Project Name + Address"]
        Kiosks["Kiosk Buttons (Trades | Client)"]
        Filters["Filter Tabs"]
        Feed["Chronological Event Feed"]
    end
    
    Header --> Back["← Back to Projects"]
    
    Filters --> F1["All"]
    Filters --> F2["Check-ins"]
    Filters --> F3["Check-outs"]
    Filters --> F4["Issues"]
    Filters --> F5["Feedback"]
    
    Feed --> Event["Event Card"]
    Event --> E1["Name"]
    Event --> E2["Type"]
    Event --> E3["Time"]
    Event --> E4["Details"]
        

Weekly Reports Flow

flowchart TB
    subgraph ReportsTab["📊 Weekly Reports Tab"]
        Grouping["Grouped by Project
Active → Archived"] ReportList["Report Cards
(newest first)"] HistoryBtn["📜 See Full History"] end ReportList --> Card["Report Card"] Card --> Click["Click"] Click --> DetailModal["📄 Report Detail Modal"] subgraph Detail["Report Detail Modal"] Stats["Stats Grid
In | Out | Issues | Feedback"] AIEmail["🤖 AI Email Preview"] Context["📝 Add Your Context
(voice or text)"] Regen["🔄 Add Feedback & Regenerate"] Send["📤 Send to Client (CC me)"] end HistoryBtn --> HistoryPage["📜 Report History Page"] HistoryPage --> Table["Paginated Table
(5 per page)"] Table --> PrevNext["← Prev | Next →"] Table --> RowDetail["Details → History Detail Modal"]

Mode 2: Trades Kiosk (Per Project)

flowchart TB
    subgraph Entry["🔧 Trades Kiosk Entry"]
        AdminClick["Admin clicks 'Trades Kiosk'
on project card"] QR["QR Code Access"] end subgraph KioskHome["Trades Kiosk Home"] ProjectName["Project Name + QR Code"] Emergency["🚨 Emergency Contact Banner
Call / Email Make It Home"] Actions["Actions"] end subgraph CheckIn["✅ Check In (3 steps)"] CI1["Step 1: Enter name +
select trade from dropdown"] CI2["Step 2: Complete check-in checklist
(checkboxes, trade-specific)"] CI3["Step 3: Confirmation screen
→ event saved to timeline"] end subgraph CheckOut["🚪 Check Out (3 steps)"] CO1["Step 1: Select your name
from people on site"] CO2["Step 2: Yes/No toggle checklist
(trade-specific)"] CO2Yes["Yes → item complete"] CO2No["No → reason box appears
(voice-or-text, required)"] CO3["Step 3: Confirmation
shows incomplete alert if any 'No'"] end subgraph ReportIssue["⚠️ Report Issue"] RIF["Form: name, trade dropdown,
severity, description"] RIC["Confirmation →
saved to timeline"] end subgraph LeaveNote["📝 Leave a Note"] LNF["Form: name, comments
(voice-or-text)"] LNC["Notify Make It Home checkbox"] LNC["Confirmation →
saved to timeline"] end subgraph RequestInfo["❓ Request Info"] ReqF["Form: name, question
(voice-or-text), contact method"] ReqC["Confirmation →
saved to timeline"] end AdminClick --> KioskHome QR --> KioskHome Actions --> CheckIn Actions --> CheckOut Actions --> ReportIssue Actions --> LeaveNote Actions --> RequestInfo CI1 --> CI2 --> CI3 CO1 --> CO2 CO2 --> CO2Yes CO2 --> CO2No CO2Yes --> CO3 CO2No --> CO3 RIF --> RIC LNF --> LNC --> LNC ReqF --> ReqC

Mode 3: Client Kiosk (Per Project)

flowchart TB
    subgraph ClientEntry["👤 Client Kiosk Entry"]
        ClientAdmin["Admin clicks 'Client Kiosk'
on project card"] ClientQR["QR Code Access"] end subgraph ClientHome["Client Kiosk Home"] ClientProject["Project Name + QR Code"] ClientEmergency["🚨 Emergency Contact Banner
Call / Email Make It Home"] ClientActions["Actions"] end subgraph LeaveFeedback["⭐ Leave Feedback"] FBF["Form: name, optional trade dropdown,
star rating (1-5), comments"] FBC["Confirmation → saved as
'client-feedback' in timeline"] end subgraph ClientReportIssue["⚠️ Report an Issue"] CIF["Form: name, optional trade dropdown,
severity, description"] CIC["Confirmation → saved as
'client-issue' in timeline"] end ClientAdmin --> ClientHome ClientQR --> ClientHome ClientActions --> LeaveFeedback ClientActions --> ClientReportIssue FBF --> FBC CIF --> CIC

Shared Components

flowchart LR
    subgraph Components["🔧 Shared Components"]
        Voice["🎤 Voice-or-Text"]
        Banner["🚨 Emergency Banner"]
        Timeline["📋 Timeline Events"]
        Modals["📱 Bottom Sheet Modals"]
    end
    
    subgraph VoiceDetail["Voice-or-Text Details"]
        Mic["Mic button in textareas"]
        Record["Click to record"]
        Transcribe["Simulated transcription"]
        Append["Appends text to field"]
    end
    
    subgraph EmergencyDetail["Emergency Banner"]
        Help["Need Help Now?"]
        Call["📞 Call Make It Home"]
        Email["📧 Email Make It Home"]
    end
    
    subgraph TimelineDetail["Timeline Events"]
        Events["All events flow into
timelineData array"] Types["Types: check-ins, check-outs,
issues, feedback, client-feedback,
client-issue"] end subgraph ModalsDetail["Bottom Sheet Modals"] Slide["Slide-up modal pattern"] Overlay["Dark overlay behind"] AdminOnly["Admin only:
add project, add trade,
report detail, history detail"] end Voice --> VoiceDetail Banner --> EmergencyDetail Timeline --> TimelineDetail Modals --> ModalsDetail

Complete Data Flow

flowchart TB
    subgraph Inputs["📥 User Inputs"]
        TK["Trades Kiosk Actions"]
        CK["Client Kiosk Actions"]
        Admin["Admin Actions"]
    end
    
    subgraph DataLayer["💾 Data Layer"]
        Timeline["timelineData[]"]
        Projects["projects[]"]
        Trades["trades[]"]
        Weekly["weeklyReports[]"]
    end
    
    subgraph Outputs["📤 Outputs"]
        Dashboard["Dashboard Stats/Alerts"]
        ProjectTimeline["Project Timeline"]
        Reports["Weekly Reports"]
        History["Report History"]
        EmailAlerts["📧 Email Alerts
(incomplete checkouts)"] end TK --> Timeline CK --> Timeline Timeline --> Dashboard Timeline --> ProjectTimeline Timeline --> Reports Admin --> Projects Admin --> Trades Admin --> Weekly Projects --> Reports Weekly --> History Reports --> EmailAlerts

Data Flow Summary

flowchart LR
    subgraph Users["👥 Users"]
        Owner["Business Owner"]
        Workers["Trades Workers"]
        Homeowner["Homeowner/Client"]
    end
    
    subgraph Modes["📱 App Modes"]
        A["Admin Panel"]
        T["Trades Kiosk"]
        C["Client Kiosk"]
    end
    
    subgraph Data["💾 Shared Data Layer"]
        P["Projects"]
        Tr["Trades"]
        Ch["Checklists"]
        Ti["Timeline Events"]
        R["Weekly Reports"]
    end
    
    Owner --> A
    Workers --> T
    Homeowner --> C
    
    A --> Data
    T --> Data
    C --> Data