28 Commits

Author SHA1 Message Date
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