As an admin, I want to use the backend API to review external API access requests. Implement FastAPI endpoints: GET /admin/api-requests, GET /admin/api-requests/{id}, PATCH /admin/api-requests/{id}/approve, PATCH /admin/api-requests/{id}/reject. Store request records and decisions in MySQL. Notify requester by email on decision.
As a user, I want to see the Landing page that exactly matches the mock design (v2). Implement the full JSX structure including hero section, features section, CTA, testimonials, and footer from the existing JSX design. This task is independent and must be completed before any other page work begins. Reference the existing Landing (v2) JSX design.
As a user, I want to use the backend API for full event lifecycle management. Implement FastAPI endpoints: POST /events, GET /events, GET /events/{id}, PUT /events/{id}, DELETE /events/{id}. Include Pydantic validation, JWT auth middleware, and MySQL persistence via SQLAlchemy. Supports Dashboard and Create Event pages.
As an admin, I want to use the backend API to manage user accounts. Implement FastAPI admin endpoints: GET /admin/users, GET /admin/users/{id}, PATCH /admin/users/{id} (role/status), DELETE /admin/users/{id}. Protect all routes with admin-role guard. Log audit entries on sensitive actions.
As a user, I want to use the backend API for guest list management. Implement FastAPI endpoints: GET /events/{id}/guests, POST /events/{id}/guests, PATCH /guests/{id}, DELETE /guests/{id}. Include RSVP status filtering and aggregated count summaries in responses. Persist all guest and RSVP data in MySQL.
As a developer, I want a global design token system so that all pages share a consistent color palette. Set up CSS variables or theme config for: background #F8F3F9, surface #FFFFFF, text #333333, accent #FF69B4, muted #D8BFD8. Apply across all components and establish typographic scale, spacing, border-radius, and shadow tokens.
As a user, I want to use the backend API to browse and assign birthday themes. Implement FastAPI endpoints: GET /themes, GET /themes/{id}, POST /events/{id}/theme. Seed database with initial birthday theme set including name, colors, preview URLs, and layout config. Store theme definitions in MySQL.
As an admin, I want to use the backend API to get platform overview stats. Implement GET /admin/stats returning: total users, total events, pending API requests, events in last 30 days, and top themes. Use database-level aggregation queries for performance. Protect with admin-role middleware.
As a user, I want to use the backend API to upload and manage event photos. Implement FastAPI endpoints: POST /events/{id}/photos (multipart upload), GET /events/{id}/photos, DELETE /photos/{id}. Integrate file storage (local volume or S3-compatible). Validate file type and size. Store photo metadata in MySQL.
As a user, I want to use the backend API to send and track digital invitations. Implement FastAPI endpoints: POST /events/{id}/invitations (send to email list), GET /events/{id}/invitations, DELETE /invitations/{id}, PATCH /invitations/{token}/rsvp (public). Integrate email service for themed HTML invitation dispatch. Persist records and RSVP tokens in MySQL.
As a user, I want to use the backend API to schedule and receive event reminders. Implement POST /events/{id}/reminders to schedule reminder jobs. Use APScheduler or Celery+Redis to dispatch email/push notifications at configured intervals (1 week before, 1 day before). Store notification records and delivery status in MySQL.
As a user, I want to choose a birthday theme for my event. Build the Themes page displaying a gallery of selectable theme/template cards with visual previews. Allow preview and selection highlighted in hot pink. Connect theme selection to event state. Used in Event Organizer flow after Create Event.
As a user, I want to send digital invitations to my guests. Build the Invitations page with invitation message composer, guest email input (individual/bulk), themed invitation preview, and send action. Show sent/pending status per invite. Connects from Themes page and leads to Guest List page.
As an admin, I want to manage all user accounts on the platform. Build the Users page with a searchable, filterable table of registered users. Include columns for name, email, role, and status. Provide actions to activate, deactivate, delete, or change user roles. Connect to admin users API.
As a user, I want to upload and view photos from my birthday celebration. Build the Gallery page with drag-and-drop photo upload, responsive masonry/grid layout, lightbox preview, upload progress indicator, and host delete controls. Final step in Individual User flow. Connect to gallery API.
As a user, I want to create a new birthday event with all details. Build the Create Event page with fields for event name, date, time, location, description, and privacy settings. Include date/time pickers, validation, and on submission redirect to Themes page. Part of both Event Organizer and Individual User flows.
As a new user, I want to create a Lunar-Happy account. Build the Signup page with name, email, password, and confirm password fields. Include real-time validation, success/error toasts, and redirect to dashboard on success. Apply global theme. Users arrive here from Landing page for Individual User flow.
As an admin, I want to view platform overview statistics. Build the Admin Dashboard page with summary stat cards showing total users, total events, pending API requests, and recent activity feed. Restrict to admin-role users. Connect to admin stats API. Leads to Users and API Requests pages.
As a user, I want to manage my guest list and track RSVPs. Build the Guest List page with a table/card list of invited guests showing RSVP status (Accepted, Declined, Pending). Include add/remove guest actions, resend invitation, search/filter, and summary count banner. Final step in Event Organizer flow.
As a user, I want to view all my birthday events in the dashboard. Build the Dashboard page showing event cards with name, date, guest count, and status. Include Create Event CTA, empty state illustration, and loading skeletons. Connects to Create Event page. Apply global theme tokens with mobile responsiveness.
As an admin, I want to review and decide on external API access requests. Build the API Requests page listing pending requests with requester details and reason. Include Approve and Reject buttons with confirmation modals. Show decision history with status badges. Connect to admin API request endpoints.
As a user, I want to sign in to my Lunar-Happy account. Build the Login page UI with email and password fields, hot pink submit button, link to signup, and validation error states. Integrate with existing auth backend. Apply global theme tokens. Users navigate here from the Landing page.
As a user, I want AI to recommend birthday themes based on my preferences. Implement POST /ai/recommend-themes accepting celebrant age, interests, and party style, returning ranked theme suggestions with reasoning. Display AI recommendations with an 'AI Suggested' badge on the Themes page. Use Langchain and Litellm for LLM routing.
As a user, I want AI to generate personalized birthday invitation messages for my event. Implement POST /ai/generate-invitation accepting event details (celebrant name, age, theme, tone) and returning 3 GPT-generated invitation variants. Apply birthday-context prompt engineering. Surface AI suggestions as selectable options on the Invitations page.

No comments yet. Be the first!