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 ArchitectureProduction 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[💼 ShiftCompleted& Rated] + + START --> CALC[📊 INTERNALCalculate Invoice• Hours worked• Rates × Hours• Overtime calc• Platform fees• Tax amounts] + + CALC --> GENERATE[📄 INTERNALGenerate Invoice• Create PDF• Invoice number• Line items• Due date] + + GENERATE --> SAVE[💾 INTERNALSave to Database• Store invoice• Status: pending• Track history] + + SAVE --> SEND[📧 API INTEGRATIONSendGrid• Send email• Track delivery• Reliable inbox] + + SEND --> CLIENT[📱 ClientReviewsInvoice] + + CLIENT --> DECISION{Approve orDispute?} + + DECISION -->|⚠️ Dispute| DISPUTE[🔧 INTERNALHandle Dispute• Admin reviews• Adjustments• Re-calculate] + + DISPUTE --> SAVE + + DECISION -->|✅ Approve| PAY[💳 API INTEGRATIONStripe• Credit card• ACH transfer• Payment tracking] + + PAY --> CONFIRM[💾 INTERNALUpdate Status• Mark as paid• Record payment• Update reports] + + CONFIRM --> PAYOUT[💰 API INTEGRATIONStripe Connect• Pay staff• Direct deposit• Automated] + + PAYOUT --> RECORD[📊 INTERNALTrack 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 AppFlutter] + Mobile_Staff[Mobile Staff AppFlutter] + end + + subgraph Firebase Backend Services - GCP + direction TB + Auth[Firebase Authentication] + DataConnect[Firebase Data ConnectGraphQL API &Generated SDKs] + SQL_DB[Cloud SQL for PostgreSQLManaged 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 BuilderFeatures:- Event Management- Staff Directory- Vendor Onboarding] + B44_UI --> B44_Backend[Base44 BackendProvides Entity Schemas& SDK Operations] + B44_Backend --> B44_DB[Base44 Database] + end + + subgraph Firebase Ecosystem - GCP + direction TB + KROW_FE[KROW FrontendVite/React + TanStack QueryFrom Export] + + subgraph Firebase Services + direction TB + Auth[Firebase Authentication] + DataConnect[Firebase Data ConnectGraphQL API &Generated SDKs] + SQL_DB[Cloud SQL for PostgreSQLManaged 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 - RetryYesNo - Missing InfoYesRejected - Needs CorrectionsApprovedYesNoYesNoYesNoYesNoAcceptDeclineNoYesAlternative PathYesNoYesNoYesNo📱 START: STAFF ONBOARDING WORKFLOWStaff Enters Phone NumberSMS Verification SentStaff Enters Verification CodeCode Valid?✓ Account CreatedStart Profile Creation WizardStep 1: Enter Personal InfoName, Email, PhotoStep 2: Upload Legal DocumentsID, Work PermitsStep 3: Add Banking InformationAccount Details for PaymentStep 4: Add Skills & RolesSelect Skills, Experience LevelStep 5: Add CertificationsUpload Professional CertificatesStep 6: Set Work Zones & AvailabilityPreferred Locations, Schedule100% Complete Checklist?All Required Fields Filled?Submit Profile for Validation⏳ Waiting ScreenPending Admin ReviewAdmin Validates Profile?✅ Account Activated - Ready to Work!📅 START: EVENT CREATION WORKFLOWClient Opens Client AppClick Create New EventEnter Event DetailsName, Description, TypeSet Event Date & LocationAddress, Venue NameDefine Shift 1Start Time & End TimeAdd Position 1 to Shift 1Configure Position:• Skill Required• Staff Count Needed• Hourly Rate• DepartmentAdd More Positionsto This Shift?Add More Shiftsto This Event?Recurring Event?Set Recurrence PatternDaily, Weekly, CustomPreview Complete EventPublish Event✅ Event Available for Admin Assignment📋 START: SHIFT ASSIGNMENT WORKFLOWAdmin Views Published EventsAdmin Selects EventAdmin Reviews RequirementsSkills, Count, ScheduleSearch Available StaffApply Filters:• Required Skills• Location Match• Availability• Rating ScoreAdmin Selects Staff MemberAdmin Assigns Staff to PositionMore Positionsto Fill?Send Notifications to All Assigned StaffStaff Receives NotificationStaff Opens Shift DetailsViews: Event, Location, Rate, HoursStaff Decision?✅ Shift Status: CONFIRMEDStaff Provides Decline ReasonNotify Admin🕒 START: QR CODE TIME TRACKING WORKFLOW📅 Event Day ArrivesClient Opens Event in Client AppClient Clicks Generate QR Code📱 QR Code Displayed on Client ScreenStaff Arrives at VenueStaff Opens Staff AppStaff Clicks Clock InStaff Scans QR CodeBackend Verifies:• QR Code Valid?• Location Match?• Staff Assigned?Verification Passed?❌ Error Message Displayed✅ Staff Clocked In Successfully⏱️ Real-time Timer Starts in Staff AppStaff Works During ShiftEnd of ShiftStaff Scans Same QR CodeStaff Clicks Clock OutBackend Calculates Total Hours✅ Staff Clocked Out SuccessfullyShift Status: COMPLETED⚠️ Staff Has IssueNo Battery, App ProblemClient Uses Manual Clock In⭐ START: POST-SHIFT RATING & INVOICING WORKFLOWAll Shifts CompletedClient Receives NotificationPlease Rate Your StaffClient Opens Event DetailsClient Views List of Assigned StaffClient Selects Staff MemberClient Rates Performance1 to 5 Stars ⭐⭐⭐⭐⭐Client Adds Comments OptionalFeedback About PerformanceRating Submitted & SavedMore Staffto Rate?Backend Auto-Generates InvoiceInvoice Calculation:• Total Hours per Staff• Rate × Hours• Platform Fees📧 Invoice Sent to ClientClient Reviews Invoice DetailsClient Agreeswith Invoice?Client Approves Invoice✅ Invoice Approved - Payment ScheduledClient Contests InvoiceClient Adds Reason for DisputeIncorrect Hours, Wrong Rate, etc.⚠️ Dispute Created for Admin Review💰 START: STAFF EARNINGS & PAYMENT WORKFLOWShift Completed & Invoice ApprovedBackend Calculates Staff PaymentFormula: Hours Worked × Hourly RatePayment Added to Staff Earnings BalanceStaff Opens Earnings DashboardStaff Views:• Weekly Earnings• Monthly Earnings• Total Hours Worked• Earnings Breakdown by ShiftPayment Processing CycleWeekly/Bi-weekly💳 Payment Transferred to Bank AccountStaff Receives Payment NotificationPayment Appears in History TabStaff Checks:Payment Amount Correct?✅ Payment Complete - All Good!Staff Opens DisputeStaff Selects Payment in HistoryStaff Provides Dispute ReasonWrong Hours, Wrong Rate, Missing Hours⚠️ Dispute Sent to KROW AdminAdmin Reviews & Resolves🎉 END OF ALL WORKFLOWS \ 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 @@ -Option AOption BRecommendedBudget OptionApprove ✅Dispute ⚠️Option AOption BOption COption AOption BOption CRecommendedManualAdjust InvoiceReject Dispute💼 Shift Completed & Rated📊 INTERNAL: Calculate Invoice• Hours worked per staff• Regular + Overtime + Double• Rate × Hours• Platform fees• Tax calculations📄 INTERNAL: Generate Invoice DocumentHow to generate PDF?✅ Internal PDF LibraryLaravel DomPDF/SnappyFull control, no extra cost🔌 API ServiceDocuPDF, PDFShiftCost per invoice💾 INTERNAL: Save Invoice to Database• Invoice number• Status: pending• Due date• Payment terms• Stored in your DB📧 Send Invoice to ClientHow to send email?🔌 Email Service APISendGrid / Mailgun / AWS SES~$0.001 per emailBetter deliverability⚠️ Internal SMTPYour own serverRisk: spam folder📱 Client Receives InvoiceClient ReviewsInvoice ApprovedINTERNAL: Dispute ManagementAdmin reviews & resolves💳 Payment ProcessingHow to collect payment?🔌 Stripe API• Credit card processing• ACH bank transfer• Fee: 2.9% + $0.30📝 Manual Payment• Bank wire• Check• Tracked in your system🔌 Other Payment API• PayPal• Square• Authorize.net✅ Payment Received💾 INTERNAL: Update Invoice StatusAccounting Integration?🔌 QuickBooks APIAuto-sync invoicesto accounting system🔌 Xero APIFor accounting sync📊 Internal Reports OnlyExport CSV for accountant💰 Pay Staff Their EarningsHow to pay staff?🔌 Payroll API• Stripe Connect• Gusto• ADPAutomated payouts🏦 Manual Bank TransfersYou process each one🎉 Invoice Cycle CompleteAdmin Reviews DisputeDecision? \ 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 hostingSet up CI/CD pipelines for automated deploymentsAdopt new development and deployment workflows + Week 3-4 : Configure internal launchpad for easy access to resourcesTeam training on new tools and workflowsDocumentation setup + Key Milestones : Dev & Staging environments fully operationalTeam 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 APIsDatabase migration and validation + Week 7-8 : Integrate new UI/UX design across all applicationsImplement new core business workflowsFeature parity testing + Key Milestones : All existing features are ISO-functional on the new platformNew design and core workflows fully integrated and tested + + section Phase 3: Preparation & Production Launch + Week 9-10 : Complete end-to-end testing and performance optimizationSecurity audits and penetration testingLoad testing and optimization + Week 11-12 : Set up robust monitoring and alerting system for productionFinal production deploymentLegacy infrastructure decommissioning plan + Key Milestones : KROW is live in production with new design and workflowsLegacy 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 c6a6c9b4..91404173 100644 --- a/firebase/internal-launchpad/index.html +++ b/firebase/internal-launchpad/index.html @@ -11,7 +11,7 @@ - +
No - Retry
Yes
No - Missing Info
Rejected - Needs Corrections
Approved
No
Accept
Decline
Alternative Path
📱 START: STAFF ONBOARDING WORKFLOW
Staff Enters Phone Number
SMS Verification Sent
Staff Enters Verification Code
Code Valid?
✓ Account Created
Start Profile Creation Wizard
Step 1: Enter Personal InfoName, Email, Photo
Step 2: Upload Legal DocumentsID, Work Permits
Step 3: Add Banking InformationAccount Details for Payment
Step 4: Add Skills & RolesSelect Skills, Experience Level
Step 5: Add CertificationsUpload Professional Certificates
Step 6: Set Work Zones & AvailabilityPreferred Locations, Schedule
100% Complete Checklist?All Required Fields Filled?
Submit Profile for Validation
⏳ Waiting ScreenPending Admin Review
Admin Validates Profile?
✅ Account Activated - Ready to Work!
📅 START: EVENT CREATION WORKFLOW
Client Opens Client App
Click Create New Event
Enter Event DetailsName, Description, Type
Set Event Date & LocationAddress, Venue Name
Define Shift 1Start Time & End Time
Add Position 1 to Shift 1
Configure Position:• Skill Required• Staff Count Needed• Hourly Rate• Department
Add More Positionsto This Shift?
Add More Shiftsto This Event?
Recurring Event?
Set Recurrence PatternDaily, Weekly, Custom
Preview Complete Event
Publish Event
✅ Event Available for Admin Assignment
📋 START: SHIFT ASSIGNMENT WORKFLOW
Admin Views Published Events
Admin Selects Event
Admin Reviews RequirementsSkills, Count, Schedule
Search Available Staff
Apply Filters:• Required Skills• Location Match• Availability• Rating Score
Admin Selects Staff Member
Admin Assigns Staff to Position
More Positionsto Fill?
Send Notifications to All Assigned Staff
Staff Receives Notification
Staff Opens Shift DetailsViews: Event, Location, Rate, Hours
Staff Decision?
✅ Shift Status: CONFIRMED
Staff Provides Decline Reason
Notify Admin
🕒 START: QR CODE TIME TRACKING WORKFLOW
📅 Event Day Arrives
Client Opens Event in Client App
Client Clicks Generate QR Code
📱 QR Code Displayed on Client Screen
Staff Arrives at Venue
Staff Opens Staff App
Staff Clicks Clock In
Staff Scans QR Code
Backend Verifies:• QR Code Valid?• Location Match?• Staff Assigned?
Verification Passed?
❌ Error Message Displayed
✅ Staff Clocked In Successfully
⏱️ Real-time Timer Starts in Staff App
Staff Works During Shift
End of Shift
Staff Scans Same QR Code
Staff Clicks Clock Out
Backend Calculates Total Hours
✅ Staff Clocked Out Successfully
Shift Status: COMPLETED
⚠️ Staff Has IssueNo Battery, App Problem
Client Uses Manual Clock In
⭐ START: POST-SHIFT RATING & INVOICING WORKFLOW
All Shifts Completed
Client Receives NotificationPlease Rate Your Staff
Client Opens Event Details
Client Views List of Assigned Staff
Client Selects Staff Member
Client Rates Performance1 to 5 Stars ⭐⭐⭐⭐⭐
Client Adds Comments OptionalFeedback About Performance
Rating Submitted & Saved
More Staffto Rate?
Backend Auto-Generates Invoice
Invoice Calculation:• Total Hours per Staff• Rate × Hours• Platform Fees
📧 Invoice Sent to Client
Client Reviews Invoice Details
Client Agreeswith Invoice?
Client Approves Invoice
✅ Invoice Approved - Payment Scheduled
Client Contests Invoice
Client Adds Reason for DisputeIncorrect Hours, Wrong Rate, etc.
⚠️ Dispute Created for Admin Review
💰 START: STAFF EARNINGS & PAYMENT WORKFLOW
Shift Completed & Invoice Approved
Backend Calculates Staff Payment
Formula: Hours Worked × Hourly Rate
Payment Added to Staff Earnings Balance
Staff Opens Earnings Dashboard
Staff Views:• Weekly Earnings• Monthly Earnings• Total Hours Worked• Earnings Breakdown by Shift
Payment Processing CycleWeekly/Bi-weekly
💳 Payment Transferred to Bank Account
Staff Receives Payment Notification
Payment Appears in History Tab
Staff Checks:Payment Amount Correct?
✅ Payment Complete - All Good!
Staff Opens Dispute
Staff Selects Payment in History
Staff Provides Dispute ReasonWrong Hours, Wrong Rate, Missing Hours
⚠️ Dispute Sent to KROW Admin
Admin Reviews & Resolves
🎉 END OF ALL WORKFLOWS
Option A
Option B
Recommended
Budget Option
Approve ✅
Dispute ⚠️
Option C
Manual
Adjust Invoice
Reject Dispute
💼 Shift Completed & Rated
📊 INTERNAL: Calculate Invoice
• Hours worked per staff• Regular + Overtime + Double• Rate × Hours• Platform fees• Tax calculations
📄 INTERNAL: Generate Invoice Document
How to generate PDF?
✅ Internal PDF LibraryLaravel DomPDF/SnappyFull control, no extra cost
🔌 API ServiceDocuPDF, PDFShiftCost per invoice
💾 INTERNAL: Save Invoice to Database
• Invoice number• Status: pending• Due date• Payment terms• Stored in your DB
📧 Send Invoice to Client
How to send email?
🔌 Email Service APISendGrid / Mailgun / AWS SES~$0.001 per emailBetter deliverability
⚠️ Internal SMTPYour own serverRisk: spam folder
📱 Client Receives Invoice
Client Reviews
Invoice Approved
INTERNAL: Dispute ManagementAdmin reviews & resolves
💳 Payment Processing
How to collect payment?
🔌 Stripe API• Credit card processing• ACH bank transfer• Fee: 2.9% + $0.30
📝 Manual Payment• Bank wire• Check• Tracked in your system
🔌 Other Payment API• PayPal• Square• Authorize.net
✅ Payment Received
💾 INTERNAL: Update Invoice Status
Accounting Integration?
🔌 QuickBooks APIAuto-sync invoicesto accounting system
🔌 Xero APIFor accounting sync
📊 Internal Reports OnlyExport CSV for accountant
💰 Pay Staff Their Earnings
How to pay staff?
🔌 Payroll API• Stripe Connect• Gusto• ADPAutomated payouts
🏦 Manual Bank TransfersYou process each one
🎉 Invoice Cycle Complete
Admin Reviews Dispute
Decision?