SeatSnap - Full Stack Ticketing Platform

A complete event management and ticketing platform with integrated payments, and role-based admin controls.

SeatSnap - Full Stack Ticketing Platform

Ready to explore the codebase?

Dive into the source code to see how it's built, or check out the live demo to experience the performance firsthand.

Role
Full-Stack Developer
Timeline
6 weeks

Tech Stack

Next.js 15 (App Router)TypeScriptFirebase (Firestore + Auth + Admin SDK)PhonePe Payment GatewayTailwind CSSShadcn UIQRCode.jsNodemailer
01Introduction

Overview

SeatSnap is a production-ready event ticketing and management platform featuring a complete user booking flow, secure payment integration with PhonePe, QR-code based ticket validation, and a comprehensive admin dashboard. Built with Next.js App Router and Firebase, it handles events, movies, and plays with real-time data management and email confirmations.

Problem
Event organizers need an all-in-one platform for ticketing, payments, and access control
Solution
Full-stack platform with payment gateway, QR tickets, and role-based admin panel
Outcome
Secure booking system with automated confirmations and seamless ticket validation
02Challenge

Problem Statement

Traditional event ticketing systems face several challenges:

Complex payment gateway integration with webhook handling.
Secure ticket generation and validation to prevent fraud.
Managing multiple event types (events, movies, plays) in one platform.
Role-based access control for admin operations.

This project delivers a complete solution covering the entire ticketing lifecycle from booking to entry validation.

03Objectives

Goals & Requirements

Primary Goals

1

Integrate PhonePe payment gateway with secure webhook processing.

2

Build admin CRUD interfaces for events, movies, and plays.

3

Implement Firebase-based authentication with custom role claims.

Tech Requirements

Secure payment processing with SHA-256 verification

Server-side role validation using Firebase Admin SDK

Responsive design for mobile and desktop booking

04Highlights

Key Features

01

PhonePe Payment Integration

Complete payment flow with API initiation, redirect handling, and webhook verification. Supports secure transaction processing with SHA-256 signatures and handles payment success/failure callbacks.

02

Role-Based Admin Dashboard

Protected admin routes using Firebase custom claims. Admins can create, edit, and manage events, movies, and plays. Includes booking management and message viewing interfaces.

03

Multi-Event Type Management

Supports three event categories (events, movies, plays) with dedicated pages, booking flows, and admin tables. Each type has customizable fields and pricing structures.

05Structure

Architecture

The application uses Next.js App Router for file-based routing with server and client components. Firebase handles authentication, database, and admin operations, while serverless API routes manage payment processing and webhooks.

Frontend

Next.js 15 App Router with TypeScript
React Context API for auth state management
Shadcn UI components with Tailwind CSS
Dynamic routing for event detail pages

Backend

Firebase Firestore for data persistence
Firebase Admin SDK for role management
Serverless API routes for PhonePe integration
Nodemailer for email confirmations
06Speed

Performance Optimizations

Tip 01

Server-side rendering for SEO and initial load performance

Tip 02

Firebase security rules for data protection

Tip 03

Optimized image assets with Next.js Image component

Tip 04

Code splitting with dynamic imports

08Takeaways

What I Learned

Insight 01

Payment gateway integration requires careful webhook verification and idempotency handling.

Insight 02

Firebase custom claims are powerful for role-based access but need proper token refresh flows.

Insight 03

QR code generation and scanning can be efficiently handled client-side with proper security checks.

Insight 04

TypeScript strict mode catches many edge cases in payment and booking flows.

Ready to explore the codebase?

Dive into the source code to see how it's built, or check out the live demo to experience the performance firsthand.