ci-run-20250918-2021 #28

Merged
Nicholai merged 35 commits from ci-run-20250918-2021 into main 2025-10-30 08:10:55 +00:00
Owner

WIP: the site is almost ready.

I've integrated the site with the portal for SSO authentication, added deziree and kaori, removed angel, added a wip banner to the top of the site, and built more with the integration of the wipe effect and database integration.

Here's what remains:

  • finishing artist portfolios
  • booking system
  • UI design (making it pretty)
  • admin and artists portal for individual portfolio control

Notes:
development has changed a lot on this from the beginning. The site is becoming something really cool! It's also not as unruly as I thought it would be. I don't feel like I'm in over my head, its actually sort of a cool portfolio piece.

WIP: the site is almost ready. I've integrated the site with the portal for SSO authentication, added deziree and kaori, removed angel, added a wip banner to the top of the site, and built more with the integration of the wipe effect and database integration. Here's what remains: - finishing artist portfolios - booking system - UI design (making it pretty) - admin and artists portal for individual portfolio control - Notes: development has changed a lot on this from the beginning. The site is becoming something really cool! It's also not as unruly as I thought it would be. I don't feel like I'm in over my head, its actually sort of a cool portfolio piece.
Nicholai added 35 commits 2025-10-30 08:08:51 +00:00
feat: implement CalDAV Nextcloud bidirectional calendar integration
Some checks failed
Enhanced CI/CD Pipeline / Code Quality (push) Has been cancelled
Enhanced CI/CD Pipeline / Security Scan (push) Has been cancelled
Enhanced CI/CD Pipeline / Tests (push) Has been cancelled
Enhanced CI/CD Pipeline / Build Application (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Preview (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Production (push) Has been cancelled
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Has been cancelled
Enhanced CI/CD Pipeline / Cleanup (push) Has been cancelled
51c6436b70
Adds complete CalDAV integration for syncing appointments between the web app
and Nextcloud calendars with real-time availability checking and conflict resolution.

Core Features:
- Bidirectional sync: Web ↔ Nextcloud calendars
- Real-time availability checking with instant user feedback
- Conflict detection (Nextcloud is source of truth)
- Pending request workflow with 'REQUEST:' prefix for unconfirmed appointments
- Hard time blocking - any calendar event blocks booking slots
- Graceful degradation when CalDAV unavailable

New Dependencies:
- tsdav@^2.0.4 - TypeScript CalDAV client
- ical.js@^1.5.0 - iCalendar format parser/generator

Database Changes:
- New table: artist_calendars (stores calendar configuration per artist)
- New table: calendar_sync_logs (tracks all sync operations)
- Added caldav_uid and caldav_etag columns to appointments table
- Migration: sql/migrations/20250109_add_caldav_support.sql

New Services:
- lib/caldav-client.ts - Core CalDAV operations and iCalendar conversion
- lib/calendar-sync.ts - Bidirectional sync logic with error handling

New API Endpoints:
- GET /api/caldav/availability - Real-time availability checking
- POST /api/caldav/sync - Manual sync trigger (admin only)
- GET/POST/PUT/DELETE /api/admin/calendars - Calendar configuration CRUD

Updated Components:
- app/api/appointments/route.ts - Integrated CalDAV sync on CRUD operations
- components/booking-form.tsx - Added real-time availability indicator
- hooks/use-availability.ts - Custom hook for debounced availability checking

Documentation:
- docs/CALDAV-SETUP.md - Complete setup guide with troubleshooting
- docs/CALDAV-IMPLEMENTATION-SUMMARY.md - Technical implementation overview

Pending Tasks (for future PRs):
- Admin dashboard UI for calendar management
- Background sync worker (Cloudflare Workers cron)
- Unit and integration tests

Tested with local database migration and linting checks passed.
feat: Add construction banner with dismissible functionality
Some checks are pending
Enhanced CI/CD Pipeline / Code Quality (push) Waiting to run
Enhanced CI/CD Pipeline / Security Scan (push) Waiting to run
Enhanced CI/CD Pipeline / Tests (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Build Application (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Preview (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Cleanup (push) Blocked by required conditions
a6cf87774b
- Add ConstructionBanner component with warning icon and phone number
- Integrate banner into ClientLayout above all content
- Add CSS to automatically adjust navigation position when banner is visible
- Banner is dismissible with localStorage persistence
- Phone number: (719) 698-9004 for bookings
- Yellow/amber theme matching dark design
- Add specific CSS rules to maintain proper vertical alignment
- Ensure navigation items stay centered when banner pushes nav down
- Fix visual offset issue between logo and navigation items
- Remove CSS that moved navigation position (was causing alignment issues)
- Add body padding instead to make room for banner
- Navigation now stays at top:0 with proper internal alignment maintained
- Set explicit 60px height on construction banner
- Use proper flexbox centering in banner container
- Apply top: 60px to navigation when banner is present
- Add smooth transition for banner show/hide
feat: add global under-construction banner with session dismissal and booking phone\n\n- New components/construction-banner.tsx with amber warning style, tel link (719-698-9004), sessionStorage-based dismissal\n- Update app/ClientLayout.tsx to render banner, offset content via CSS var, and push fixed nav down
Some checks are pending
Enhanced CI/CD Pipeline / Deploy to Preview (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Code Quality (push) Waiting to run
Enhanced CI/CD Pipeline / Security Scan (push) Waiting to run
Enhanced CI/CD Pipeline / Tests (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Build Application (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Cleanup (push) Blocked by required conditions
1b6462429e
updated
Some checks are pending
Enhanced CI/CD Pipeline / Code Quality (push) Waiting to run
Enhanced CI/CD Pipeline / Security Scan (push) Waiting to run
Enhanced CI/CD Pipeline / Tests (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Build Application (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Preview (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Cleanup (push) Blocked by required conditions
7757d80add
seeded Amari's portfolio to remote db
Some checks failed
Enhanced CI/CD Pipeline / Code Quality (push) Has been cancelled
Enhanced CI/CD Pipeline / Security Scan (push) Has been cancelled
Enhanced CI/CD Pipeline / Tests (push) Has been cancelled
Enhanced CI/CD Pipeline / Build Application (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Preview (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Production (push) Has been cancelled
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Has been cancelled
Enhanced CI/CD Pipeline / Cleanup (push) Has been cancelled
2fed5d4216
ran npm audit fix --force
Some checks are pending
Enhanced CI/CD Pipeline / Code Quality (push) Waiting to run
Enhanced CI/CD Pipeline / Security Scan (push) Waiting to run
Enhanced CI/CD Pipeline / Tests (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Build Application (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Preview (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Cleanup (push) Blocked by required conditions
68960f596e
added AGENTS.md
Some checks are pending
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Cleanup (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Code Quality (push) Waiting to run
Enhanced CI/CD Pipeline / Security Scan (push) Waiting to run
Enhanced CI/CD Pipeline / Tests (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Build Application (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Preview (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
e134ea3421
deleted AGENTS.md and added CLAUDE.md
Some checks are pending
Enhanced CI/CD Pipeline / Code Quality (push) Waiting to run
Enhanced CI/CD Pipeline / Security Scan (push) Waiting to run
Enhanced CI/CD Pipeline / Tests (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Build Application (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Preview (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Cleanup (push) Blocked by required conditions
3523e168d2
feat(auth): implement custom Nextcloud OAuth with auto-provisioning
Some checks are pending
Enhanced CI/CD Pipeline / Code Quality (push) Waiting to run
Enhanced CI/CD Pipeline / Security Scan (push) Waiting to run
Enhanced CI/CD Pipeline / Tests (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Build Application (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Preview (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Cleanup (push) Blocked by required conditions
3fbb731865
Replaced NextAuth's built-in OAuth provider (incompatible with Cloudflare
Workers) with custom OAuth implementation using native fetch API.

Features:
- Custom OAuth flow compatible with Cloudflare Workers edge runtime
- Auto-provisions users from Nextcloud based on group membership
- Group-based role assignment (artists, shop_admins, admins)
- Auto-creates artist profiles for users in 'artists' group
- Seamless integration with existing NextAuth session management

Technical changes:
- Added custom OAuth routes: /api/auth/nextcloud/authorize & callback
- Created Nextcloud API client for user provisioning (lib/nextcloud-client.ts)
- Extended credentials provider to accept Nextcloud one-time tokens
- Added user management functions to database layer
- Updated signin UI to use custom OAuth flow
- Added environment variables for OAuth configuration

Documentation:
- Comprehensive setup guide in docs/NEXTCLOUD-OAUTH-SETUP.md
- Updated CLAUDE.md with new authentication architecture

Fixes: NextAuth OAuth incompatibility with Cloudflare Workers (unenv https.request error)

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

Co-Authored-By: Claude <noreply@anthropic.com>
- Add Deziree Stanford as apprentice artist (deztheory24@gmail.com)
- Add Kaori Cedre as full-time artist with 5+ years experience
- Remove profile photos for Angel Andrade, Heather Santistevan, and Pako Martinez (set to placeholder)
- Update Amari Kyss profile info (specialty, bio, experience)
- Added both new artists to all D1 database environments (local, preview, production)

-claude
fixt: markdown linting
Some checks are pending
Enhanced CI/CD Pipeline / Code Quality (push) Waiting to run
Enhanced CI/CD Pipeline / Security Scan (push) Waiting to run
Enhanced CI/CD Pipeline / Tests (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Build Application (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Preview (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Blocked by required conditions
Enhanced CI/CD Pipeline / Cleanup (push) Blocked by required conditions
20e7c40ec5
feat(artists): redesign artist cards with wipe effect and database integration
Some checks failed
Enhanced CI/CD Pipeline / Code Quality (push) Has been cancelled
Enhanced CI/CD Pipeline / Security Scan (push) Has been cancelled
Enhanced CI/CD Pipeline / Tests (push) Has been cancelled
Enhanced CI/CD Pipeline / Build Application (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Preview (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Production (push) Has been cancelled
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Has been cancelled
Enhanced CI/CD Pipeline / Cleanup (push) Has been cancelled
fc81fcb740
- Remove PORTFOLIO and BOOK buttons, cards now fully clickable
- Add top-to-bottom wipe animation with curved SVG path boundary
- Portfolio images cycle on each hover and come from database
- Integrate useActiveArtists hook to fetch portfolio from D1
- Merge database portfolio images with static artist metadata
- Remove experience pill from cards for cleaner design
- Add framer-motion for smooth animations (0.5s easeInOut)
- Graceful fallback to static data during loading/errors
- Keep profile photos from static data for now

-claude
terminated Angel... lol
Some checks failed
Enhanced CI/CD Pipeline / Code Quality (push) Has been cancelled
Enhanced CI/CD Pipeline / Security Scan (push) Has been cancelled
Enhanced CI/CD Pipeline / Tests (push) Has been cancelled
Enhanced CI/CD Pipeline / Build Application (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Preview (push) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Production (push) Has been cancelled
Enhanced CI/CD Pipeline / Post-Deployment Checks (push) Has been cancelled
Enhanced CI/CD Pipeline / Cleanup (push) Has been cancelled
CI / build-and-test (pull_request) Has been cancelled
Enhanced CI/CD Pipeline / Code Quality (pull_request) Has been cancelled
Enhanced CI/CD Pipeline / Security Scan (pull_request) Has been cancelled
Performance Monitoring / Lighthouse Performance Audit (pull_request) Has been cancelled
Performance Monitoring / Bundle Size Analysis (pull_request) Has been cancelled
Performance Monitoring / Core Web Vitals Check (pull_request) Has been cancelled
Security and Dependency Scanning / Dependency Security Scan (pull_request) Has been cancelled
Security and Dependency Scanning / Code Security Scan (pull_request) Has been cancelled
Security and Dependency Scanning / Container Security Scan (pull_request) Has been cancelled
Enhanced CI/CD Pipeline / Tests (pull_request) Has been cancelled
Enhanced CI/CD Pipeline / Build Application (pull_request) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Preview (pull_request) Has been cancelled
Enhanced CI/CD Pipeline / Deploy to Production (pull_request) Has been cancelled
Enhanced CI/CD Pipeline / Post-Deployment Checks (pull_request) Has been cancelled
Enhanced CI/CD Pipeline / Cleanup (pull_request) Has been cancelled
Performance Monitoring / Generate Performance Report (pull_request) Has been cancelled
Security and Dependency Scanning / Generate Security Report (pull_request) Has been cancelled
977c3f48ac
Nicholai merged commit e5e03503ef into main 2025-10-30 08:10:55 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Nicholai/united-tattoo#28
No description provided.