diff --git a/.firebaserc b/.firebaserc
new file mode 100644
index 00000000..85314b12
--- /dev/null
+++ b/.firebaserc
@@ -0,0 +1,30 @@
+{
+ "projects": {
+ "default": "krow-workforce-dev",
+ "dev": "krow-workforce-dev",
+ "staging": "krow-workforce-staging"
+ },
+ "targets": {
+ "krow-workforce-dev": {
+ "hosting": {
+ "launchpad": [
+ "krow-workforce-dev-launchpad"
+ ],
+ "app-dev": [
+ "krow-workforce-dev"
+ ],
+ "app-staging": [
+ "krow-workforce-staging"
+ ]
+ }
+ },
+ "krow-workforce-staging": {
+ "hosting": {
+ "app-staging": [
+ "krow-workforce-staging"
+ ]
+ }
+ }
+ },
+ "etags": {}
+}
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 97783865..2352a912 100644
--- a/Makefile
+++ b/Makefile
@@ -4,11 +4,29 @@
# It is designed to be the main entry point for developers.
# Use .PHONY to declare targets that are not files, to avoid conflicts.
-.PHONY: install dev build prepare-export help
+.PHONY: install dev build prepare-export help deploy-launchpad deploy-app
# The default command to run if no target is specified (e.g., just 'make').
.DEFAULT_GOAL := help
+# --- Firebase & GCP Configuration ---
+GCP_DEV_PROJECT_ID := krow-workforce-dev
+GCP_STAGING_PROJECT_ID := krow-workforce-staging
+
+# --- Environment Detection ---
+ENV ?= dev
+
+# --- Conditional Variables by Environment ---
+ifeq ($(ENV),staging)
+ GCP_PROJECT_ID := $(GCP_STAGING_PROJECT_ID)
+ FIREBASE_ALIAS := staging
+ HOSTING_TARGET := app-staging
+else
+ GCP_PROJECT_ID := $(GCP_DEV_PROJECT_ID)
+ FIREBASE_ALIAS := dev
+ HOSTING_TARGET := app-dev
+endif
+
# Installs all project dependencies using npm.
install:
@echo "--> Installing web frontend dependencies..."
@@ -24,7 +42,7 @@ dev:
# Builds the application for production.
build:
@echo "--> Building web frontend for production..."
- @cd frontend-web && npm run build
+ @cd frontend-web && VITE_APP_ENV=$(ENV) npm run build
# Integrates a new Base44 export into the current project.
# It replaces the src directory and the index.html file in the frontend-web directory.
@@ -45,6 +63,10 @@ integrate-export:
@node scripts/patch-base44-client.js
@echo " - Patching queryKey in Layout.jsx for local development..."
@node scripts/patch-layout-query-key.js
+ @echo " - Patching Dashboard.jsx for environment label..."
+ @node scripts/patch-dashboard-for-env-label.js
+ @echo " - Patching index.html for title..."
+ @node scripts/patch-index-html.js
@echo "--> Integration complete. Next step: 'make prepare-export'."
# Applies all necessary patches to a fresh Base44 export to run it locally.
@@ -54,6 +76,15 @@ prepare-export:
@node scripts/prepare-export.js
@echo "--> Preparation complete. You can now run 'make dev'."
+# --- Firebase Deployment ---
+deploy-launchpad:
+ @echo "--> Deploying Internal Launchpad to DEV project..."
+ @firebase deploy --only hosting:launchpad --project=dev
+
+deploy-app: build
+ @echo "--> Deploying Frontend Web App to [$(ENV)] environment..."
+ @firebase deploy --only hosting:$(HOSTING_TARGET) --project=$(FIREBASE_ALIAS)
+
# Shows this help message.
help:
@echo "--------------------------------------------------"
@@ -64,6 +95,11 @@ help:
@echo " make build - Builds the web frontend for production."
@echo " make integrate-export - Integrates a new Base44 export from '../krow-workforce-export-latest'."
@echo " make prepare-export - Prepares a fresh Base44 export for local use."
+ @echo ""
+ @echo " --- DEPLOYMENT ---"
+ @echo " make deploy-launchpad - Deploys the internal launchpad (always to dev)."
+ @echo " make deploy-app [ENV=staging] - Builds and deploys the main web app (default: dev)."
+ @echo ""
@echo " make help - Shows this help message."
@echo "--------------------------------------------------"
diff --git a/firebase.json b/firebase.json
index a25a05b0..78e46ee6 100644
--- a/firebase.json
+++ b/firebase.json
@@ -1,58 +1,49 @@
{
+ "firestore": {
+ "rules": "firebase/firestore.rules"
+ },
+ "storage": {
+ "rules": "firebase/storage.rules"
+ },
"hosting": [
{
- "target": "dev",
- "public": "frontend-web/dist",
- "ignore": [
- "firebase.json",
- "**/.*",
- "**/node_modules/**"
- ],
- "rewrites": [
- {
- "source": "**",
- "destination": "/index.html"
- }
- ]
- },
- {
- "target": "staging",
- "public": "frontend-web/dist",
- "ignore": [
- "firebase.json",
- "**/.*",
- "**/node_modules/**"
- ],
- "rewrites": [
- {
- "source": "**",
- "destination": "/index.html"
- }
- ]
- },
- {
- "target": "prod",
- "public": "frontend-web/dist",
- "ignore": [
- "firebase.json",
- "**/.*",
- "**/node_modules/**"
- ],
- "rewrites": [
- {
- "source": "**",
- "destination": "/index.html"
- }
- ]
- },
- {
- "target": "internal-launchpad",
+ "target": "launchpad",
"public": "firebase/internal-launchpad",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
+ },
+ {
+ "target": "app-dev",
+ "public": "frontend-web/dist",
+ "ignore": [
+ "firebase.json",
+ "**/.*",
+ "**/node_modules/**"
+ ],
+ "rewrites": [
+ {
+ "source": "**",
+ "destination": "/index.html"
+ }
+ ]
+ },
+ {
+ "target": "app-staging",
+ "public": "frontend-web/dist",
+ "ignore": [
+ "firebase.json",
+ "**/.*",
+ "**/node_modules/**"
+ ],
+ "rewrites": [
+ {
+ "source": "**",
+ "destination": "/index.html"
+ }
+ ]
}
]
-}
+}
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/architectures/0-infra-compliance.mermaid b/firebase/internal-launchpad/assets/diagrams/architectures/0-infra-compliance.mermaid
new file mode 100644
index 00000000..daf53275
--- /dev/null
+++ b/firebase/internal-launchpad/assets/diagrams/architectures/0-infra-compliance.mermaid
@@ -0,0 +1,67 @@
+
+graph TB
+ Title["KROW - Cloud Architecture
Production Solution"]
+
+ subgraph Prototype[" "]
+ Proto["🔧 Current KROW Prototype
(Demo Only)"]
+ end
+
+ Title --> Prototype
+ Title --> Production
+
+ subgraph Production["🏢 KROW - PRODUCTION ARCHITECTURE"]
+ subgraph GCP["☁️ Google Cloud Platform - US Regions"]
+
+ subgraph Auth["🔐 Authentication"]
+ Firebase["Firebase Auth
• MFA
• OAuth 2.0"]
+ end
+
+ subgraph Backend["⚙️ Backend"]
+ Functions["Cloud Functions
• Serverless
• Auto-scaling"]
+ API["API Gateway
• Secure APIs
• Rate limiting"]
+ end
+
+ subgraph Data["💾 Data Storage"]
+ Firestore["Firestore/Cloud SQL
• Encrypted at rest
• Auto backup"]
+ Storage["Cloud Storage
• Encrypted
• Access control"]
+ end
+
+ subgraph Security["🛡️ Security"]
+ IAM["Cloud IAM
• Access control
• Least privilege"]
+ Logs["Logging & Monitoring
• Audit trails
• Real-time alerts"]
+ end
+ end
+
+ subgraph Compliance["✅ COMPLIANCE"]
+ GDPR["📋 GDPR Ready
• US data hosting
• User rights
• Data portability"]
+ SOC2["🏆 SOC 2 Ready
• Google certified
• Security controls
• Full audit trails"]
+ end
+ end
+
+ Users["👥 End Users"]
+
+ Proto -.->|Migration vers| Production
+ Users --> Auth
+ Auth --> API
+ API --> Functions
+ Functions --> Firestore
+ Functions --> Storage
+ IAM --> Auth
+ IAM --> Backend
+ IAM --> Data
+ Logs --> Security
+ GCP --> GDPR
+ GCP --> SOC2
+
+ style Prototype fill:#FFF3CD,stroke:#856404,stroke-width:2px,stroke-dasharray: 5 5
+ style Proto fill:#FFF3CD,stroke:#856404
+ style Title fill:#1976D2,stroke:#0D47A1,stroke-width:3px,color:#FFFFFF
+ style Production fill:#D4EDDA,stroke:#155724,stroke-width:3px
+ style GCP fill:#E3F2FD,stroke:#1976D2,stroke-width:2px
+ style Auth fill:#E8F5E9,stroke:#2E7D32
+ style Backend fill:#E8F5E9,stroke:#2E7D32
+ style Data fill:#E8F5E9,stroke:#2E7D32
+ style Security fill:#FFE0B2,stroke:#E65100
+ style Compliance fill:#F3E5F5,stroke:#6A1B9A,stroke-width:2px
+ style GDPR fill:#E1BEE7,stroke:#6A1B9A
+ style SOC2 fill:#E1BEE7,stroke:#6A1B9A
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/architectures/1-core-workflow.mermaid b/firebase/internal-launchpad/assets/diagrams/architectures/1-core-workflow.mermaid
new file mode 100644
index 00000000..b6841714
--- /dev/null
+++ b/firebase/internal-launchpad/assets/diagrams/architectures/1-core-workflow.mermaid
@@ -0,0 +1,70 @@
+sequenceDiagram
+ participant Client as 🏢 Client App
+ participant Backend as 🌐 Backend API
+ participant Admin as ⚙️ KROW Admin
+ participant Staff as 👥 Staff App
+
+ %% Event Creation
+ Note over Client,Backend: 1. Event & Shift Creation
+ Client->>Backend: Create Event with Shifts & Positions
+ Backend-->>Client: Event Created (Draft)
+ Client->>Backend: Publish Event
+ Backend-->>Client: Event Published
+
+ %% Staff Assignment
+ Note over Admin,Backend: 2. Staff Assignment
+ Admin->>Backend: View Available Events
+ Backend-->>Admin: Event List
+ Admin->>Backend: Assign Staff to Shift
+ Backend-->>Admin: Assignment Confirmed
+ Backend->>Staff: Notification: New Shift Assigned
+
+ %% Shift Acceptance
+ Note over Staff,Backend: 3. Shift Acceptance
+ Staff->>Backend: View Shift Details
+ Backend-->>Staff: Shift Information
+ Staff->>Backend: Accept Shift
+ Backend-->>Staff: Shift Confirmed
+ Backend->>Client: Notification: Staff Confirmed
+
+ %% Clock In
+ Note over Client,Staff: 4. Clock In - Day of Event
+ Client->>Client: Generate QR Code for Event
+ Staff->>Staff: Scan QR Code
+ Staff->>Backend: Clock In Request (via QR)
+ Backend-->>Staff: Clock In Confirmed
+ Backend->>Client: Notification: Staff Clocked In
+ Client->>Backend: (Alternative) Manual Clock In
+ Backend-->>Client: Manual Clock In Confirmed
+
+ %% Shift Active
+ Note over Staff: 5. Shift In Progress
+ Staff->>Staff: View Real-time Timer
+
+ %% Clock Out
+ Note over Client,Staff: 6. Clock Out - End of Shift
+ Staff->>Staff: Scan QR Code
+ Staff->>Backend: Clock Out Request (via QR)
+ Backend-->>Staff: Clock Out Confirmed
+ Backend-->>Staff: Shift Status: Completed
+ Backend->>Client: Notification: Staff Clocked Out
+
+ %% Rating & Invoicing
+ Note over Client,Backend: 7. Post-Shift Activities
+ Client->>Backend: Rate Staff Performance
+ Backend-->>Client: Rating Recorded
+ Backend->>Backend: Generate Invoice
+ Backend->>Client: Invoice Created
+ Client->>Backend: Review & Approve Invoice
+ Backend-->>Client: Invoice Approved
+
+ %% Payment
+ Note over Staff,Backend: 8. Staff Payment
+ Backend->>Staff: Payment Processed
+ Staff->>Backend: View Earnings & Payment History
+ Backend-->>Staff: Payment Details
+
+ alt Payment Dispute
+ Staff->>Backend: Contest Payment Amount
+ Backend-->>Staff: Dispute Opened
+ end
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/architectures/2-high-level-architecture.mermaid b/firebase/internal-launchpad/assets/diagrams/architectures/2-high-level-architecture.mermaid
new file mode 100644
index 00000000..d0084bc9
--- /dev/null
+++ b/firebase/internal-launchpad/assets/diagrams/architectures/2-high-level-architecture.mermaid
@@ -0,0 +1,61 @@
+graph TB
+ subgraph "Actors"
+ Staff[👥 Staff/Employee]
+ Client[🏢 Client/Business]
+ Admin[⚙️ KROW Admin]
+ end
+
+ subgraph "KROW Staff App"
+ SA_Auth[Authentication & Onboarding]
+ SA_Shifts[Shift Management]
+ SA_Earnings[Earnings & Payments]
+ SA_Profile[Profile Management]
+ end
+
+ subgraph "KROW Client App"
+ CA_Events[Event Creation]
+ CA_Staff[Staff Management]
+ CA_Time[Time Tracking - QR Code]
+ CA_Invoice[Invoicing]
+ end
+
+ subgraph "Backend System"
+ API[Backend API]
+ DB[(Database)]
+ end
+
+ %% Staff interactions
+ Staff -->|Registers & Manages Profile| SA_Auth
+ Staff -->|Views & Accepts Shifts| SA_Shifts
+ Staff -->|Scans QR Code - Clock In/Out| SA_Shifts
+ Staff -->|Tracks Earnings| SA_Earnings
+ Staff -->|Updates Skills & Documents| SA_Profile
+
+ %% Client interactions
+ Client -->|Creates Events & Shifts| CA_Events
+ Client -->|Views Assigned Staff| CA_Staff
+ Client -->|Generates QR Code| CA_Time
+ Client -->|Manual Clock In/Out| CA_Time
+ Client -->|Rates Staff| CA_Staff
+ Client -->|Reviews & Approves Invoices| CA_Invoice
+
+ %% Admin interactions
+ Admin -->|Assigns Staff to Shifts| API
+ Admin -->|Validates Staff Profiles| API
+
+ %% App to Backend connections
+ SA_Auth -.->|Profile Data| API
+ SA_Shifts -.->|Shift Status Updates| API
+ SA_Earnings -.->|Payment Data| API
+ SA_Profile -.->|User Data| API
+
+ CA_Events -.->|Event & Shift Data| API
+ CA_Staff -.->|Staff Ratings| API
+ CA_Time -.->|Time Records| API
+ CA_Invoice -.->|Invoice Data| API
+
+ API <-->|Data Storage & Retrieval| DB
+
+ style Staff fill:#e1f5ff
+ style Client fill:#fff4e1
+ style Admin fill:#f0e1ff
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/architectures/3-invoice-workflow-simple.mermaid b/firebase/internal-launchpad/assets/diagrams/architectures/3-invoice-workflow-simple.mermaid
new file mode 100644
index 00000000..3ab370bd
--- /dev/null
+++ b/firebase/internal-launchpad/assets/diagrams/architectures/3-invoice-workflow-simple.mermaid
@@ -0,0 +1,40 @@
+graph LR
+ START[💼 Shift
Completed
& Rated]
+
+ START --> CALC[📊 INTERNAL
Calculate Invoice
• Hours worked
• Rates × Hours
• Overtime calc
• Platform fees
• Tax amounts]
+
+ CALC --> GENERATE[📄 INTERNAL
Generate Invoice
• Create PDF
• Invoice number
• Line items
• Due date]
+
+ GENERATE --> SAVE[💾 INTERNAL
Save to Database
• Store invoice
• Status: pending
• Track history]
+
+ SAVE --> SEND[📧 API INTEGRATION
SendGrid
• Send email
• Track delivery
• Reliable inbox]
+
+ SEND --> CLIENT[📱 Client
Reviews
Invoice]
+
+ CLIENT --> DECISION{Approve or
Dispute?}
+
+ DECISION -->|⚠️ Dispute| DISPUTE[🔧 INTERNAL
Handle Dispute
• Admin reviews
• Adjustments
• Re-calculate]
+
+ DISPUTE --> SAVE
+
+ DECISION -->|✅ Approve| PAY[💳 API INTEGRATION
Stripe
• Credit card
• ACH transfer
• Payment tracking]
+
+ PAY --> CONFIRM[💾 INTERNAL
Update Status
• Mark as paid
• Record payment
• Update reports]
+
+ CONFIRM --> PAYOUT[💰 API INTEGRATION
Stripe Connect
• Pay staff
• Direct deposit
• Automated]
+
+ PAYOUT --> RECORD[📊 INTERNAL
Track Payments
• Staff earnings
• Payment history
• Reports]
+
+ RECORD --> DONE[✅ Complete]
+
+ style START fill:#E1F5FF
+ style CALC fill:#FFF9E6,stroke:#F9A825,stroke-width:3px
+ style GENERATE fill:#FFF9E6,stroke:#F9A825,stroke-width:3px
+ style SAVE fill:#FFF9E6,stroke:#F9A825,stroke-width:3px
+ style DISPUTE fill:#FFF9E6,stroke:#F9A825,stroke-width:3px
+ style CONFIRM fill:#FFF9E6,stroke:#F9A825,stroke-width:3px
+ style RECORD fill:#FFF9E6,stroke:#F9A825,stroke-width:3px
+ style SEND fill:#E3F2FD,stroke:#1976D2,stroke-width:3px
+ style PAY fill:#E3F2FD,stroke:#1976D2,stroke-width:3px
+ style PAYOUT fill:#E3F2FD,stroke:#1976D2,stroke-width:3px
+ style DONE fill:#90EE90
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/architectures/4-mobile-app-architecture.mermaid b/firebase/internal-launchpad/assets/diagrams/architectures/4-mobile-app-architecture.mermaid
new file mode 100644
index 00000000..b8b8b470
--- /dev/null
+++ b/firebase/internal-launchpad/assets/diagrams/architectures/4-mobile-app-architecture.mermaid
@@ -0,0 +1,24 @@
+graph TD
+ subgraph KROW Mobile Applications
+ direction LR
+ Mobile_Client[Mobile Client App
Flutter]
+ Mobile_Staff[Mobile Staff App
Flutter]
+ end
+
+ subgraph Firebase Backend Services - GCP
+ direction TB
+ Auth[Firebase Authentication]
+ DataConnect[Firebase Data Connect
GraphQL API &
Generated SDKs]
+ SQL_DB[Cloud SQL for PostgreSQL
Managed by Data Connect]
+ end
+
+ Mobile_Client -- "Authenticates with" --> Auth
+ Mobile_Client -- "Calls API via generated SDK" --> DataConnect
+
+ Mobile_Staff -- "Authenticates with" --> Auth
+ Mobile_Staff -- "Calls API via generated SDK" --> DataConnect
+
+ DataConnect -- "Manages & Queries" --> SQL_DB
+
+ style Mobile_Client fill:#eef,stroke:#333,stroke-width:2px
+ style Mobile_Staff fill:#eef,stroke:#333,stroke-width:2px
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/architectures/5-web-app-architecture.mermaid b/firebase/internal-launchpad/assets/diagrams/architectures/5-web-app-architecture.mermaid
new file mode 100644
index 00000000..c7a29e53
--- /dev/null
+++ b/firebase/internal-launchpad/assets/diagrams/architectures/5-web-app-architecture.mermaid
@@ -0,0 +1,29 @@
+graph LR
+ subgraph Base44 Environment
+ direction TB
+ Client[Client] -- Modifies --> B44_UI[Base44 Visual Builder
Features:
- Event Management
- Staff Directory
- Vendor Onboarding]
+ B44_UI --> B44_Backend[Base44 Backend
Provides Entity Schemas
& SDK Operations]
+ B44_Backend --> B44_DB[Base44 Database]
+ end
+
+ subgraph Firebase Ecosystem - GCP
+ direction TB
+ KROW_FE[KROW Frontend
Vite/React + TanStack Query
From Export]
+
+ subgraph Firebase Services
+ direction TB
+ Auth[Firebase Authentication]
+ DataConnect[Firebase Data Connect
GraphQL API &
Generated SDKs]
+ SQL_DB[Cloud SQL for PostgreSQL
Managed by Data Connect]
+ end
+
+ KROW_FE -- "Uses" --> Auth
+ KROW_FE -- "Calls Queries/Mutations via SDK" --> DataConnect
+ DataConnect -- "Manages & Queries" --> SQL_DB
+ end
+
+ B44_UI -- "UI Code Export
(React Components)" --> KROW_FE
+
+ style Client fill:#f9f,stroke:#333,stroke-width:2px
+ style B44_UI fill:#ffe,stroke:#333,stroke-width:2px
+ style KROW_FE fill:#eef,stroke:#333,stroke-width:2px
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/architectures/6-geofencing-clockin-clockout.mermaid b/firebase/internal-launchpad/assets/diagrams/architectures/6-geofencing-clockin-clockout.mermaid
new file mode 100644
index 00000000..75628a52
--- /dev/null
+++ b/firebase/internal-launchpad/assets/diagrams/architectures/6-geofencing-clockin-clockout.mermaid
@@ -0,0 +1,32 @@
+sequenceDiagram
+ participant Staff as Staff Member
+ participant App as KROW Staff App
+ participant Client as Client
+ participant Backend as Backend
+
+ Staff->>App: Opens shift and taps "Clock In"
+
+ activate App
+ App->>App: **1. Geofencing Check (GPS) BEFORE scan**
+
+ alt Proximity Validated
+ App->>Client: Requests QR Code
+ Client-->>Staff: Presents QR Code
+ Staff->>App: Scans the code
+ App->>Backend: Validates Clock In with eventId
+ Backend-->>App: Confirmation
+ App->>Staff: Displays "Clock In Successful"
+ else Proximity Failed (GPS bug, too far)
+ App->>Staff: Displays "Error: You are too far"
+ end
+ deactivate App
+
+ loop Continuous Monitoring DURING the shift
+ App->>App: **2. Checks GPS position (anti-fraud)**
+ opt Staff member leaves the > 500m area
+ App->>Backend: Notifies area exit
+ Backend-->>App: Triggers a "Force Clock-Out"
+ end
+ end
+
+ %% Clock Out process follows a similar logic (Geofencing + QR Code) %%
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/diagrams-config.json b/firebase/internal-launchpad/assets/diagrams/diagrams-config.json
index f381d734..9998cdd7 100644
--- a/firebase/internal-launchpad/assets/diagrams/diagrams-config.json
+++ b/firebase/internal-launchpad/assets/diagrams/diagrams-config.json
@@ -1,10 +1,62 @@
-[
- {
+[
+ {
+ "path": "assets/diagrams/architectures/0-infra-compliance.mermaid",
+ "title": "Infrastructure & Compliance",
+ "type": "mermaid",
+ "icon": "bi-shield-check"
+ },
+ {
+ "path": "assets/diagrams/architectures/1-core-workflow.mermaid",
+ "title": "Core Workflow",
+ "type": "mermaid",
+ "icon": "bi-diagram-3"
+ },
+ {
+ "path": "assets/diagrams/architectures/2-high-level-architecture.mermaid",
+ "title": "High-Level Architecture",
+ "type": "mermaid",
+ "icon": "bi-diagram-3"
+ },
+ {
+ "path": "assets/diagrams/architectures/3-invoice-workflow-simple.mermaid",
+ "title": "Invoice Workflow (Simple)",
+ "type": "mermaid",
+ "icon": "bi-receipt"
+ },
+ {
+ "path": "assets/diagrams/architectures/4-mobile-app-architecture.mermaid",
+ "title": "Mobile App Architecture",
+ "type": "mermaid",
+ "icon": "bi-phone"
+ },
+ {
+ "path": "assets/diagrams/architectures/5-web-app-architecture.mermaid",
+ "title": "Web App Architecture",
+ "type": "mermaid",
+ "icon": "bi-window"
+ },
+ {
+ "path": "assets/diagrams/architectures/6-geofencing-clockin-clockout.mermaid",
+ "title": "Geofencing Clock-In/Out",
+ "type": "mermaid",
+ "icon": "bi-geo-alt"
+ },
+ {
+ "path": "assets/diagrams/roadmap/roadmap.mermaid",
+ "title": "Project Roadmap",
+ "type": "mermaid",
+ "icon": "bi-calendar-check"
+ },
+ {
"path": "assets/diagrams/legacy/staff-mobile-application/overview.mermaid",
- "title": "Overview"
+ "title": "Legacy App Overview",
+ "type": "mermaid",
+ "icon": "bi-phone"
},
{
"path": "assets/diagrams/legacy/staff-mobile-application/use-case-flowchart.mermaid",
- "title": "Use Case Flowchart"
+ "title": "Legacy App Use Cases",
+ "type": "mermaid",
+ "icon": "bi-diagram-2"
}
-]
+]
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/high-level-overview.svg b/firebase/internal-launchpad/assets/diagrams/high-level-overview.svg
deleted file mode 100644
index 16c28600..00000000
--- a/firebase/internal-launchpad/assets/diagrams/high-level-overview.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/invoice-workflow.svg b/firebase/internal-launchpad/assets/diagrams/invoice-workflow.svg
deleted file mode 100644
index 974b2299..00000000
--- a/firebase/internal-launchpad/assets/diagrams/invoice-workflow.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/roadmap/roadmap.mermaid b/firebase/internal-launchpad/assets/diagrams/roadmap/roadmap.mermaid
new file mode 100644
index 00000000..3d243cec
--- /dev/null
+++ b/firebase/internal-launchpad/assets/diagrams/roadmap/roadmap.mermaid
@@ -0,0 +1,17 @@
+timeline
+ title KROW Platform - Accelerated Migration & Enhancement Roadmap (2 Months to Production)
+
+ section Phase 1: Foundation & New Workflow Adoption
+ Week 1-2 : Initialize Firebase projects (Dev, Staging) and configure hosting
Set up CI/CD pipelines for automated deployments
Adopt new development and deployment workflows
+ Week 3-4 : Configure internal launchpad for easy access to resources
Team training on new tools and workflows
Documentation setup
+ Key Milestones : Dev & Staging environments fully operational
Team ready to work with new infrastructure
+
+ section Phase 2: Functional Parity & New Experience
+ Week 5-6 : Migrate core backend logic (Cloud Functions, Firestore/Cloud SQL)
Reconnect Web and Mobile apps to new APIs
Database migration and validation
+ Week 7-8 : Integrate new UI/UX design across all applications
Implement new core business workflows
Feature parity testing
+ Key Milestones : All existing features are ISO-functional on the new platform
New design and core workflows fully integrated and tested
+
+ section Phase 3: Preparation & Production Launch
+ Week 9-10 : Complete end-to-end testing and performance optimization
Security audits and penetration testing
Load testing and optimization
+ Week 11-12 : Set up robust monitoring and alerting system for production
Final production deployment
Legacy infrastructure decommissioning plan
+ Key Milestones : KROW is live in production with new design and workflows
Legacy infrastructure ready for decommissioning
\ No newline at end of file
diff --git a/firebase/internal-launchpad/assets/diagrams/shift-lifecycle-workflow.svg b/firebase/internal-launchpad/assets/diagrams/shift-lifecycle-workflow.svg
deleted file mode 100644
index 31a3ac92..00000000
Binary files a/firebase/internal-launchpad/assets/diagrams/shift-lifecycle-workflow.svg and /dev/null differ
diff --git a/firebase/internal-launchpad/index.html b/firebase/internal-launchpad/index.html
index dbb09f4e..91404173 100644
--- a/firebase/internal-launchpad/index.html
+++ b/firebase/internal-launchpad/index.html
@@ -5,243 +5,363 @@