# Phase 0 Status - Venue Admin Frontend **Date**: 2025-11-05 **Engineer**: Uma Canvas (Frontend Faye) **Project**: playchoo-manager-nextjs ## Summary ✅ **Phase 0 frontend scaffolding is COMPLETE and ready for backend integration** The admin portal UI is fully scaffolded with: - Clean admin landing page - `/admin/clubs` route with access-aware messaging - Graceful handling of authentication and authorization states - Clear TODO markers for backend dependencies ## What's Complete ### 1. Project Setup ✅ - Forked from playchoo-nextjs template - Updated all configuration for manager.playchoo.com domain - Ports: 8100 (dev), 8200 (prod) - Docker, Docker Compose, and Drone CI configs updated - Fresh git repository initialized ### 2. Admin Landing Page ✅ **Route**: `/[locale]/` (root) **Features**: - Three-card layout showcasing admin sections - "Clubs" card is active and links to `/admin/clubs` - "Schedules" and "Bookings" show "Coming soon" (Phase 1+) - Consistent design with gradient backgrounds and glassmorphism ### 3. Club Management Page ✅ **Route**: `/[locale]/admin/clubs` **Features**: - Access-aware messaging system: - Shows authentication prompt if user not logged in - Shows access denied if user lacks club_admin role - Shows club listing when authorized - Empty state with clear API dependency note - Card-based club display (ready for data) - Responsive grid layout ### 4. Documentation ✅ - Comprehensive README.md - Blocking files for dependencies: - `Data_Dana-blocking-Frontend_Faye.md` - API contracts needed - `Access_Avery-blocking-Frontend_Faye.md` - Auth infrastructure needed - Activity log in `docs/owners/Frontend_Faye.md` (in py-playchoo-api repo) ## What's Blocked (Backend Dependencies) ### Blocked by Access Avery **Status**: CRITICAL PATH **Need**: 1. `club_admin` association table (links users to clubs) 2. Auth middleware that exposes: - User authentication state - User roles (specifically `club_admin`) - List of club IDs user can administer 3. Test accounts with club_admin role for staging **UI Impact**: Currently hardcoded to show unauthenticated state ### Blocked by Data Dana **Status**: CRITICAL PATH **Need**: 1. `GET /admin/clubs` - List clubs user can administer 2. `GET /admin/clubs/{club_id}` - Get club details 3. Proper 401/403/404 error responses **UI Impact**: Currently shows empty state with dependency note ## Integration Work Required Once backend is ready, Frontend Faye needs to: 1. Replace hardcoded auth checks with actual session/token checks (~2 hours) 2. Implement API calls to `/admin/clubs` endpoints (~2 hours) 3. Add loading states and error handling (~2 hours) 4. Test with staging data and credentials (~2 hours) **Estimated integration time**: 1 day ## File Locations ### New Project ``` /Volumes/AppleFS/kDrive/Documents/workspace/playchoo-manager-nextjs/ ├── src/app/[locale]/ │ ├── page.tsx # Admin landing page │ └── admin/clubs/page.tsx # Club management page ├── README.md # Project documentation └── PHASE_0_STATUS.md # This file ``` ### Coordination Docs (in py-playchoo-api repo) ``` /Volumes/AppleFS/kDrive/Documents/workspace/py-playchoo-api/docs/owners/ ├── Frontend_Faye.md # My activity log ├── Data_Dana-blocking-Frontend_Faye.md # API contracts I need └── Access_Avery-blocking-Frontend_Faye.md # Auth I need ``` ## How to Run Locally ```bash cd /Volumes/AppleFS/kDrive/Documents/workspace/playchoo-manager-nextjs # Install dependencies npm install # Start dev server (port 8100) npm run dev # Visit http://localhost:8100 ``` ## Next Steps (Phase 1) After Phase 0 backend integration is complete: 1. Slot definition table component 2. Create/edit form for slot templates 3. Materialisation status indicator 4. Integration with Job Jonah's materialisation job ## Questions? - See `README.md` for architecture details - See blocking files in `py-playchoo-api/docs/owners/` for API specs - Contact Frontend Faye (Uma Canvas) with questions