Commit Graph

7 Commits

Author SHA1 Message Date
joakim 7ea78d3b54 docs: add comprehensive deployment guide and Caddy configuration
- Create detailed deployment documentation
- Add Caddyfile.example with security headers and API proxy
- Document SystemD service setup for Go API
- Include database backup strategy
- Add troubleshooting guide
- Document OAuth configuration steps
- Add build and deployment commands
- Test production build successfully (340KB static site)
2026-01-06 16:19:34 +01:00
joakim 8145645252 feat(pwa): complete PWA configuration
- Generate PWA icons in multiple sizes (72-512px)
- Create favicon.svg with app branding
- Add offline.html fallback page
- Update app.html with PWA meta tags
- Add theme-color and apple-touch-icon
- Configure viewport-fit for mobile notches
- PWA manifest already configured in vite.config.js
- Service worker caching already configured
2026-01-06 16:17:57 +01:00
joakim e8c6dd3930 feat(frontend): implement task CRUD functionality
- Create TaskItem component with checkbox, meta info, tags
- Create TaskList component with loading/empty states
- Update home page with task list and filter toggle (pending/completed)
- Add new task form with description, project, priority, due date, tags
- Add task detail placeholder page
- Implement task toggle (complete/uncomplete)
- Add filter bar to switch between pending and completed tasks
- Support for optimistic UI updates and offline queueing
- Visual indicators for priority, due dates, overdue tasks
- Mobile-optimized list items with proper touch targets
2026-01-06 16:16:44 +01:00
joakim 6b146c16a8 feat(frontend): add core UI components and pages
- Add global CSS with mobile-first styling and CSS custom properties
- Create base UI components: Button, Input, Checkbox, Select
- Add BottomNav component with icons for Tasks, Projects, Tags, Settings
- Update app layout to include BottomNav and auth handling
- Create Settings page with API key input and sync controls
- Create auth pages: /auth/login (OAuth) and /auth/callback
- Add placeholder pages for Projects and Tags
- Implement manual API key authentication for MVP testing
- Add logout functionality and user info display
- Support for safe-area-inset (mobile notches)
2026-01-06 16:14:24 +01:00
joakim d99e158a8c feat(frontend): add API client and Svelte stores
- Create API client with auto-retry and token refresh support
- Add comprehensive API endpoints for tasks, tags, projects, sync, and auth
- Implement authStore for authentication state management
- Implement tasksStore with optimistic updates and offline queue
- Add derived stores for filtered task views (pending, completed, by project)
- Implement syncStore for managing sync state and queue
- Add client ID generation and persistence for sync tracking
2026-01-06 15:45:13 +01:00
joakim 41795d1827 feat(frontend): setup frontend foundation
- Install dependencies: date-fns, @vite-pwa/sveltekit, workbox-window
- Configure Vite with PWA support and manifest
- Update SvelteKit config for static adapter with fallback
- Create environment files (.env, .env.example, .env.production)
- Create directory structure for lib, components, routes
- Add JSDoc type definitions for Task, User, AuthTokens, etc.
- Add utility functions: storage (localStorage wrapper), uuid, dates, sync-queue
- Configure PWA with icons, theme colors, and caching strategies
2026-01-06 15:43:39 +01:00
joakim 4eb18388db feat(backend): add OAuth2/JWT authentication support
- Add OAuth2 client for Authentik integration
- Implement JWT token generation and validation
- Add refresh token support with database storage
- Update database schema with oauth_subject, oauth_provider, and refresh_tokens table
- Create auth package with config, jwt, oauth, and token management
- Add OAuth endpoints: /auth/login, /auth/callback, /auth/refresh, /auth/logout
- Update AuthMiddleware to support both JWT and API key authentication
- Add user helper functions for OAuth user creation and retrieval
- Add .env.example with OAuth configuration template

API keys still work for CLI compatibility while JWT tokens support web/mobile clients.
2026-01-06 15:42:03 +01:00