Attending a UniEvents event requires completing a registration form atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Edfermachado/proyectoSistemas/llms.txt
Use this file to discover all available pages before exploring further.
/events/[slug]/register. Free events issue a confirmed ticket immediately; paid events enter a payment-pending state until a faculty administrator verifies your transfer. This guide walks through the full flow from browsing to receiving your ticket.
Registration Flow
Open the event detail page
Navigate to
/events/[slug] for the event you want to attend. Review the date, time, venue, and price shown in the ticket card on the right. You must be logged in as a role = 'user' account — unauthenticated visitors see a Inicia Sesión para Registrarte button instead.Click the register button
Click Inscribirse Ahora (free events) or Comprar Entrada (paid events). You will be redirected to
/events/[slug]/register.Fill in your personal details
Complete the registration form with the following required fields:
| Field | Description |
|---|---|
name | Your full name |
email | Pre-filled from your session and read-only — cannot be changed |
phone | Your contact phone number |
attendeeType | Select Estudiante Universitario or Público Foráneo / General |
Submit payment details (paid events only)
If the event has a non-zero price, an additional Datos para el Pago Móvil panel appears showing the faculty’s bank account details. Complete the extra fields:
| Field | Required | Description |
|---|---|---|
paymentReference | Yes | The last 6 digits of your mobile payment transaction reference |
screenshot | No | An image file (JPEG, PNG, or WebP) of your payment confirmation screen |
Submit the form
Click Confirmar Inscripción (free) or Registrar Compra (paid). The form calls the
registerForEvent server action. Your email is taken from the authenticated session — not from the form — to prevent spoofing.Receive your ticket
- Free events: Your registration status is set directly to
confirmado. A QR code is displayed immediately on the success screen and is also accessible from your profile. - Paid events: Your registration status is set to
pago_pendiente. The faculty administrator must verify your payment before your ticket is confirmed. You will be notified in your profile when the status changes.
Attendee Types
When registering, you must select one of two attendee types. This value is stored in theattendee_type column and used in faculty attendance reporting:
estudiante
A student enrolled at the hosting university. Select this option if you belong to the academic community of the faculty organizing the event.
foraneo
An external or visiting attendee from outside the university (general public, guests from other institutions, etc.).
Payment Information
For paid events, the event registration page displays the faculty’s mobile payment (Pago Móvil) details so you can complete the transfer before or during registration:paymentReference field and optionally upload a screenshot as proof. Your registration will show as pago_pendiente until a faculty admin confirms it.
Screenshot / Image Upload
Payment screenshots are processed server-side by theregisterForEvent action using a two-step upload strategy:
| Priority | Storage Backend | Resulting URL |
|---|---|---|
| 1 (preferred) | Supabase Storage | Remote CDN URL |
| 2 (fallback) | Local filesystem | /uploads/payments/{filename}.webp |
image/jpeg, image/png, image/webp.
After Registration
Once your form is submitted successfully:- You are redirected to
/events/[slug]/register?success=true&ticket={ticketToken}(for free events, the token is shown immediately). - For free events, the
TicketQRcomponent renders your QR code on the success screen. This QR encodes yourticketTokenUUID. - Your registration is always accessible from your profile at
/profile, regardless of payment status.
Duplicate registrations for the same event are prevented at the service layer by
AttendeesService.registerAttendee. If you attempt to register for an event with a user account (userId) that already has a registration record for that event, the action returns the error: “Ya estás registrado en este evento.”