A sleek full-stack web application to browse and book tickets for upcoming plays β complete with secure authentication and Stripe-powered payments.
- React + TypeScript
- TailwindCSS for modern, responsive styling
- @heroui/react for polished UI components
- Vite for lightning-fast development
- Node.js + Express.js for RESTful APIs
- PostgreSQL (via Docker) for persistent bookings data
- Firebase Authentication (Email + Google login)
- Stripe Payment Element integration for secure, seamless checkout
- π Browse upcoming plays with rich metadata (title, rating, date, location)
- π§Ύ Dynamic ticket pricing and availability
- π Secure user authentication with Firebase
- π³ Stripe-powered ticket checkout with custom session handling
- π§ Role-based navbar that adapts to login state
- π‘ Clean and responsive UI with modals, dropdowns, and search
git clone https://github.com/yourusername/movie-booking-app.git
cd movie-booking-appIn both the root .env and /server/.env files, add the stripe secret and public keys :
- Go to the Stripe Dashboard
- Create a new Product and Price
- Replace the placeholder
price_idin the project code with your real Stripe price ID
Make sure Docker is running, then start the database:
docker-compose up -dThen run the DB setup script:
cd server
node setup-db.jsThis initializes the database with the required tables.
# Backend
cd server
npm install
# Frontend
cd ../frontend
npm installStart the backend server:
cd server
npm run devIn a separate terminal, start the frontend:
cd frontend
npm run devThe app will be available at http://localhost:5173.
Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.
