37 Commits

Author SHA1 Message Date
2994b4e7e8 Extra 2026-02-04 23:31:09 -05:00
0afba7b67b Extra 2026-02-04 23:30:07 -05:00
m3mo
34d8694018 Update README with testing and environment documentation
- Add environment configuration section with flavor commands
- Document specialization topic (Testing)
- Add testing strategy section with test structure
2026-02-04 14:41:03 +01:00
m3mo
6c0e66f958 Add testing dependencies
- Add integration_test SDK dependency
- Add mocktail for unit test mocking
2026-02-04 14:40:48 +01:00
m3mo
e428c9bd41 Enable HTTP network access for Android
- Add INTERNET permission
- Allow cleartext traffic for API communication
2026-02-04 14:40:32 +01:00
m3mo
8c02dae118 Add unit tests for DailyTasksViewModel
- Test loading tasks with success and error states
- Test priority sorting (high > medium > low)
- Test filter functionality (all, active, completed)
- Test task toggle and delete operations
- Test date navigation (previousDay, nextDay)
- Use mocktail for repository mocking
2026-02-04 14:40:19 +01:00
m3mo
2c9fa4a59a Add integration tests for end-to-end app flow
- Test task creation with title and priority
- Test task toggle completion functionality
- Test filter chips (all, active, completed)
- Test date navigation between days
- Verify localization integration
2026-02-04 14:39:59 +01:00
m3mo
093ba2a24a Add logout confirmation localization string
- Add logoutConfirmation key to English and German ARB files
- Update settings page to use localized string instead of hardcoded text
- Regenerate localization files
2026-02-04 14:39:39 +01:00
m3mo
cc45831b59 Add environment configuration with flavor support
- Add AppConfig class for dev/prod environment settings
- Create main_dev.dart and main_prod.dart entry points
- Update datasources to use centralized API URL config
- Support --dart-define=ENV for runtime configuration
2026-02-04 14:38:12 +01:00
m3mo
1665070397 Fix popup menu text overflow on narrow screens
Wrap menu item text in Flexible widget with ellipsis
overflow to prevent layout overflow errors.
2026-02-03 19:47:02 +01:00
m3mo
b7ccbe6a19 Add widget tests for SetupPage
Tests for UI elements display, ViewModel behavior,
and mode card interactions.
2026-02-03 19:46:49 +01:00
m3mo
a89cb3393d Add widget tests for TaskTile and FilterChips
TaskTile tests: display, interactions, popup menu, delete
confirmation, priority colors.

