- Removed the UiSuccessSnackbar widget as it is no longer needed. - Updated WorkerHomePage to replace hardcoded spacing with UiConstants. - Refactored HomeHeader to use UiConstants for dimensions and colors. - Modified PlaceholderBanner to utilize UiConstants for sizes and colors. - Adjusted QuickActionItem to apply UiConstants for dimensions and icon sizes. - Updated RecommendedShiftCard to use design system typography and constants. - Refined SectionHeader to implement design system styles and spacing. - Enhanced ShiftCard to adopt design system tokens for colors and spacing. - Updated AutoMatchToggle to use design system colors and dimensions. - Refactored BenefitsWidget to apply design system styles and constants. - Improved ImproveYourselfWidget to utilize design system tokens for styling. - Updated MoreWaysToUseKrowWidget to implement design system styles and constants.
KROW Workforce Mobile 📱
This folder holds the mobile app code for the KROW Workforce apps. This project uses Melos to manage multiple Flutter packages and applications.
📂 Project Structure
The project is organized into modular packages to ensure separation of concerns and maintainability.
apps/: Main application entry points.client: The application for businesses/clients.staff: The application for workforce/staff.design_system_viewer: A gallery of our design system components.
packages/: Shared logic and feature modules.features/: UI and business logic for specific features (e.g., Auth, Home, Hubs).features/client: Client specific features.features/staff: Staff specific features.
design_system/: Shared UI components, tokens (colors, spacing), and core widgets.domain/: Shared business entities and repository interfaces.data_connect/: Data access layer (Mocks and Firebase Data Connect SDK).core_localization/: Internationalization using Slang.core/: Base utilities and common logic.
🚀 Getting Started
1. Prerequisites
Ensure you have the Flutter SDK installed and configured.
2. Initial Setup
Run the following command from the project root to install Melos, bootstrap all packages, generate localization files, and generate the Firebase Data Connect SDK:
# Using Makefile (Recommended)
make mobile-install
This command will:
- Install Melos if not already installed
- Generate the Firebase Data Connect SDK from schema files
- Bootstrap all packages (install dependencies)
- Generate localization files
Note: The Firebase Data Connect SDK files (dataconnect_generated/) are auto-generated and not committed to the repository. They will be regenerated automatically when you run make mobile-install or any mobile development commands.
3. Running the Apps
You can run the applications using Melos scripts or through the Makefile:
First, find your device ID:
flutter devices
Client App
# Using Melos
melos run start:client -- -d <device_id>
# Using Makefile (DEVICE defaults to 'android' if not specified)
make mobile-client-dev-android DEVICE=<device_id>
Staff App
# Using Melos
melos run start:staff -- -d <device_id>
# Using Makefile (DEVICE defaults to 'android' if not specified)
make mobile-staff-dev-android DEVICE=<device_id>
🛠 Useful Commands
- Bootstrap:
melos bootstrap(Installs all dependencies) - Generate All:
melos run gen:all(Localization + Code Generation) - Analyze:
melos run analyze:all - Help:
melos run info(Shows all available custom scripts)
🏗 Coding Principles
- Clean Architecture: We strictly follow Domain-Driven Design and Clean Architecture.
- Modularity: Every feature should be its own package in
packages/features/. Client and staff specific features should be in their respective packages. - Consistency: Use the
design_systempackage for all UI elements to ensure a premium, unified look.