You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
4.1 KiB
Markdown
131 lines
4.1 KiB
Markdown
# 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
|