A full-stack web application inspired by BookMyShow, built as part of a hiring assignment. This project demonstrates end-to-end development with backend APIs, frontend UI/UX, database design, and deployment.
🚀 Deployed Project: Live Demo
- User Management: Register/login users and associate them with bookings.
- Cinemas & Screens: List available cinemas and their screens.
- Movies: Display details and listings.
- Shows: Manage showtimes (e.g., Movie X at 3PM on Screen 2).
- Bookings: Users can select up to 6 seats per booking, confirm, and view their booking history.
- Seat Layout: Fixed layout (10x10 grid), showing booked vs. available seats.
- ✅ Admin Panel: Add/edit/delete cinemas, screens, and movies.
- ✅ Booking Confirmation: Users see a confirmation screen after booking.
- ✅ Booking History: Users can view their past bookings.
- Frontend: React (Vite), Redux, Axios
- Backend: Node.js, Express.js, MongoDB
- Authentication: JWT (JSON Web Token)
- Deployment: Vercel (Frontend + Backend)
- Testing: Postman
- Node.js (v16+ recommended)
- MongoDB (local or Atlas)
- Clone the repository:
git clone https://github.com/sharmachirag760/bookMyShow.git cd bookMyShow Install dependencies for both frontend & backend:
env
Copy code
MONGO_URL="Mongo_URL"
JWT_SECRET=mysecret
PORT=8082
Run the backend:
cd server
npm i
npm start
Run the frontend:
cd client
npm i
npm start
It will Open the app in browser
🗂️ Database Schema
Users
{
"name": "string",
"email": "string",
"password": "string",
"bookings": [BookingId]
}
Cinemas
{
"name": "string",
"location": "string",
"screens": [ScreenId]
}
Screens
{
"cinemaId": "ObjectId",
"name": "string",
"seats": "10x10 layout"
}
Movies
{
"title": "string",
"description": "string",
"language": "string",
"duration": "number",
"genre": "string",
"poster": "string",
"releaseDate": "date"
}
Shows
{
"movieId": "ObjectId",
"screenId": "ObjectId",
"time": "datetime",
"bookedSeats": []
}
Bookings
{
"userId": "ObjectId",
"showId": "ObjectId",
"seats": [],
"status": "confirmed/cancelled"
}
📌 Evaluation Criteria Alignment Functionality: Covers all required flows (users, movies, cinemas, shows, bookings).
Code Quality: Clean, modular, and maintainable structure.
Backend Design: RESTful APIs with JWT authentication.
Frontend: React with Redux for state management, Ant Design for UI.
Deployment: Hosted on Vercel for live demo.
📜 License This project is built for educational and hiring assignment purposes.