Demo & Seeding¶
Revel includes management commands to populate the database with realistic test data, useful for development, demos, and manual QA.
Commands¶
make bootstrap¶
Runs the bootstrap management command from common/management/commands/bootstrap.py, which orchestrates the full setup:
migrate: applies all pending database migrationsbootstrap_events: creates the main demo dataset (users, organizations, events, questionnaires, etc.)bootstrap_test_events: creates a third organization with events designed to test every eligibility gategenerate_test_jwts: prints JWT access/refresh tokens for the superuser to stdout
Safe to run multiple times; it checks for existing data.
make seed¶
Runs a separate, large-scale seeder (seed command) that generates a configurable amount of synthetic data for load testing and comprehensive QA. Defaults to --seed 999.
# Default: 1000 users, 20 organizations, 50 events per org
make seed
# Custom scale
uv run python src/manage.py seed --seed 42 --users 500 --organizations 10 --events 25
# Clear all existing data first (destructive!)
uv run python src/manage.py seed --seed 42 --clear
The seed command runs 12 phases: files, users, organizations, venues, events, questionnaires, tickets, interactions, notifications, social, preferences, and Telegram links. It also creates (or verifies) a superuser ([email protected] / password by default; note this differs from make bootstrap which uses [email protected]).
The seed command also supports a --yes flag to skip confirmation prompts, useful for automated scripts:
Bootstrap vs Seed
make bootstrap creates a small, hand-crafted dataset with known users and scenarios that are easy to reason about during development. make seed creates a large, randomly generated dataset for stress testing and realistic-scale QA. They are independent; you can run one or both.
bootstrap_perf_tests¶
Creates test data specifically for Locust performance tests:
# Create performance test data
uv run python src/manage.py bootstrap_perf_tests
# Reset and recreate
uv run python src/manage.py bootstrap_perf_tests --reset
make reset-events¶
Runs the reset_events command, which deletes all organizations and all non-@letsrevel.io users, then re-runs bootstrap_events to recreate fresh demo data.
Destructive Operation
reset_events deletes all organizations, all questionnaires, and all users whose email does not end with @letsrevel.io. It then re-runs bootstrap_events from scratch. This command is only available when DEMO_MODE=True in settings. It supports --no-input to skip the confirmation prompt (used by periodic tasks in demo environments).
Does not recreate test events
reset_events only re-runs bootstrap_events, not bootstrap_test_events. After a reset, the Eligibility Test Organization and its test events will be missing. Run make bootstrap if you need them recreated.
What Gets Created¶
Superuser¶
The bootstrap command creates a superuser if one does not already exist:
| Field | Value |
|---|---|
| Username | [email protected] (or DEFAULT_SUPERUSER_USERNAME env var) |
| Password | password (or DEFAULT_SUPERUSER_PASSWORD env var) |
[email protected] (or DEFAULT_SUPERUSER_EMAIL env var) |
Tags (15)¶
A comprehensive tag taxonomy is created, split into two groups:
Category tags (10):
| Tag | Color | Description |
|---|---|---|
music | #FF6B6B | Music-related events |
food | #4ECDC4 | Food and dining events |
workshop | #45B7D1 | Educational workshops |
conference | #96CEB4 | Professional conferences |
networking | #FFEAA7 | Networking events |
arts | #DDA15E | Arts and culture |
tech | #6C5CE7 | Technology events |
sports | #00B894 | Sports and fitness |
wellness | #FDCB6E | Health and wellness |
community | #E17055 | Community gatherings |
Vibe tags (5):
| Tag | Color | Description |
|---|---|---|
casual | #74B9FF | Relaxed atmosphere |
formal | #2D3436 | Formal dress code |
educational | #00CEC9 | Learning focused |
social | #FD79A8 | Social interaction |
professional | #636E72 | Professional setting |
Users (13 + 4 test users)¶
All users share the password: password123
Main bootstrap users:
| Display Name | Key | Role | |
|---|---|---|---|
[email protected] | Alice Owner | org_alpha_owner | Owner of Revel Events Collective |
[email protected] | Bob Staff | org_alpha_staff | Staff at Revel Events Collective |
[email protected] | Charlie Member | org_alpha_member | Member of Revel Events Collective |
[email protected] | Diana Owner | org_beta_owner | Owner of Tech Innovators Network |
[email protected] | Eve Staff | org_beta_staff | Staff at Tech Innovators Network |
[email protected] | Frank Member | org_beta_member | Member of Tech Innovators Network |
[email protected] | George Attendee | attendee_1 | Regular attendee (also member of Beta) |
[email protected] | Hannah Attendee | attendee_2 | Regular attendee |
[email protected] | Ivan Attendee | attendee_3 | Regular attendee |
[email protected] | Julia Attendee | attendee_4 | Regular attendee |
[email protected] | Karen Multi | multi_org_user | Member of both organizations |
[email protected] | Leo Pending | pending_user | Pending/unaffiliated user |
[email protected] | Maria Invited | invited_user | Invited user |
Users are assigned random pronouns from a seeded list (he/him, she/her, they/them, he/they, she/they, any pronouns, or none).
Additional test users (from bootstrap_test_events):
| Display Name | Role | |
|---|---|---|
[email protected] | Random Tester | No organization (used for testing public access) |
[email protected] | Test Admin | Owner of Eligibility Test Organization |
[email protected] | Test Staff | Staff at Eligibility Test Organization |
[email protected] | Test Member | Member of Eligibility Test Organization |
[email protected] | Tenant Owner | Owner of the white-label fixture organizations (see White-label tenant fixtures) |
[email protected] | Revival InWindow | EXPIRED subscription on Org Alpha's E2E Revival Plan, expired 5 days ago (inside the 30-day revival window) |
[email protected] | Revival OutOfWindow | EXPIRED subscription on the same plan, expired 60 days ago (outside the revival window) |
[email protected] | Past Due | PAST_DUE subscription on the same plan, grace deadline 5 days out |
[email protected] | Test Referrer | Enrolled referrer: code test-partner (stored as typed, matched case-insensitively), 20% per-referrer share override |
[email protected] | — (no account) | PENDING referral application, id aaaaaaaa-0000-4000-8000-000000000001 |
[email protected] | — (no account) | APPROVED admin invite awaiting signup, id aaaaaaaa-0000-4000-8000-000000000002 → /register?referral_invite=<id> enrolls on registration |
[email protected] | — (no account) | BLOCKED (permanently rejected): a new application is silently dropped with 202 |
[email protected] | — (no account) | REJECTED with an admin note; may apply again |
The referral rows back the J21 referral-program E2E journeys: bootstrap_test_events also switches SiteSettings.referral_applications_enabled on (so /version reports features.referral_applications: true). Admin decisions (approve / reject / block / invite) exist only in the Django admin, so the decided states are written directly with fixed ids the specs can reference.
The last three back the frontend revival / past-due E2E journeys: EXPIRED and PAST_DUE are only ever produced by Stripe webhooks and the daily events.expire_subscriptions_past_grace sweep, so no API can arrange them. They hang off Org Alpha (the Stripe-connected org) on a dedicated E2E Revival Tier / E2E Revival Plan (€10/month, ONLINE, sales open, uncapped).
10 dummy users ([email protected] through [email protected]) and 5 ticket holders ([email protected] through [email protected]) are also created for capacity testing.
Organizations (3)¶
Revel Events Collective (Alpha)¶
| Setting | Value |
|---|---|
| Slug | revel-events-collective |
| Visibility | Public |
| City | Vienna |
| Owner | [email protected] |
| Staff | [email protected] |
| Members | [email protected], [email protected] |
| Tags | community, music, arts |
| Accept membership requests | Yes |
| Contact email | [email protected] |
| Stripe Connect | Enabled (uses CONNECTED_TEST_STRIPE_ID env var) |
Tech Innovators Network (Beta)¶
| Setting | Value |
|---|---|
| Slug | tech-innovators-network |
| Visibility | Public |
| City | Berlin |
| Owner | [email protected] |
| Staff | [email protected] |
| Members | [email protected], [email protected], [email protected] |
| Tags | tech, professional, networking |
| Accept membership requests | Yes |
| Contact email | [email protected] |
Eligibility Test Organization¶
| Setting | Value |
|---|---|
| Slug | eligibility-test-org |
| Visibility | Public |
| City | Vienna |
| Owner | [email protected] |
| Staff | [email protected] |
| Members | [email protected] |
| Tags | tech, test |
| Accept membership requests | Yes |
| Contact email | [email protected] |
White-label tenant fixtures¶
bootstrap_test_events also seeds three dedicated organizations for the custom-domain E2E journeys (see White-Label architecture). They are separate on purpose: the frontend 301s the platform URL of any organization with an active custom domain, so a domain can never sit on the shared fixtures other journeys visit on the platform host. All are owned by [email protected].
| Organization | Slug | Domain | Brand colors | Contents |
|---|---|---|---|---|
| Tenant Test Org | tenant-test-org | tenant.localhost (active) | #B0306A / #2E86DE | tenant-rsvp-event (RSVP), tenant-free-ticket-event (free "Free Ticket" tier) and tenant-seated-event (seat map, free "Seated Free" tier) |
| Tenant Paid Org | tenant-paid-org | paid.localhost (active) | #0E7C66 / #F2A541 | tenant-paid-event (online "Standard Ticket" tier at 10 EUR) and tenant-paid-seated-event (seat map, online "Seated Standard" tier at 10 EUR) |
| Domain Setup Org | domain-setup-org | none | none | Custom domains enabled, no domain yet, so its owner can request one in the admin UI |
- The two seated events (for anonymous seat-hold and guest-checkout E2E on a custom domain) are public and open to guests. Each has a venue named
<Org Name> Hallwith one seated sectorMAIN("Main Floor"), three rows A to C of six seats (A1toC6), and a single tier where guests pick their seats. The free one needs no Stripe; the paid one does. *.localhosthostnames are valid only withDEBUGon. Without it the tenant fixtures are skipped with a warning. Run the frontend withPLATFORM_HOSTS=localhostandPUBLIC_CUSTOM_DOMAIN_URL_TEMPLATE=http://{hostname}:5173, and the backend withCUSTOM_DOMAIN_URL_TEMPLATE=http://{hostname}:5173, then openhttp://tenant.localhost:5173.- Tenant Paid Org gets the platform's own
STRIPE_ACCOUNTwhen it is a realacct_id that no other organization holds, so test-mode checkouts work. Otherwise paid checkout on it fails and the seeder logs a warning.
Venues (1)¶
Revel Concert Hall¶
| Setting | Value |
|---|---|
| Organization | Revel Events Collective |
| City | Vienna |
| Address | Musikvereinsplatz 1, 1010 Vienna, Austria |
| Capacity | 100 |
| Sector | Main Floor (code: MF) |
| Seats | 100 seats in a 10x10 grid (rows A-J, seats 1-10). Row A is accessible. |
Event Series (2)¶
| Series | Organization | Tags |
|---|---|---|
Monthly Tech Talks (monthly-tech-talks) | Tech Innovators Network | tech, educational, networking |
Seasonal Community Gatherings (seasonal-community-gatherings) | Revel Events Collective | food, community, casual |
Events (13 main + 11 test)¶
Main Bootstrap Events¶
| # | Event Name | Org | Type | Status | Key Features |
|---|---|---|---|---|---|
| 1 | Sunset Music Festival | Alpha | Public | Open | Ticketed (3 tiers), 500 cap, waitlist, check-in window |
| 2 | Exclusive Wine Tasting & Pairing Dinner | Alpha | Public | Open | Ticketed (invite-only tier), 40 cap, questionnaire-gated, invitation requests |
| 3 | Hands-on Workshop: Building with AI APIs | Beta | Members-only | Open | Free RSVP, 30 cap, RSVP deadline |
| 4 | Community Potluck & Garden Party | Alpha | Public | Open | Free RSVP, potluck enabled, 80 cap, part of Seasonal Gatherings series |
| 5 | FutureStack: AI & Web3 Conference | Beta | Public | Open | Ticketed (4 tiers incl. member discount), 1000 cap, waitlist, check-in window |
| 6 | Weekend Wellness Retreat | Alpha | Public | Open | Ticketed (incl. PWYC tier), 25 cap |
| 7 | Tech Founders Networking Happy Hour | Beta | Members-only | Open | Free RSVP, 50 cap, RSVP deadline |
| 8 | Contemporary Art Exhibition Opening | Alpha | Public | Open | Free RSVP, London |
| 9 | Annual Charity Gala | Alpha | Public | Closed | Past event, ticketed, feedback questionnaire |
| 10 | Future Tech Summit (Planning Phase) | Beta | Private | Draft | Draft event, Tokyo |
| 11 | Tech Talk: Scaling Microservices | Beta | Members-only | Open | Free RSVP, part of Monthly Tech Talks series |
| 12 | Advanced Machine Learning Workshop | Beta | Public | Open | Ticketed (sold out), 20 cap, waitlist |
| 13 | Classical Music Evening | Alpha | Public | Open | Ticketed (reserved seating + offline payment), venue: Revel Concert Hall, check-in window |
Eligibility Test Events¶
These events are all in the Eligibility Test Organization and are designed to test every possible eligibility gate:
| Event Name | Scenario Tested |
|---|---|
| Accessible Public Event | No restrictions; any user can RSVP |
| Event Requires Questionnaire | QuestionnaireGate: must complete questionnaire first |
| Members-Only Event | MembershipGate: must be organization member |
| Private Event (Invitation Required) | InvitationGate: must have valid invitation |
| Event at Full Capacity | AvailabilityGate: event is full (10/10), waitlist available |
| RSVP Deadline Passed | RSVPDeadlineGate: RSVP period ended |
| Tickets Not Yet On Sale | TicketSalesGate: sales start in the future |
| Draft Event (Not Yet Open) | EventStatusGate: event not yet open |
| Past Event (Finished) | EventStatusGate: event already ended |
| Event Requires Ticket Purchase | Tickets on sale, must purchase |
| Sold Out Event | AvailabilityGate: all tickets sold (5/5), waitlist available |
Ticket Tiers¶
Sunset Music Festival¶
| Tier | Price | Quantity | Payment | Notes |
|---|---|---|---|---|
| Early Bird General Admission | $45.00 | 200 (180 sold) | Online | Discounted, limited time |
| General Admission | $65.00 | 250 (45 sold) | Online | Standard pricing |
| VIP Experience | $150.00 | 50 (12 sold) | Online | Priority entry, lounge, meet & greet |
Exclusive Wine Tasting & Pairing Dinner¶
| Tier | Price | Quantity | Payment | Notes |
|---|---|---|---|---|
| Exclusive Seating | $200.00 | 40 (8 sold) | Online | Invitation-only, private visibility |
FutureStack¶
| Tier | Price | Currency | Quantity | Payment | Notes |
|---|---|---|---|---|---|
| Early Bird - Full Access | 399.00 | EUR | 300 (295 sold) | Online | Almost sold out |
| Standard - Full Access | 599.00 | EUR | 500 (120 sold) | Online | 3-day access |
| Workshop Bundle | 899.00 | EUR | 100 (34 sold) | Online | Conference + 2 workshops |
| Member Discount | 299.00 | EUR | 100 (23 sold) | Online | Members-only, 50% off |
Weekend Wellness Retreat¶
| Tier | Price | Quantity | Payment | Notes |
|---|---|---|---|---|
| Shared Room | 250.00 EUR | 20 (14 sold) | Online | Standard |
| Community Support Rate | 150.00 EUR (PWYC: 100-250) | 5 (3 sold) | Online | Pay What You Can |
Annual Charity Gala¶
| Tier | Price | Quantity | Payment | Notes |
|---|---|---|---|---|
| Gala Ticket | $250.00 | 200 (200 sold) | Online | Sold out, past event |
Advanced Machine Learning Workshop¶
| Tier | Price | Quantity | Payment | Notes |
|---|---|---|---|---|
| Workshop Seat | 299.00 EUR | 20 (20 sold) | Online | Sold out |
Classical Music Evening¶
| Tier | Price | Quantity | Payment | Notes |
|---|---|---|---|---|
| Reserved Seat | 75.00 EUR | 100 (0 sold) | Online | Venue-linked, user chooses seat |
| Standing Room | 35.00 EUR | 50 (8 sold) | Offline | Bank transfer, manual payment instructions |
Platform Billing (SiteSettings)¶
The bootstrap configures platform-level billing on the SiteSettings singleton:
| Field | Value |
|---|---|
| Business name | Revel Technologies S.r.l. |
| Business address | Via della Conciliazione 44, 00193 Roma RM, Italy |
| VAT ID | IT12345678903 |
| VAT country | IT |
| VAT rate | 22.00% |
| Invoice BCC | [email protected] |
Organization Billing Info¶
Both main organizations are configured with VAT/billing data for testing EU cross-border invoicing:
Revel Events Collective (Alpha)¶
| Field | Value |
|---|---|
| VAT ID | ATU12345678 |
| Country | AT (Austria) |
| VAT rate | 20.00% |
| VAT ID validated | Yes (VIES) |
| Billing address | Musterstraße 42, AT-1010 Wien |
| Billing email | [email protected] |
Since the platform is in Italy (IT) and this org is in Austria (AT) with a validated VAT ID, platform fee invoices use reverse charge (B2B EU cross-border).
Tech Innovators Network (Beta)¶
| Field | Value |
|---|---|
| VAT ID | DE123456789 |
| Country | DE (Germany) |
| VAT rate | 19.00% |
| VAT ID validated | Yes (VIES) |
| Billing address | Friedrichstraße 123, 10117 Berlin, Germany |
| Billing email | [email protected] |
Also reverse charge (DE → IT cross-border with valid VAT ID).
Payments & Invoice¶
The bootstrap creates 4 succeeded payments for the Revel Events Collective from the previous month, then generates a platform fee invoice with PDF:
- Payments are spread across the previous month (one per bootstrap user)
- Each payment includes full VAT breakdowns (ticket sale VAT + platform fee VAT)
- An invoice (
RVL-{YEAR}-000001) is generated viagenerate_invoices_for_period() - A PDF is rendered via WeasyPrint and attached to the invoice record
This verifies the full billing pipeline end-to-end: VAT calculation → payment recording → invoice aggregation → PDF rendering.
Questionnaires (4 main + 1 test)¶
Main Bootstrap Questionnaires¶
| Questionnaire | Evaluation Mode | Linked To | Type |
|---|---|---|---|
| Code of Conduct Agreement | Automatic | FutureStack (event) | Admission |
| Wine Tasting Dinner Application | Manual | Wine Tasting (event) | Admission |
| Tech Innovators Network Membership Application | Hybrid (AI + human) | Tech Innovators Network (org-level) | Admission |
| Event Feedback | Manual | Annual Charity Gala (event) | Feedback |
Code of Conduct Agreement. Simple yes/no agreement. Fatal question (wrong answer = automatic fail). Max 3 attempts, requires 100% score.
Wine Tasting Dinner Application. Multi-question application with a conditional question: if the user selects "Advanced" wine knowledge, they get an additional free-text question about their specialization. Max 1 attempt, requires 60% score.
Tech Innovators Network Membership Application. Multi-section questionnaire with conditional questions and conditional sections. Selecting "AI/Machine Learning" reveals a follow-up multi-select about AI areas. Selecting "Blockchain/Web3" reveals an entire section about Web3 experience. Max 2 attempts (can retake after 30 days), requires 70% score.
Event Feedback. Simple post-event feedback with a yes/no question and optional free-text comments. Linked as FEEDBACK type to the past event.
Eligibility Test Questionnaire¶
| Questionnaire | Evaluation Mode | Linked To | Type |
|---|---|---|---|
| Eligibility Test Questionnaire | Automatic | Eligibility Test Org (org) + questionnaire-gated event | Admission |
Simple automatic questionnaire with a fatal yes/no question and a free-text question.
Potluck Items (12)¶
For the Community Potluck & Garden Party:
Host-suggested items (unassigned):
| Item | Type | Quantity |
|---|---|---|
| Main Course (pasta, casserole, etc) | Main Course | Serves 8-10 |
| Fresh Garden Salad | Side Dish | Large bowl |
| Dessert | Dessert | Serves 8-10 |
| Beverages (non-alcoholic) | Non-Alcoholic | 2-3 liters |
| Paper plates, cups, napkins | Supplies | For 80 people |
| Setup Help | Labor | 2-3 volunteers |
User-contributed items (assigned):
| Item | Type | Brought By |
|---|---|---|
| Homemade Lasagna | Main Course | George Attendee |
| Mediterranean Mezze Platter | Side Dish | Hannah Attendee |
| Fresh Fruit Salad | Side Dish | Karen Multi |
| Chocolate Brownies | Dessert | Ivan Attendee |
| Fresh Lemonade | Non-Alcoholic | Charlie Member |
| Acoustic Guitar Performance | Entertainment | Julia Attendee |
Invitations¶
| Event | User | Waives Purchase | Notes |
|---|---|---|---|
| Wine Tasting | [email protected] | No | Must still purchase ticket |
| Wine Tasting | [email protected] | Yes | Complimentary |
| Wine Tasting | [email protected] | No | Pending invitation (email not registered) |
| Private Event (test) | [email protected] | No | Test invitation gate |
RSVPs¶
| Event | Users (YES) | MAYBE | NO |
|---|---|---|---|
| Community Potluck | George, Hannah, Ivan, Julia, Karen, Charlie | Bob Staff | Leo Pending |
| AI APIs Workshop | Frank, Eve, Karen | (none) | (none) |
| Tech Talk: Scaling Microservices | Frank | (none) | (none) |
| Networking Happy Hour | Frank, Eve, Karen, George | (none) | (none) |
| Art Exhibition | Hannah, Ivan, Charlie | (none) | (none) |
Tickets¶
- Sunset Festival: 4 Early Bird (active), 1 VIP (active), 1 General (pending payment), 1 Early Bird (cancelled/refunded)
- Annual Charity Gala: 2 checked-in tickets (George, Charlie) with succeeded payments
- Wellness Retreat: 1 Shared Room (active, Hannah)
- FutureStack: 1 Member Discount (active, Frank)
- Classical Music Evening: 3 Standing Room (active), 5 Standing Room (pending payment)
Waitlist Entries¶
| Event | Users |
|---|---|
| Advanced ML Workshop | Ivan, Julia, Maria |
| Sunset Festival | Maria |
Follow Relationships¶
Organization members automatically follow their organization via a signal. Additional non-member follows:
| User | Follows | Notifications |
|---|---|---|
| Hannah Attendee | Revel Events Collective | New events + announcements (private) |
| Ivan Attendee | Tech Innovators Network | New events only (private) |
| Julia Attendee | Revel Events Collective | New events + announcements (public) |
| Julia Attendee | Tech Innovators Network | New events + announcements (private) |
Dietary Data¶
Every bootstrap user has dietary preferences and/or food restrictions configured:
| User | Dietary Preference | Food Restriction |
|---|---|---|
| Alice Owner | Vegetarian | Milk (intolerant, mild lactose) |
| Bob Staff | Vegan | (none) |
| Charlie Member | Gluten-Free | Gluten (allergy, celiac) |
| Diana Owner | (none) | Peanuts (severe allergy, anaphylaxis) |
| Eve Staff | Pescatarian | Shellfish (allergy) |
| Frank Member | Halal | (none) |
| George Attendee | (none) | Tree nuts (allergy) |
| Hannah Attendee | Dairy-Free | Eggs (allergy) |
| Ivan Attendee | (none) | Soy (intolerant) |
| Julia Attendee | Vegetarian | Sesame (allergy) |
| Karen Multi | Kosher | (none) |
| Leo Pending | (none) | Celery (allergy) |
| Maria Invited | Pescatarian, Gluten-Free | (none) |
Testing Tips¶
Exploring Different Permission Levels
Log in as different users to experience the platform from various perspectives:
- Owner (
[email protected]): Full organizational control of Revel Events Collective - Staff (
[email protected]): Event management without org admin - Member (
[email protected]): Standard attendee experience - Attendee (
[email protected]): Regular user, member of Beta only - Multi-org (
[email protected]): Member of both organizations - Non-member (
[email protected]): Not a member of any org - Eligibility tester (
[email protected]): No org membership, test all gates
Suggested Test Scenarios¶
| Scenario | How to Test |
|---|---|
| Ticket purchase flow | Log in as any user, buy a ticket for FutureStack |
| PWYC ticket | Log in as any user, purchase the Community Support Rate tier for Weekend Wellness Retreat |
| RSVP with potluck | Log in as a member, RSVP to Community Potluck & Garden Party |
| Waitlist behavior | Try to get a ticket for Advanced Machine Learning Workshop (sold out) |
| Past event data | View Annual Charity Gala for historical event information |
| Event feedback | Log in as [email protected] (checked-in at Annual Charity Gala) and submit feedback |
| Questionnaire flow (simple) | Attend FutureStack: complete the Code of Conduct Agreement |
| Questionnaire flow (complex) | Apply to Wine Tasting: conditional questions based on wine experience level |
| Membership application | Apply to join Tech Innovators Network via the membership questionnaire |
| Members-only access | Try accessing Hands-on Workshop: Building with AI APIs as a non-member |
| Invitation-only access | Try accessing Exclusive Wine Tasting & Pairing Dinner without an invitation |
| Offline payment | Purchase a Standing Room ticket for Classical Music Evening (bank transfer) |
| Reserved seating | Purchase a Reserved Seat ticket for Classical Music Evening (seat selection) |
| Eligibility gates | Log in as [email protected] and visit each event in the Eligibility Test Organization |
| Event series | Browse Monthly Tech Talks or Seasonal Community Gatherings series |
| Billing info | Log in as [email protected], open Revel Events Collective admin, view billing settings |
| VAT ID validation | Set a new VAT ID on an organization (triggers live VIES check) |
| Invoice list & PDF | View invoices for Revel Events Collective — the bootstrap generates one with a PDF |