feat: update navigation paths for worker profile and shifts in HomeNavigator
This commit is contained in:
@@ -9,7 +9,7 @@ import 'package:krow_domain/krow_domain.dart';
|
|||||||
extension HomeNavigator on IModularNavigator {
|
extension HomeNavigator on IModularNavigator {
|
||||||
/// Navigates to the worker profile page.
|
/// Navigates to the worker profile page.
|
||||||
void pushWorkerProfile() {
|
void pushWorkerProfile() {
|
||||||
pushNamed('/worker-profile');
|
pushNamed('/worker-main/profile');
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Navigates to the availability page.
|
/// Navigates to the availability page.
|
||||||
@@ -31,9 +31,9 @@ extension HomeNavigator on IModularNavigator {
|
|||||||
/// Optionally provide a [tab] query param (e.g. `find`).
|
/// Optionally provide a [tab] query param (e.g. `find`).
|
||||||
void pushShifts({String? tab}) {
|
void pushShifts({String? tab}) {
|
||||||
if (tab == null) {
|
if (tab == null) {
|
||||||
pushNamed('/shifts');
|
pushNamed('/worker-main/shifts');
|
||||||
} else {
|
} else {
|
||||||
pushNamed('/shifts?tab=$tab');
|
pushNamed('/worker-main/shifts?tab=$tab');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
382
docs/DEMO_PLAN.md
Normal file
382
docs/DEMO_PLAN.md
Normal file
@@ -0,0 +1,382 @@
|
|||||||
|
# 🎬 KROW Workforce Platform — Feature Demo Plan
|
||||||
|
|
||||||
|
**Version:** 1.0
|
||||||
|
**Date:** February 2, 2026
|
||||||
|
**Audience:** Business Stakeholders, Customer Engineers, Sales Teams
|
||||||
|
**Duration:** 25-30 minutes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1️⃣ Demo Overview
|
||||||
|
|
||||||
|
### Purpose
|
||||||
|
|
||||||
|
This demo showcases the progress of the milestone 3.
|
||||||
|
|
||||||
|
- **For Businesses (Client App):** One-time shift creation, worker management, real-time coverage tracking
|
||||||
|
- **For Workers (Staff App):** Easy access to available shifts, clock-in and profile management
|
||||||
|
- **Complete Workflow:** From shift posting and worker check-in and completion/
|
||||||
|
|
||||||
|
### Estimated Demo Duration
|
||||||
|
|
||||||
|
**25-30 minutes**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2️⃣ Demo Environment Setup
|
||||||
|
|
||||||
|
### Required Test Accounts
|
||||||
|
|
||||||
|
**Client Account (Business User):**
|
||||||
|
- Email: `google_payment@gmail.com`
|
||||||
|
- Password: `Demo2026!`
|
||||||
|
- Client Name: "Google Payements"
|
||||||
|
|
||||||
|
**Staff Account (Worker):**
|
||||||
|
- Phone: `+1 (555) 123-4567`
|
||||||
|
- OTP Code: `123456` (demo mode)
|
||||||
|
- Name: "Alex Martinez"
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
1. ✅ Both apps installed on demo devices (or simulators)
|
||||||
|
2. ✅ Network connection stable
|
||||||
|
3. ✅ Seed data is ready to be populated
|
||||||
|
- the database should be empty.
|
||||||
|
- remove unnecessary users from the firebase authetication.
|
||||||
|
|
||||||
|
### Pre-Demo Data Seeding
|
||||||
|
|
||||||
|
Tracked in :
|
||||||
|
- https://github.com/Oloodi/krow-workforce/issues/345
|
||||||
|
|
||||||
|
- This should be easily populated and de-populated by the demonstrator to show the empty states in the apps.
|
||||||
|
- At the start the database should be empty.
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3️⃣ Demo Flows
|
||||||
|
|
||||||
|
### Demo 0: Show Empty Database
|
||||||
|
**Purpose:** Demonstrate the starting point before any data exists
|
||||||
|
**Action:** Show the empty database in Firebase console
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 1: Register Business & Show Empty States (Client App)
|
||||||
|
**Purpose:** Show the client onboarding experience and empty states
|
||||||
|
**Steps:**
|
||||||
|
1. Open Client App → Tap "Create Account"
|
||||||
|
2. Enter business details (email, password, company name)
|
||||||
|
3. Complete sign up and navigate to home page
|
||||||
|
4. **Point out:** Empty dashboard, no orders, no workers, clean slate
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 2: Register Staff & Show Empty States (Staff App)
|
||||||
|
**Purpose:** Show the worker onboarding experience and empty states
|
||||||
|
**Steps:**
|
||||||
|
1. Open Staff App → Tap "Sign Up"
|
||||||
|
2. Enter phone number and verify with OTP code
|
||||||
|
3. Complete profile setup wizard (skip detailed sections for speed)
|
||||||
|
4. Navigate to home page
|
||||||
|
5. **Point out:** Empty shifts list, no available work yet
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> **🔄 PAUSE HERE:** Populate the database with seed data (run seeding script)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 3: Client Logs In with Existing Account
|
||||||
|
**Purpose:** Show the sign-in experience for returning users
|
||||||
|
**Screen:** Get Started → Sign In
|
||||||
|
**Steps:**
|
||||||
|
1. Open Client App (or restart if already open)
|
||||||
|
2. Tap "Sign In" button
|
||||||
|
3. Enter credentials:
|
||||||
|
- Email: `google_payment@gmail.com`
|
||||||
|
- Password: `Demo2026!`
|
||||||
|
4. Tap "Sign In"
|
||||||
|
5. Observe loading state and successful authentication
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- Clean, professional interface with business branding
|
||||||
|
- Password field security (masked characters)
|
||||||
|
- Error handling for invalid credentials
|
||||||
|
- Smooth transition to home screen
|
||||||
|
|
||||||
|
**Why It Matters:** Single sign-on for all team members, secure authentication without complexity
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 4: Client Views Populated Dashboard
|
||||||
|
**Purpose:** Show how the client app displays active operations
|
||||||
|
**Steps:**
|
||||||
|
1. After signing in, observe the home screen
|
||||||
|
2. Navigate through populated sections:
|
||||||
|
- Home: Coverage stats, upcoming shifts
|
||||||
|
- Orders: Posted shifts with workers assigned
|
||||||
|
- Coverage: Real-time worker status
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- Coverage percentage for today's shifts
|
||||||
|
- Workers checked in vs. needed
|
||||||
|
- Late workers alerts
|
||||||
|
- Today's estimated labor cost
|
||||||
|
|
||||||
|
**Why It Matters:** At-a-glance visibility of operations without manual tracking
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 5: Client Creates New Order
|
||||||
|
**Purpose:** Walk through the shift creation process
|
||||||
|
**Screen:** Orders Tab → "Post" button
|
||||||
|
**Action:** Create a new shift for upcoming event
|
||||||
|
|
||||||
|
**What to Fill:**
|
||||||
|
- Order name: "Spring Gala 2026"
|
||||||
|
- Date: [Select upcoming date]
|
||||||
|
- Location: [Select existing hub]
|
||||||
|
- Add position: Server, Count: 3, Hours: 5PM-11PM
|
||||||
|
- Add position: Bartender, Count: 1, Hours: 4PM-11PM
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- Simple form with smart defaults
|
||||||
|
- Real-time cost calculation
|
||||||
|
- Option to add multiple roles
|
||||||
|
- Review summary before posting
|
||||||
|
|
||||||
|
**Why It Matters:** Post shifts in under 2 minutes vs. hours of phone calls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 6: Client Views Order Details
|
||||||
|
**Purpose:** Show detailed shift information and worker assignments
|
||||||
|
**Screen:** Orders Tab → Tap on any order card
|
||||||
|
**Action:** Expand order to see full details
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- Event name and location
|
||||||
|
- Roles needed (e.g., "2 Servers, 1 Bartender")
|
||||||
|
- Clock in/out times
|
||||||
|
- Estimated cost
|
||||||
|
- Coverage percentage bar
|
||||||
|
- List of confirmed workers with profile photos
|
||||||
|
|
||||||
|
**Why It Matters:** Complete transparency on staffing status before the event
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 7: Client Monitors Coverage Dashboard
|
||||||
|
**Purpose:** Show real-time worker tracking capabilities
|
||||||
|
**Screen:** Coverage Tab
|
||||||
|
**Action:** Navigate to Coverage, select today's date
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- Live worker status (Checked In, En Route, Late, Not Arrived)
|
||||||
|
- Color-coded status badges (green, yellow, red)
|
||||||
|
- Real-time check-in notifications
|
||||||
|
- Worker contact information
|
||||||
|
|
||||||
|
**Why It Matters:** Know exactly who's on-site and who's missing before event starts
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 8: Staff Browses Available Shifts
|
||||||
|
**Purpose:** Show how workers discover and view available work
|
||||||
|
**Screen:** Shifts Tab → "Find Work"
|
||||||
|
**Action:** Browse the list of available shifts
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- List of shifts matching worker skills
|
||||||
|
- Distance from worker's location
|
||||||
|
- Hourly rate prominently displayed
|
||||||
|
- Role requirements (e.g., "Bartender - Spring Gala")
|
||||||
|
- Date, time, and duration
|
||||||
|
|
||||||
|
**Why It Matters:** Workers can find work that fits their schedule and skills
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 9: Staff Applies for Shift
|
||||||
|
**Purpose:** Show the application process from worker side
|
||||||
|
**Screen:** Shift Details → "Apply Now" button
|
||||||
|
**Steps:**
|
||||||
|
1. Tap on an available shift to view details
|
||||||
|
2. Review business name, location, pay, requirements
|
||||||
|
3. Tap "Apply Now"
|
||||||
|
4. See instant confirmation
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- Simple one-tap application
|
||||||
|
- Instant confirmation message
|
||||||
|
- Shift appears in "My Shifts" tab immediately
|
||||||
|
|
||||||
|
**Why It Matters:** One-tap application vs. lengthy forms or phone calls
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 10: Staff Views Confirmed Shifts
|
||||||
|
**Purpose:** Show worker's shift management interface
|
||||||
|
**Screen:** Shifts Tab → "My Shifts"
|
||||||
|
**Action:** Review calendar view of confirmed shifts
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- Week-by-week calendar navigation
|
||||||
|
- Color-coded status (Confirmed, Pending, Completed)
|
||||||
|
- Quick access to shift details and directions
|
||||||
|
- Upcoming shift reminders
|
||||||
|
|
||||||
|
**Why It Matters:** Workers manage all shifts in one centralized place
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 11: Staff Checks In to Shift (Day of Event)
|
||||||
|
**Purpose:** Demonstrate the check-in process
|
||||||
|
**Screen:** Home or My Shifts → Shift Card → "Check In" button
|
||||||
|
**Action:** Simulate checking in to an active shift
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- GPS verification of location
|
||||||
|
- Timestamp automatically recorded
|
||||||
|
- Status changes to "Checked In" with green indicator
|
||||||
|
- Notification sent to business
|
||||||
|
|
||||||
|
**Why It Matters:** Eliminates manual time tracking and buddy punching
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Demo 12: Client Sees Real-Time Check-In Update
|
||||||
|
**Purpose:** Show cross-app interaction and real-time updates
|
||||||
|
**Screen:** Client App → Coverage Tab
|
||||||
|
**Action:** Show the worker's status updating from "Not Arrived" to "Checked In"
|
||||||
|
|
||||||
|
**What to Notice:**
|
||||||
|
- Instant status update (no refresh needed)
|
||||||
|
- Green "Checked In" badge appears
|
||||||
|
- Check-in time displayed
|
||||||
|
- Coverage percentage updates automatically
|
||||||
|
|
||||||
|
**Why It Matters:** Real-time visibility prevents no-shows and improves coordination
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Complete Order Creation Flow
|
||||||
|
```
|
||||||
|
Client Posts Shift
|
||||||
|
↓
|
||||||
|
*Vendor Accepts the Shift (This Part is missing for now)*
|
||||||
|
↓
|
||||||
|
Worker Applies
|
||||||
|
↓
|
||||||
|
Confirmation
|
||||||
|
↓
|
||||||
|
Worker Checks In
|
||||||
|
↓
|
||||||
|
Shift Completed
|
||||||
|
↓
|
||||||
|
Payment
|
||||||
|
```
|
||||||
|
|
||||||
|
### Act 1: Business Need (Client App)
|
||||||
|
- Google payments division needs staff for an upcoming event and posts shift requirements.
|
||||||
|
|
||||||
|
> NOTE:
|
||||||
|
> *Vendor needs to accepts the Shift (This Part is missing for now)*
|
||||||
|
> Note this to the customer.
|
||||||
|
|
||||||
|
### Act 2: Worker Discovery (Staff App)
|
||||||
|
- A worker finds the shift, reviews details, and applies.
|
||||||
|
- The worker can see the confirmation quickly.
|
||||||
|
|
||||||
|
### Act 3: Day of Event (Staff App + Client App)
|
||||||
|
Worker checks in using the app, business tracks attendance in real-time.
|
||||||
|
|
||||||
|
### Act 4: Completion & Payment (Both Apps)
|
||||||
|
Shift completes, payment is processed.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8️⃣ Common Questions & Talking Points
|
||||||
|
|
||||||
|
### **Q: How do you handle background checks and compliance?**
|
||||||
|
**A:** Workers upload required documents (certifications, IDs) during onboarding. The system flags expired or missing documents and prevents booking until resolved. Businesses can configure required certifications per role.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: What if a worker no-shows?**
|
||||||
|
**A:** The platform tracks reliability scores based on check-ins and cancellations. Businesses can filter workers by reliability when posting shifts. Repeated no-shows result in account warnings.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: Can we message workers before or during shifts?**
|
||||||
|
**A:** *(Current State: Not yet implemented in demo)* Messaging is on the roadmap. Currently, workers can access business contact info from shift details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: How does payment work?**
|
||||||
|
**A:** Workers link bank accounts during onboarding. Hours are automatically calculated from check-in/check-out times. Payment is processed weekly via ACH transfer. *(Note: Payment processing integration is in progress)*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: What happens if we need to cancel a shift?**
|
||||||
|
**A:** Businesses can cancel shifts from the Orders screen. Workers receive cancellation notifications. The system tracks cancellation history for both businesses and workers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: Can workers see their upcoming schedule?**
|
||||||
|
**A:** Yes, the "My Shifts" tab shows a week-by-week calendar view of all confirmed shifts. Workers can export to phone calendar.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: Do you support recurring shifts or long-term placements?**
|
||||||
|
**A:** *(Current State: One-time shifts implemented)* Recurring and permanent shifts are on the roadmap. Current demo focuses on one-time event staffing.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: How do you verify worker skills?**
|
||||||
|
**A:** During onboarding, workers select their experience levels and upload relevant certificates (ServSafe, TIPS, etc.). Businesses can require certifications per role.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: What if GPS check-in doesn't work (indoor venue)?**
|
||||||
|
**A:** *(Current State: GPS-based check-in)* Backup QR code check-in is in development. Businesses can also manually verify check-ins from Coverage dashboard.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: Can we integrate with our existing payroll system?**
|
||||||
|
**A:** *(Future Feature)* API integration with payroll systems like ADP, Gusto is planned. Current export options include CSV for manual import.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: What data do businesses see about workers?**
|
||||||
|
**A:** Businesses see worker name, photo, ratings, reliability score, certifications, and shift history. Personal details (address, SSN) remain private.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: Is there a web dashboard for businesses?**
|
||||||
|
**A:** *(Current State: Mobile-first)* Web admin dashboard is in development. Current demo shows mobile apps for both businesses and workers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Q: What's the pricing model?**
|
||||||
|
**A:** *(Sales Team Question)* Refer to sales team for pricing. Platform fee is typically percentage of labor cost or flat per-worker rate.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9️⃣ Current Limitations (Be Transparent)
|
||||||
|
|
||||||
|
1. **Messaging:** In-app chat between businesses and workers is not yet available
|
||||||
|
2. **Payment Processing:** ACH/payment gateway integration is in progress
|
||||||
|
3. **Recurring Shifts:** Only one-time shifts are currently implemented
|
||||||
|
4. **Web Dashboard:** Admin web interface is under development
|
||||||
|
5. **Shift Swapping:** Workers cannot yet swap shifts with each other
|
||||||
|
6. **Push Notifications:** Some real-time notifications may have delays
|
||||||
|
7. **Offline Mode:** Apps require internet connection for most features
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Document Version:** 1.0
|
||||||
|
**Last Updated:** February 2, 2026
|
||||||
|
**Maintained By:** Product & Solutions Engineering Team
|
||||||
|
**Feedback:** Submit updates via GitHub Issues or Slack #demo-playbook
|
||||||
|
|
||||||
Reference in New Issue
Block a user