Commit Graph

8 Commits

Author SHA1 Message Date
Connor Johnstone
08c333dcba Update dependencies and UI for WASM compatibility
- Simplify Cargo.toml dependencies for frontend-only build
- Add comprehensive CSS styling with responsive design
- Update app routing and main module structure
- Fix WASM getrandom compatibility with js feature

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 15:56:41 -04:00
Connor Johnstone
181e0c58c1 Implement frontend authentication system with login/registration
- Add comprehensive authentication module with mock service
- Create login and registration components with form validation
- Implement protected routing with yew-router
- Add responsive UI styling with gradient design
- Enable JWT token persistence via localStorage
- Support demo credentials (demo/password) and flexible auth for development

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 15:56:18 -04:00
Connor Johnstone
ad176dd423 Implement comprehensive CalDAV calendar event parsing
Features:
- Complete CalendarEvent struct with all iCal properties
- EventStatus and EventClass enums for proper typing
- CalDAVClient for server communication with:
  - fetch_events() method using CalDAV REPORT queries
  - discover_calendars() with intelligent path discovery
  - Full iCal parsing using ical crate
  - DateTime parsing with multiple format support
  - XML response parsing with regex

Integration tests:
- Real server event fetching with calendar discovery
- iCal parsing validation with sample data
- DateTime parsing tests (UTC, local, date-only)
- Successful connection to configured calendar path

Dependencies added:
- regex crate for XML parsing
- Enhanced calendar module structure

Test results: ✓ All 7 tests pass
- Successfully connects to /calendars/test/ path
- Fetches 0 events (empty calendar, connection confirmed)
- No more 404 errors with improved discovery logic

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 15:30:47 -04:00
Connor Johnstone
786f078e45 Enable CalDAV integration tests by default
- Remove #[ignore] attributes from CalDAV tests
- Update documentation to reflect tests run with `cargo test`
- Tests now validate CalDAV connectivity on every test run
- Ensures continuous integration of server authentication
- All 3 tests pass: unit test + 2 integration tests

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 15:20:24 -04:00
Connor Johnstone
103c380098 Add CalDAV integration tests with Baikal server
- Updated base64 usage to new API (BASE64_STANDARD.encode)
- Added tokio dev dependency for async testing
- Created comprehensive integration tests:
  - test_baikal_auth: Tests authentication with OPTIONS request
  - test_propfind_calendars: Tests calendar discovery with PROPFIND
- Tests validate:
  - HTTP Basic Auth with .env credentials
  - DAV server capabilities detection
  - CalDAV PROPFIND XML responses
  - 207 Multi-Status handling
- Both tests pass successfully against Baikal server
- Tests marked as #[ignore] for CI/network isolation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 15:18:43 -04:00
Connor Johnstone
01411f76c4 Add CalDAV dependencies and secure configuration
- Added comprehensive CalDAV/calendar dependencies:
  - reqwest for HTTP requests
  - ical for calendar parsing
  - chrono for date/time handling
  - serde for serialization
  - anyhow/thiserror for error handling
  - uuid for event generation
- Implemented secure config management:
  - dotenvy for environment variable loading
  - base64 for Basic Auth encoding
  - .env.example template for development
  - .gitignore updated to exclude secret files
- Created config.rs module with extensive documentation:
  - CalDAVConfig struct for server credentials
  - Environment-based configuration loading
  - HTTP Basic Auth helper methods
  - Comprehensive error handling
  - Full rustdoc documentation with examples

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 15:13:36 -04:00
Connor Johnstone
0f4b505acd Add Docker support with Alpine Linux
- Multi-stage Dockerfile with rust:alpine and nginx:alpine
- Optimized for small container size (~20MB)
- Includes SPA routing support and gzip compression
- Health check for container monitoring
- .dockerignore to optimize build context

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 14:53:25 -04:00
Connor Johnstone
a507ab07be Initial commit: Basic Yew frontend template
- Set up Cargo.toml with Yew dependencies
- Created main.rs entry point
- Added basic App component with counter functionality
- Included HTML template with styling
- Added Trunk.toml for build configuration
- Added .gitignore to exclude build artifacts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 14:36:34 -04:00