- Updated FormW4Page to utilize FormW4Cubit for state management. - Removed local state management and replaced with BLoC state. - Implemented form validation logic based on BLoC state. - Added methods for handling form field updates and navigation between steps. - Integrated success and error handling for form submission. - Refactored UI components to reflect changes in state management. feat: Update TaxFormsPage to use TaxFormsCubit for loading tax forms - Changed the way TaxFormsPage retrieves the TaxFormsCubit instance. - Ensured that tax forms are loaded on initial build. feat: Replace mock repository with implementation for tax forms - Switched from TaxFormsRepositoryMock to TaxFormsRepositoryImpl. - Added use cases for getting and submitting tax forms. - Implemented the TaxFormsRepositoryImpl to handle data fetching and submission logic. feat: Implement use cases for tax forms - Created GetTaxFormsUseCase for retrieving tax forms. - Created SubmitTaxFormUseCase for submitting tax form data. - Ensured use cases interact with the repository for data operations.
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, and generate localization files:
# Using Makefile
make mobile-install
# Using Melos
melos bootstrap
3. Running the Apps
You can run the applications using Melos scripts or through the Makefile:
Client App
# Using Melos
melos run start:client -d android # or ios
# Using Makefile
make mobile-client-dev-android
Staff App
# Using Melos
melos run start:staff -d android # or ios
# Using Makefile
make mobile-staff-dev-android
🛠 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.