ORA Platform Development for Event Management by Vincent PasiliORA Platform Development for Event Management by Vincent Pasili
Built with Replit

ORA Platform Development for Event Management

Vincent Pasili

Vincent Pasili

Verified

The Problem

Event organizers run their businesses on duct tape. A single event might touch Eventbrite for ticketing, Canva for promo material, Stripe for payouts, spreadsheets for check-ins, and group chats for door staff. Every hand-off between tools is a leak in revenue, time, or attendee experience.
On top of that, every event looks the same. A DJ night and a yoga retreat get identical page templates. Promo videos require hiring editors or learning complex software. Check-in crews need full platform accounts just to scan a QR code. And revenue sits locked in third-party systems with opaque fee structures.
ORA was built to replace all of it with one platform.

The Solution

ORA is a full-stack web application that covers the entire event lifecycle — from creation through check-in and organizer payout — across six specialized portals serving six distinct user roles.
The core idea: instead of stitching together disconnected tools, give organizers a single unified workflow where creating an event, selling tickets, generating promo videos, managing door staff, and getting paid all happen in one place. And instead of forcing every event into the same generic template, deliver category-specific experiences where a Music & DJ event feels like Dice, a Wellness event feels like Mindbody, and a Food & Drink event feels like OpenTable.

Architecture

ORA runs a TypeScript monorepo with shared types across client and server. Drizzle ORM serves as the single source of truth — schema definitions flow through Zod validation, API route handlers, and React components with zero type drift.
The database uses a wide events table with 40+ columns and JSON fields instead of complex joins. This lets each event category carry its own data shape (a Music event stores Spotify artist IDs; a Food event stores menu tabs) while sharing a unified query layer. An abstract IStorage interface keeps route handlers thin and business logic testable.
Authentication is split into three independent systems — consumer, organizer, and admin — with separate Passport.js sessions and PostgreSQL-backed session stores. This prevents privilege escalation between portals. Admin impersonation uses signed, single-use JWT tokens.

Frontend

React 18 with TypeScript, Vite, TanStack Query v5 for server state, shadcn/ui with Radix primitives, TailwindCSS, Framer Motion for animations, React Hook Form with Zod validation, Recharts for analytics, Wouter for routing, and Embla Carousel for touch-optimized event cards.

Backend

Node.js with Express, Passport.js session auth, Stripe (Payment Intents + Connect Express + webhooks), Twilio and Vonage for SMS, Brevo for transactional email, Spotify Web API for artist search and metadata, Sharp for image optimization, and Multer for file uploads.

Database

PostgreSQL on Neon with serverless connection pooling, Drizzle ORM, 24 tables with UUID primary keys, JSON columns, and compound indexes.

Six Portals

ORA serves six distinct user roles through purpose-built interfaces, each with its own navigation, permissions, and workflows.
Consumer — Category-themed event discovery, multi-tier ticketing (General, VIP, Early Bird), promo codes, saves, QR-coded tickets, and purchase history. A floating CTA bar with urgency badges optimizes mobile conversion.
Organizer — Three-step onboarding (Create Event → Verify Phone → Create Organization) with draft saves so organizers see value before signing up. Category-specific event builders, recurring event generation, crew management via shareable invite links, revenue dashboard, and payout requests.
Admin — Organizer approval workflows, impersonation via signed JWTs, configurable platform fees per event, held-balance release overrides, full audit logging, and real-time organizer chat.
Marketing — Dedicated portal with API key-based auth, video upload and approval workflows, AI video review with script and prompt visibility for quality control, and campaign tracking.
Partnership Manager — Internal dashboard for assigned organizer management, event oversight, and relationship tracking.
Check-In Crew — Token-based access via shareable invite links with no platform accounts needed, QR scanning, configurable permissions, and per-scan attribution tracking.

Key Feature: AI Video Pipeline

