Skip to content

Hannah-goodridge/eventseats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

56 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

EventSeats - Open Source Event Booking System

πŸŽͺ A free, open-source seat booking system designed for small venues, theatre groups, and community events.

Built for organizations with small budgets but big dreams. Professional booking experience without enterprise costs.

License: MIT Next.js TypeScript Tailwind CSS

🌐 Live Demo: eventseats.hannahgoodridge.dev πŸ“– Documentation: GitHub Docs πŸ’¬ Built by: Hannah Goodridge


πŸš€ Quick Start

Option 1: One-Click Deploy (Recommended for Testing)

Deploy with Vercel

Option 2: Local Development

# Clone the repository
git clone https://github.com/Hannah-goodridge/eventseats.git
 cd eventseats

# Install dependencies
npm install

# Copy environment variables
cp env.example .env.local

# Set up the database (see Database Setup below)

# Start development server
npm run dev

Visit http://localhost:3000 to see your booking system!


✨ Features

  • 🎫 Interactive Seat Selection: Visual seat map with real-time availability
  • 🎭 Multiple Ticket Types: Adult, child, and concession pricing
  • πŸ“± Mobile Responsive: Works perfectly on all devices
  • πŸ”’ Secure: Built with security best practices
  • 🌐 Embeddable: Simple iframe embedding for any website
  • πŸ“Š Admin Dashboard: Manage shows, performances, and bookings
  • πŸŽͺ Multi-Venue Support: Perfect for theatre groups and community centres
  • πŸ”“ Open Source: MIT licensed, self-host for free


✨ Roadmap

  • πŸ“§ Email Notifications: Automated booking confirmations
  • 🏷️ QR Code Tickets: Digital tickets with QR codes
  • πŸ’³ Payment Processing: Stripe integration (in progress)
  • πŸͺ‘ Custom Seating Charts: Visual seat map editor

πŸ—οΈ Full Setup Guide

Prerequisites

Step 1: Clone and Install

 git clone https://github.com/Hannah-goodridge/eventseats.git
 cd eventseats
npm install

Step 2: Environment Setup

Copy the example environment file:

cp env.example .env.local

Edit .env.local with your values:

# Database (Supabase recommended)
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key

# NextAuth.js
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_secret_key

# Stripe (optional for payments - work in progress)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PUBLISHABLE_KEY=pk_test_...

Step 3: Database Setup

Option A: Supabase (Recommended)

  1. Create account at supabase.com
  2. Create new project
  3. Open Supabase SQL Editor and run the contents of database-setup.sql
  4. Then run docs/setup-demo-user.sql to create a demo admin user

Option B: Local PostgreSQL

# Install PostgreSQL locally
# Create database
createdb eventseats

# Apply schema and demo data
psql eventseats -f database-setup.sql
psql eventseats -f docs/setup-demo-user.sql

Step 4: Run the Application

# Development mode
npm run dev

# Production build
npm run build
npm start

Step 5: Initial Setup

  1. Visit http://localhost:3000/admin/login
  2. Create your first admin account
  3. Add your venue and seating layout
  4. Create your first show
  5. Start selling tickets! πŸŽ‰

πŸ“– Documentation

Getting Started

Deployment

Examples & Setup

For Developers

Payments


πŸš€ Deployment Options

Hosted Services

Service Cost Difficulty Best For
Vercel Free tier available Easy Quick testing
Railway $5/month Easy Production ready
DigitalOcean App Platform $5/month Medium Scalable apps
AWS/GCP Variable Hard Enterprise

Self-Hosted

  • VPS (DigitalOcean, Linode, Vultr)
  • Docker deployment included
  • PM2 process management
  • Nginx reverse proxy setup

See our Deployment Guide for detailed instructions.


🀝 Contributing

We love contributions! EventSeats is built by the community, for the community.

Quick Contributing Guide

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Test thoroughly: npm test
  5. Commit with clear message: git commit -m 'Add amazing feature'
  6. Push to branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Development Setup

# Clone your fork
 git clone https://github.com/YOUR_USERNAME/eventseats.git
 cd eventseats

# Add upstream remote
git remote add upstream https://github.com/Hannah-goodridge/eventseats.git

# Install dependencies
npm install

# Run tests
npm test

# Start development
npm run dev

What We Need Help With

  • 🌍 Translations - Make EventSeats available in more languages
  • 🎨 Themes - Create beautiful themes for different types of events
  • πŸ”Œ Integrations - Payment gateways, email services, CRM systems
  • πŸ“± Mobile App - React Native companion app
  • πŸ§ͺ Testing - More comprehensive test coverage
  • πŸ“š Documentation - Improve guides and tutorials

See CONTRIBUTING.md for detailed guidelines.


πŸ’¬ Community & Support

Get Help

Show Your Support

  • ⭐ Star this repository if it helps you!
  • 🐦 Share on social media with #EventSeats
  • πŸ’ Sponsor the project

πŸ“œ License

EventSeats is MIT licensed. You can:

  • βœ… Use commercially
  • βœ… Modify freely
  • βœ… Distribute
  • βœ… Sub-license
  • βœ… Use privately

See LICENSE for full details.


πŸ™ Acknowledgements

Built with amazing open-source tools:

Special thanks to all contributors who make EventSeats better! 🎭


About

πŸŽͺ EventSeats - Open source event & ticket booking system for small venues, theatre groups and event goers.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors

Languages