Skip to content

Hannah-goodridge/eventseats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

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

Repository files navigation

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

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors

Languages