FilterChips tests: display, selection, visual state changes.
2026-02-03 19:46:35 +01:00
m3mo
4ed703506b Add unit tests for TaskModel
Tests for JSON serialization, parsing, entity conversion,
and round-trip data integrity.
2026-02-03 19:46:20 +01:00
m3mo
1bfa2722eb Add unit tests for task domain layer
Tests for TaskEntity and Priority enum covering
construction, copyWith, equality, and parsing.
2026-02-03 19:45:59 +01:00
m3mo
329ea29966 Add unit tests for auth feature
Tests for UserEntity, UserModel, and TokenModel covering
serialization, parsing, and equality.
2026-02-03 19:45:17 +01:00
m3mo
4bee9c1498 Add test helpers for widget testing
Provides reusable MaterialApp wrappers with localization
support for Flutter widget tests.
2026-02-03 19:44:53 +01:00
m3mo
db0c5337ed Optimize calendar loading with parallel API calls
- Replace sequential API calls with Future.wait() for parallel execution
- Reduces calendar load time from ~31 sequential requests to 1 parallel batch
2026-02-03 18:27:43 +01:00
m3mo
fbccd5b7d9 Add back navigation from login to setup screen
- Add back button on login page for first-time online mode setup
- Allow users to return to setup screen and change their mode selection
- Add backToSetup localization string for English and German
2026-02-03 18:27:24 +01:00
m3mo
28c2eed5d2 Update dependencies for offline-first features
- Add Drift and SQLite packages for local database
- Add flutter_launcher_icons for icon generation
- Update generated plugin registrant files
2026-02-03 14:23:24 +01:00
m3mo
2683960fac Replace app icon with custom checkmark design
- Add purple checkmark icon matching login screen style
- Generate Android adaptive icons with proper foreground/background
- Update iOS app icons
- Include icon generator tool for future updates
2026-02-03 14:23:06 +01:00
m3mo
28c5380d31 Add mode switching and fix logout flow in settings
- Display current app mode in settings
- Add dialog to switch between local and online modes
- Fix logout to reset setup state and return to setup screen
2026-02-03 14:22:48 +01:00
m3mo
95ffc4d51d Add localization strings for setup, onboarding, and mode switching
- Add English translations for new screens
- Add German translations for new screens
- Update generated localization files
2026-02-03 14:22:33 +01:00
m3mo
8c837ec9d1 Update router and DI for offline-first flow
- Add setup and onboarding routes to router
- Implement redirect logic for setup, onboarding, and mode checks
- Register local database and task datasource in DI container
- Add mode-aware task repository factory
2026-02-03 14:22:19 +01:00
m3mo
04863ff008 Add setup and onboarding screens
- Create SetupPage for choosing local or online mode
- Create OnboardingPage with 3-slide tutorial
- Explain Eisenhower Method and ALPEN planning approach
2026-02-03 14:21:58 +01:00
m3mo
ece34acd85 Add local task datasource and repository
- Create TaskLocalDataSource for Drift database operations
- Implement LocalTaskRepositoryImpl with same interface as remote
- Support full CRUD operations for offline task management
2026-02-03 14:21:40 +01:00
m3mo
ccc7d544db Add Drift SQLite database for local task storage
- Create AppDatabase with Tasks table
- Add CRUD operations for local task persistence
- Include generated database code
2026-02-03 14:21:07 +01:00
m3mo
ceef4f4c72 Add offline-first mode support to settings
- Add AppMode enum (local, online)
- Extend settings datasource with mode, setup, and onboarding flags
- Update settings viewmodel with mode helpers and persistence
2026-02-03 14:20:49 +01:00
m3mo
3c3da50a54 Fix backend deployment configuration
- Add psycopg2-binary for PostgreSQL database driver
- Update nginx config for HTTP-only access on IP address
2026-02-03 14:20:24 +01:00
m3mo
3c513594ba Add Linode server deployment package
- Create Dockerfile for backend with Python 3.12 and gunicorn
- Add docker-compose.yml with PostgreSQL, backend, nginx, certbot
- Configure nginx reverse proxy with SSL and rate limiting
- Add deployment scripts: deploy.sh, backup-db.sh, setup-ssl.sh
- Include environment template and deployment documentation
2026-02-02 22:58:28 +01:00
m3mo
d8164be49a Add user authentication to Flutter frontend
- Create auth feature with Clean Architecture (domain/data/presentation)
- Add login and register pages with form validation
- Implement secure token storage with flutter_secure_storage
- Create AuthenticatedClient for automatic Bearer token headers
- Add AuthViewModel for global auth state management
- Update router with auth guards (redirect to login if not authenticated)
- Add logout option to settings page
- Update TaskRemoteDataSource to use authenticated client
- Add auth-related localization strings (EN/DE)
2026-02-02 22:58:07 +01:00
m3mo
911f192c38 Add JWT-based user authentication to backend
- Create User model with bcrypt password hashing
- Add auth routes: register, login, refresh, me
- Implement JWT access and refresh tokens
- Add get_current_user dependency for protected routes
- Update Task model with user_id foreign key for data isolation
- Update TaskService to filter tasks by authenticated user
- Add auth configuration (secret key, token expiry)
2026-02-02 22:57:38 +01:00
m3mo
5cd79e096d Improve touch targets with 48dp minimum size for mobile
- Enlarge calendar priority dots to 10px with pulsing animation
- Increase task tile checkbox and menu button containers to 48x48
- Add proper minVerticalPadding to task tiles (72dp height)
- Update filter chips with MaterialTapTargetSize.padded
- Increase navigation buttons to 48x48 with 28px icons
- Update task form with 48dp height segmented button
2026-02-02 22:57:17 +01:00
m3mo
da873afae0 Add calendar task indicators with priority colors and animation
- Fix calendar navigation using ValueKey to force rebuild
- Add colored dots on calendar days with tasks (red/orange/green)
- Show highest priority of incomplete tasks for each day
- Add subtle pulsing animation to task indicators
- Load tasks for visible month when calendar opens
2026-02-02 21:40:47 +01:00
m3mo
864560ef2e Fix calendar navigation, task deletion, and language defaults
- Add date parameter support to DailyAgendaPage for calendar navigation
- Add popup menu to task tile with delete and reschedule options
- Set default locale to English when none is saved
- Update API base URL comment for desktop vs Android
2026-02-02 21:07:27 +01:00
m3mo
820b35f5e6 Fix backend deprecation warnings and duplicate index
- Remove duplicate index definition in Task model
- Update Query regex to pattern parameter
- Use ConfigDict instead of class Config in Pydantic
2026-02-02 20:51:41 +01:00
m3mo
f121df50f1 Fix localization imports and build issues
- Update localization imports to use package path
- Remove unused provider import from main.dart
- Fix default test file
- Refactor settings dialogs to use Radio widget
2026-02-02 20:48:42 +01:00
m3mo
cb308bbf68 Initial project setup with Clean Architecture
- Flutter frontend with Provider state management
- FastAPI backend with SQLAlchemy ORM
- Internationalization support (EN/DE)
- Clean Architecture folder structure
- GoRouter for navigation
- GetIt for dependency injection
2026-02-02 16:43:37 +01:00