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.

4.1 KiB

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

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