Eventra — Intelligent Event Management Platform
Eventra is an enterprise-grade event management platform that automates the full lifecycle of complex events, turning passive event hosting into a data-driven, community-centric experience. It is built on Next.js 15 with PostgreSQL and pgvector, Drizzle ORM, Clerk authentication and Google Gemini.
The Problem
Running a large event means stitching together a registration tool, a payment processor, a mailing list, a check-in app and a spreadsheet of attendees — none of which talk to each other. Eventra collapses that toolchain into one platform where the data collected at registration actually informs what happens during and after the event.
Architecture
Eventra follows a feature-first modular architecture. Four integrated engines sit behind a central Engine Router, with Server Components and Server Actions carrying all business logic rather than a separate API tier.
| Engine | Responsibility |
|---|---|
| Intelligence | Gemini-backed content generation, predictions and moderation |
| Recommendation | pgvector semantic matching between users and events |
| Communication | Email, SMS and in-app chat dispatch |
| Lifecycle | Events, ticketing, orders and payments |
Authentication and authorization
Clerk handles authentication behind a layered authorization system. Middleware intercepts every non-public route and enforces sign-in, with admin routes receiving an additional role check before the request proceeds. Server Actions independently re-validate through helpers such as requireAuth, requireEventPermission and validateEventOwnership, so authorization is never left to the routing layer alone.
- Eight roles from attendee through organizer to admin, each with a distinct permission set
- Per-event authorization context resolving role, permissions and organizer status
- Granular staff permission validation for check-in and support workflows
- Signature-verified webhooks for Clerk and payment events
Event lifecycle
Events move through an explicit state machine — draft, published, active, completed, archived — with registration and check-in modelled as nested states. A published event whose capacity fills moves into an active waitlist and back again as spots free up.
- Multi-step creation wizard with AI-assisted scheduling
- RRule-based recurring events and sub-event hierarchies
- Campus location selector with predefined venues
- Co-organizer support and per-event custom branding
- Public and private visibility controls
AI intelligence engine
Google Gemini 1.5 Flash, orchestrated through Genkit flows, drives automation across planning, content and analytics rather than being bolted on as a chat widget.
| Capability | What it does |
|---|---|
| Smart event planning | Generates descriptions, agendas and marketing copy |
| Predictive analytics | Estimates turnout from registration trends |
| Task generation | Produces structured Kanban tasks with subtasks and priorities |
| Event chatbot | Event-scoped Q&A with persisted conversation history |
| Report generation | Structured six-section post-event reports |
| Content moderation | Real-time sentiment analysis and filtering |
Vector recommendation engine
User and event embeddings are generated through the Gemini embedding API and stored as 768-dimensional vectors in pgvector. Cosine similarity search then matches attendees to events, and attendees to each other, on meaning rather than keyword overlap.
- User interest embeddings derived from bio, skills and preferences
- Event embeddings derived from title, description and category
- Connection matchmaking based on stated professional goals
- Recommendation caching with a TTL to keep search off the request path
Ticketing, payments and communication
The lifecycle engine handles multi-tier pricing, QR-based check-in and waitlists, routing paid registrations through Dodo Payments while free events skip straight to order creation. The communication hub then fans out across channels with delivery tracking at every step.
- Seven transactional HTML email templates delivered through Resend
- Twilio SMS for time-critical notifications
- Bulk email with sent, delivered, opened, clicked, bounced and failed tracking
- Event-scoped chat rooms supporting direct and group messaging
- QR ticket rendering and bulk PDF certificate export
Data model
Thirty-four PostgreSQL tables managed by Drizzle ORM, with pgvector columns for embeddings. Users anchor events, tickets, orders, posts, chat messages, badges and feedback; events in turn own ticket tiers, waitlists, staff, sponsors, media, issues, Kanban tasks, reports and an optional campus map with its own nodes.
Next Project
Tycoon 2FA — AiTM Phishing Detection