🏠 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