- Implemented Google Sheets integration:
- Created
GoogleSheetsServicefor handling Google Sheets operations - Added
GoogleSheetsSetupPagefor user configuration of Google Sheets - Implemented credential upload and spreadsheet ID input
- Created
- Created
Taskmodel with JSON serialization, status enum, andoriginalAssigneefield - Implemented
Roommatemodel with JSON serialization - Added
StorageServiceabstract class andHiveStorageServiceimplementation for local storage - Created
TaskProviderandRoommateProviderfor state management - Implemented
GoogleSheetsSetupProviderfor managing Google Sheets connection state - Added
AddTasksPagewith functionality to add, edit, and remove tasks - Implemented
AddRoommatesPagewith functionality to add, edit, and remove roommates - Created
AppRoutesfor centralized routing management - Added
bootstrapfunction for app initialization and error handling - Implemented
DependencyManagerfor dependency injection usingget_it - Created
RoommateServiceandTaskServicefor handling roommate and task operations - Added
ServiceUtilsfor common utility functions used across services - Implemented automatic loading of saved Google Sheets configuration
- Implemented task management features in
TaskService:- Added
generateWeeklyTasksmethod - Implemented
clearFutureTasksmethod - Created
reviseSchedulemethod for updating task assignments - Added
swapTaskfunctionality - Implemented
wipeOffAssignedTasksmethod
- Added
- Created
AssignmentOrderclass for managing task assignment order - Added
periodicNormalizationmethod for balancing task assignments - Implemented
generateFairnessReportmethod for analyzing task distribution - Added
_calculateOverallBalancemethod for quantifying fairness - Enhanced
AddTasksPagefunctionality:- Implemented a modal bottom sheet for adding new task templates
- Added suggested tasks feature with emoji support
- Implemented task frequency selection in the add task form
- Implemented onboarding experience:
- Created
SplashScreenwidget for displaying onboarding pages - Added
OnboardingServiceto manage onboarding state - Integrated SVG images for onboarding illustrations
- Implemented page indicators and navigation buttons for onboarding flow
- Created
- Updated routing to include onboarding flow:
- Added splash route to
AppRoutes - Implemented redirection logic in
GoRouterto handle onboarding state
- Added splash route to
- Added
flutter_svgpackage for rendering SVG images
- Updated project structure to follow a feature-based architecture
- Configured the app to use Material 3 design
- Updated
pubspec.yamlwith new dependencies:- Added
blocandflutter_blocfor state management - Added
go_routerfor navigation - Added
gsheetsfor Google Sheets integration - Added
hiveandhive_flutterfor local storage - Added
uuidfor generating unique identifiers
- Added
- Refactored
GoogleSheetsSetupProviderto determine initial setup status based on stored credentials and spreadsheet ID - Updated
AddRoommatesPageto use a modal bottom sheet for adding new roommates - Modified
RoommateProviderto work with the newRoommateService - Moved
reviseSchedulemethod fromRoommateServicetoTaskService - Updated
TaskProviderto use newTaskServicemethods - Modified
Taskmodel to includeisSwappedgetter - Refactored
GoogleSheetsServiceto properly initializeTaskServiceandRoommateService - Updated
AppRoutesto include redirection logic for setup completion - Updated
AddTasksPageUI:- Improved layout of task template list
- Added empty state message when no task templates exist
- Refactored task addition process to use a modal bottom sheet
- Modified
GoRouterconfiguration to start with the splash screen - Updated
DependencyManagerto includeOnboardingService - Refactored
StorageServiceto use an enumStorageKeyfor consistent key management
- Addressed potential null safety issues in
GoogleSheetsServiceandGoogleSheetsSetupProvider - Improved error handling in Google Sheets connection process and
TaskServicemethods - Fixed issue with duplicate roommate creation
- Resolved issues with task template management in
AddTasksPage:- Fixed task template addition and deletion
- Improved error handling in task template operations
- Improved navigation flow to ensure users complete onboarding before accessing main app features
- Removed redundant task assignment logic from
RoommateService