Welcome to EventSeats! This guide will help you set up your own event booking system in just a few minutes.
Before you start, make sure you have:
- Node.js 18+ (Download here)
- Git (Download here)
- Supabase account (Sign up free)
# Clone the repository
git clone https://github.com/Hannah-goodridge/eventseats.git
cd eventseats
# Run the setup script
npm run setupThe setup script will:
- ✅ Check your Node.js version
- ✅ Install dependencies
- ✅ Create your
.env.localfile
EventSeats uses Supabase (a PostgreSQL database) for storing all your data.
- Go to supabase.com and sign up
- Click "New Project"
- Choose a name (e.g., "my-eventseats")
- Set a strong database password
- Wait for the project to be ready (2-3 minutes)
- In your Supabase project dashboard, go to Settings → API
- Copy these values:
- Project URL (starts with
https://...supabase.co) - anon public key (starts with
eyJ...) - service_role key (starts with
eyJ...)
- Project URL (starts with
Edit the .env.local file that was created:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_project_url_here
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key_here
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key_here
# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_random_secret_here
# Optional: Stripe for payments (hosted Checkout)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PUBLISHABLE_KEY=pk_test_...
# Required for webhooks (local: from Stripe CLI; prod: from Dashboard)
STRIPE_WEBHOOK_SECRET=whsec_...💡 Tip: For NEXTAUTH_SECRET, generate a random string:
openssl rand -base64 32You have two options:
- In Supabase, go to SQL Editor
- Create a new query
- Copy and paste the contents of
database-setup.sqlfrom this repository - Click "Run"
- Then copy and paste the contents of
docs/setup-demo-user.sql - Click "Run" again
- If you have an existing database, you can re-run the SQL to ensure the latest schema.
npm run setup-demonpm run devVisit http://localhost:3000 to see your EventSeats system!
Use these demo credentials to sign in:
- Email:
admin@democentre.org - Password:
demo123
Go to http://localhost:3000/admin/login to access the admin panel.
-
Update Organization Details
- Go to Admin → Settings
- Update your organization name, contact details
- Set your currency and timezone
-
Set Up Your Seating
- The demo comes with a simple 5×10 seating layout
- You can modify this or create new layouts
- Add accessibility information for seats
-
Add Show Images
- Upload your show images to an image hosting service (Imgur, Cloudinary, etc.)
- Copy the image URL and paste it in the "Image URL" field
- Leave empty to use a placeholder image
- Recommended image size: 400x300 pixels or larger
-
Create Your First Show
- Go to Admin → Shows
- Click "Add Show"
- Set title, description, prices
- Add an image URL (optional - leave empty for placeholder)
- Add performance dates and times
-
Start Taking Bookings!
- Share the booking URL with customers
- Embed the booking form on your website
- Monitor bookings in the admin dashboard
- Branding: Update colors, logos, and text. You can also provide your own stylesheet via
NEXT_PUBLIC_BRAND_STYLESHEET=/brand.cssto override CSS variables. - Payment Processing: Set up Stripe for credit card payments. See
docs/payments/stripe.md. - Email Notifications: Configure email settings for confirmations
- Custom Domain: Deploy to your own domain
When you're ready to go live, you can deploy to:
- Vercel (recommended) - One-click deployment
- Netlify - Easy static deployment
- Railway - Simple full-stack hosting
- DigitalOcean App Platform - $5/month
- AWS/Google Cloud - Variable pricing
- VPS - Self-managed server
See our Deployment Guide for detailed instructions.
"Module not found" errors:
rm -rf node_modules package-lock.json
npm installDatabase connection errors:
- Double-check your Supabase credentials in
.env.local - Make sure your Supabase project is active
- Check that you've run the database setup SQL
Can't sign in:
- Make sure you've run the demo user setup
- Try the password reset SQL:
docs/fix-demo-password.sql
EventSeats is open source! We welcome:
- 🐛 Bug reports
- 💡 Feature suggestions
- 🔧 Code contributions
- 📚 Documentation improvements
See our Contributing Guide for details.
You now have your own professional event booking system running!
What you can do:
- ✅ Take online bookings 24/7
- ✅ Manage events and performances
- ✅ Track sales and attendance
- ✅ Accept payments securely (Stripe integration in progress)
- ✅ Generate tickets with QR codes
- ✅ Embed booking on your website
Share your success!
- ⭐ Star this project on GitHub
- 🐦 Share on social media with #EventSeats
- 💬 Join our community discussions
Welcome to the EventSeats family! 🎭✨