A modern, full-stack event registration and management platform inspired by state-of-the-art SaaS designs. Built with React, Vite, Tailwind CSS, Supabase, and Inngest.
- Sleek UI/UX: Luminous Minimalist design with glassmorphism and modern typography (Outfit/Inter).
- Authentication: Split-screen authentication flows for login and signup.
- Dashboard: Comprehensive dashboard with real-time analytics.
- Event Management: Create and manage online or in-person events.
- Automated Emails: Background jobs driven by Inngest to send 24-hr reminders and attendance confirmation requests.
- Database: Supabase Postgres with robust Row Level Security (RLS) policies.
- Frontend: React 18, Vite, Tailwind CSS, shadcn/ui
- Backend (Email Triggers): Node.js, Express, Inngest
- Database & Auth: Supabase
- Email Delivery: Brevo
To run this project locally, you will need concurrently running instances of the frontend, backend, Inngest Dev Server, and a Supabase project.
- Node.js (v18+)
- A Supabase Project (for Postgres Database and Authentication)
- A Brevo Account (for sending emails)
- An Inngest Account (for background jobs)
Frontend (.env)
Create a .env file in the root directory:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_BACKEND_URL=http://localhost:3001Backend (backend/.env)
Create a .env file in the backend/ directory:
PORT=3001
FRONTEND_URL=http://localhost:5173
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
BREVO_API_KEY=your_brevo_api_keyWe have provided the initialization SQL script inside the sql/ directory.
- Open your Supabase Dashboard.
- Go to the SQL Editor.
- Paste the contents of
sql/database_setup.sqland click **Run`.
- Install Frontend Dependencies:
npm install- Install Backend Dependencies:
cd backend
npm install- Run the application: You will need three terminal windows:
Terminal 1: Frontend
npm run devTerminal 2: Backend
cd backend
npm run devTerminal 3: Inngest Dev Server
npx inngest-cli@latest devThe app will be available at http://localhost:5173.