The standout feature is a multi-model AI pipeline that turns raw event clips into polished promotional videos. Organizers upload clips and ORA handles the rest:
Clip Upload & ThumbnailsSharp generates optimized thumbnails from uploaded footage
Content AnalysisGemini 2.5 Flash analyzes the visual content, extracting scene context and key moments
Script GenerationGPT-4o writes a promotional script from the analysis
Video CreationSora 2 Pro renders the final video with a selected voiceover
Every stage has status tracking. Full prompts and scripts are preserved for every generated video, enabling the marketing team to review, approve, or trigger regeneration. The marketing portal provides script and prompt visibility for quality control.

Key Feature: End-to-End Payment Infrastructure

ORA handles the full money lifecycle using Stripe, from ticket purchase to organizer bank account:
Purchase — Attendee pays via Stripe Payment Intent
Fulfillment — Webhook creates ticket record, generates QR code, sends SMS confirmation
Hold — Revenue held in platform balance until event date passes
Release — Balance released post-event (with admin override for early release)
Payout — Organizer receives funds via Stripe Connect Express
Organizers onboard through Stripe's hosted flow for identity verification and bank details. All monetary values are stored as integers (cents) to avoid floating-point errors. Platform fees are configurable per event by admins.

Key Feature: Category-Specific Theming

Rather than forcing every event into the same template, ORA delivers four purpose-built mobile experiences from shared data models:
Music & DJ — Dark theme with Spotify playback integration, artist metadata enrichment, urgency badges, and VIP table reservations. Inspired by Dice.
Wellness — Calm color palette with spots-remaining counters and attendance capacity toggles. Inspired by Mindbody.
Food & Drink — Tabbed menu previews with venue photography and reservation-forward presentation. Inspired by OpenTable.
Business & Networking — Professional, information-dense layout optimized for detail-heavy events.
Each category carries its own color scheme, component variants, and interaction patterns while sharing the same underlying data model and creation flow.

Technology Stack

DatabasePostgreSQL (Neon), Drizzle ORM, 24 tables, UUID PKs, JSON columns
DeploymentReplit, esbuild, Vite dev proxy

Design Decisions

Mobile-first dark theme — Event-goers browse in low-light environments (bars, venues, late at night). Every layout was designed for phones first.
Full-screen flyer cards over thumbnails — Large flyer images with gradient overlays replace compact event thumbnails, inspired by Partiful's flyer-driven approach.
Progressive onboarding — Organizers can create a draft event and see it saved to their browser before ever creating an account. They see value before committing.
Wide table over normalized joins — A single events table with JSON columns avoids complex join queries while supporting four category-specific data shapes. Trade-off: larger rows, but simpler queries and easier category extension.
Three independent auth systems — Separate sessions for consumers, organizers, and admins prevent privilege escalation and simplify permission logic per portal.

What I Shipped & What I Learned

Full-stack TypeScript monorepo — Shared types from Drizzle schemas flow through Zod validation, Express routes, and React components. A schema change propagates type errors everywhere it matters.
Multi-portal SaaS architecture — Six portals with independent auth, role-based access, and isolated sessions taught me how to think about multi-tenant design at the application layer.
AI pipeline orchestration — Chaining three AI models in sequence with status tracking, error handling, and full prompt preservation at every stage. The key lesson: treat AI outputs as data to be reviewed, not fire-and-forget.
End-to-end payment flow — Building the full Stripe lifecycle (Payment Intents → webhook fulfillment → held balances → Connect Express payouts) gave me deep understanding of payment infrastructure, including edge cases like failed webhooks and held-balance timing.
Category-specific UI from shared models — Engineering four distinct mobile experiences from one data layer required thinking carefully about where to branch (UI components, color tokens, interaction patterns) and where to share (data fetching, validation, API routes).
Token-based delegation — Building crew access without requiring accounts taught me about the trade-offs of stateless auth tokens vs. session-based access, and how to handle attribution without identity.
Like this project

Posted Feb 24, 2026

Designed and built a unified event platform with 6 user portals, a 3-model AI video pipeline, Stripe Connect payouts, and category-specific mobile experiences.

Likes

1

Views

15

Timeline

Jan 8, 2026 - Feb 13, 2026

Clients

Ora