User flow architecture
How Convenes fits together — roles, flows, routes and the data behind each step.
Roles
Super admin
Platform-wide
What this role can do
- See and manage every conference
- Create a conference and assign it to an organiser
- Grant platform roles
Organiser admin
Per conference
What this role can do
- Create and publish their conference
- Halls, agenda, speakers, ticket types, meal slots
- Approve or reject registrations, issue complimentary tickets
- Add volunteers and co-admins, read attendance and feedback
Volunteer
Per conference
What this role can do
- Open the scan portal for their assigned conference
- Scan tickets for hall check-in
- Redeem meal and snack tokens
Participant
Per conference
What this role can do
- Browse and register for published events
- Hold a QR ticket and meal tokens
- Add sessions to their calendar
- Submit feedback after sessions
Roles are stored in a dedicated roles table and scoped per conference, so the same person can organise one event and attend another.
1. Creating and publishing an event
Setup flow
Sign up -> Dashboard -> New conference
|
v
Draft conference record
|
+--------------+-----------+-----------+--------------+
v v v v v
Halls Agenda Speakers Ticket types Meal slots
(capacity) (day/hall/ (bio, (price, food, (breakfast,
time slot) chief kit, window) lunch, snacks,
guest) dinner)
\_____________________ Publish _____________________/
|
v
Public page /e/<slug> -> poster + share links2. Registration and ticketing
Registration flow
Participant Organiser System
----------- --------- ------
Open /e/<slug>
Fill registration ----> Registrations tab
(custom fields) review queue
|
+-- Approve --------------> Ticket + QR code issued
| Meal tokens created if
| food is included
+-- Reject --------------> status = rejected
|
+-- Complimentary (by email)
-> approved registration
-> ticket + tokens, no payment
Ticket appears in /my-tickets with its QR and meal tokens.3. Check-in, attendance and food
Scan flow
Volunteer opens /volunteer/<conference id>
|
| chooses hall / session, or a meal slot
v
Camera scans the participant's QR (ticket code)
|
v
Server-side validation
|-- unknown code -> invalid
|-- wrong conference -> invalid
|-- already checked in -> already scanned
|-- token already redeemed -> rejected
`-- valid -> attendance row / token redeemed
Organiser sees it live in the Attendance tab:
headcount per hall, per session, per participant, meal redemption.4. Feedback and reporting
Feedback flow
Session ends
|
v
Participant opens Feedback
| picks event, then "Overall event" or a finished session
| gives 1-5 stars + optional comment
v
feedback row (one per user per session)
|
v
Organiser Feedback tab: average rating, response count, commentsRoute map
| Route | Access | Purpose |
|---|---|---|
| / | Public | Landing page |
| /events | Public | All published conferences |
| /e/$slug | Public | Event landing page: about, agenda, speakers, register, share |
| /doc/flow | Public | This document |
| /auth | Public | Sign in and sign up |
| /dashboard | Signed in | Managed conferences, volunteer assignments, registrations |
| /conferences/new | Organiser | Create a conference |
| /manage/$id | Organiser admin | Overview, halls, agenda, speakers, tickets, registrations, attendance, team, feedback |
| /volunteer/$id | Volunteer | QR scan portal for check-in and meal tokens |
| /my-tickets | Participant | Tickets, QR codes and meal tokens |
| /feedback | Participant | Submit event and session feedback |
| /profile | Signed in | Personal details |
Data model
- profiles
- Name, email, phone, organisation, avatar — created on sign-up
- user_roles
- Platform roles (super_admin, organizer, volunteer, participant), never on profiles
- conferences
- The event: title, category, venue, dates, timezone, status, custom fields
- conference_members
- Per-conference admins and volunteers
- halls
- Rooms with capacity
- sessions
- Agenda entries: day, hall, time, type, capacity
- speakers / session_speakers
- Speaker and chief-guest profiles linked to sessions
- ticket_types
- Name, price, quantity, includes food / kit, sale window
- registrations
- One per user per conference: status, answers, complimentary, food flag
- tickets
- Issued on approval; unique code encoded in the QR
- attendance
- One row per scan: ticket, hall or session, volunteer, timestamp
- meal_slots / meal_tokens
- Meal windows and single-use tokens per ticket
- feedback
- Rating and comment, per event or per session
Every table has row-level security scoped by conference membership or by the signed-in user. Public event pages read a published-only slice. Scans and privileged admin operations are validated server-side, so a screenshot of someone else's QR still fails the checks it should.
Ready to try it? Browse events or create a conference.