Repository navigation
Feature/event sign admin - #108
Open
conradangwz wants to merge 7 commits into
Open
conradangwz wants to merge 7 commits into
conradangwz wants to merge 7 commits into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📑 Description
Added an Event Sign Ups section to the admin dashboard so admins can view registrations for upcoming and past events, manage the waitlist, remove registrations, and record attendance. Includes confirmed/waitlisted tabs, name and email search, attendance filtering, sorting, pagination, and registration totals.
Connected the existing UpcomingEvent signup flow to the ticket API while preserving its design and form fields. Registrations now show confirmed or waitlisted status, prevent duplicate submissions, and respect event capacity and signup opening times.
Updated the event signup view and shared admin table styling to match the existing admin design. Styles are centralised in
client/src/style/admin.cssusing regular CSS, prefixed class names, and reusable theme variables to make future styling changes easier. Includes responsive table/card layouts and improved loading, error, and empty states.Event payment processing is not connected yet. The existing payment fields remain, but registrations currently use
"N/A"as the payment ID.✏️ Summary of Changes
EventSignupsSection.tsx — added event selection, registration totals, confirmed/waitlisted tabs, attendance filtering and checkboxes, removal confirmation, and waitlist promotion controls
DataTable.tsx — updated shared table styling, search controls, pagination, loading states, and responsive card layout
AdminDashboard.tsx — added the Event Sign Ups dashboard section
AdminSidebar.tsx — added Events navigation
Admin.tsx — added events to the available admin sections
admin.css — centralised shared admin styling in the style folder using regular CSS and reusable theme variables
UpcomingEvent.tsx — connected signup to the registration API, added existing registration lookup, confirmed/waitlisted feedback, and submission guards while retaining the existing fields and layout
EventPageWrapper.tsx — added event registration metadata and prevented stale requests from displaying the wrong event
ticketsApi.ts — added typed registration, lookup, attendance, cancellation, and promotion API helpers
ticketController.ts — added capacity-aware registration, duplicate protection, current-user lookup, admin registration management, and transaction handling
ticketRoutes.ts — added current-user lookup and admin-protected management routes
ticket.ts — added registration status, attendance, waitlist and cancellation fields, plus compound indexes
event.ts — added registration version tracking for concurrent registration updates
index.ts — added ticket index creation before the server starts listening
migrateToWebp.ts — applied formatting updates
📸 Screenshots
✅ Ready?