GoCine is a feature-rich, production-deployed movie ticket booking platform built with the MERN Stack. It delivers a seamless end-to-end experience โ from browsing movies and selecting showtimes to secure payment processing and downloadable e-tickets โ with a dedicated admin dashboard for complete content management.
๐ Live Demo ยท ๐ Documentation ยท ๐ Report Bug ยท โจ Request Feature
- Live Deployment
- Why This Project Stands Out
- Tech Stack
- Architecture Overview
- Features
- Screenshots
- Getting Started
- Environment Setup
- API Overview
- Deployment
- Project Structure
- Future Improvements
- License
- Author
GoCine is fully deployed and running in production.
| Service | Platform | URL | Status |
|---|---|---|---|
| Frontend | Vercel | gocine-app-eldho.vercel.app | โ Live |
| Backend | Render | gocine-api.onrender.com | โ Live |
| Database | MongoDB Atlas | Cloud-hosted cluster | โ Active |
Note: The backend is hosted on Render's free tier and may take ~30 seconds to cold-start on the first request.
| Aspect | Details |
|---|---|
| ๐๏ธ Real-World Architecture | Production-grade MERN stack with clean separation of concerns, RESTful API design, and scalable folder structure |
| ๐ Authentication System | Complete user registration and login flow with role-based access control (User / Admin) |
| ๐๏ธ Booking Workflow | End-to-end ticket booking โ browse โ select โ book โ pay โ receive e-ticket with QR code |
| ๐ณ Payment Integration | Secure payment processing with Razorpay payment gateway for real transaction handling |
| ๐จโ๐ผ Admin Dashboard | Full-featured admin panel for managing movies, showtimes, bookings, and platform analytics |
| ๐ฑ Responsive UI | Mobile-first responsive design built with Tailwind CSS and Material UI |
| ๐ Production Deployment | Fully deployed on Vercel (frontend) and Render (backend) with MongoDB Atlas |
| ๐ E-Ticket Generation | Downloadable PDF tickets with QR codes using html2pdf.js and qrcode.react |
Frontend
| Technology | Purpose |
|---|---|
| React 19 | UI library with component-based architecture |
| Vite 6.3 | Lightning-fast build tool and dev server |
| Tailwind CSS 4.1 | Utility-first CSS framework |
| Material UI 7.1 | Pre-built UI component library |
| React Router DOM 7.6 | Client-side routing and navigation |
| Axios | HTTP client for API communication |
| Razorpay | Payment gateway integration |
| html2pdf.js | PDF generation for e-tickets |
| qrcode.react | QR code generation for bookings |
| React Icons | Icon library |
| jsPDF | PDF document generation |
Backend
| Technology | Purpose |
|---|---|
| Node.js | Server-side JavaScript runtime |
| Express 5.1 | Web application framework |
| MongoDB + Mongoose 8.16 | NoSQL database with ODM |
| Razorpay SDK | Payment processing (server-side) |
| Multer 2.0 | File upload middleware |
| CORS | Cross-origin resource sharing |
| dotenv | Environment variable management |
DevOps & Deployment
| Technology | Purpose |
|---|---|
| Vercel | Frontend hosting and CI/CD |
| Render | Backend hosting and deployment |
| MongoDB Atlas | Cloud-hosted database |
| GitHub Actions | Automated CI/CD pipeline |
| ESLint | Code linting and quality |
| Prettier | Code formatting |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLIENT (Vercel) โ
โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ React 19 โ โ Tailwind CSS โ โ Material UI Components โ โ
โ โ + Vite โ โ + MUI โ โ + React Router DOM โ โ
โ โโโโโโโฌโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โ Axios HTTP Requests โ
โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ REST API (JSON)
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SERVER (Render) โ
โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Express 5 โ โ Middleware โ โ Route Handlers โ โ
โ โ Server โโโโ (CORS,JSON) โโโโ AuthโRoomsโBookingsโPay โ โ
โ โโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Razorpay SDK โ โ โ
โ โ โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Mongoose ODM โ โ
โ โโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ MongoDB Atlas โ
โ (Cloud Database) โ
โโโโโโโโโโโโโโโโโโโโโโโโ
- Browse Movies โ Explore a curated catalog of movies with rich details, ratings, and imagery
- Movie Details โ View comprehensive movie information including synopsis, cast, and showtimes
- Seat Selection โ Interactive seat picker for choosing preferred seats
- Secure Booking โ Complete ticket booking with real-time availability updates
- Secure Payment โ Pay via Razorpay with secure transaction handling
- E-Ticket with QR โ Receive downloadable PDF tickets with embedded QR codes
- Booking History โ View and manage all past and upcoming bookings
- User Authentication โ Secure registration and login with session management
- Admin Dashboard โ Comprehensive analytics and management overview
- Movie Management โ Add, edit, and remove movie listings with image uploads
- Showtime Management โ Configure showtimes, pricing, and availability
- Booking Oversight โ Monitor all bookings and revenue analytics
- Role-Based Access โ Admin-only routes with protected access control
- Responsive Design โ Fully responsive across mobile, tablet, and desktop
- Modern Interface โ Clean, intuitive design with Material UI components
- Smooth Animations โ Polished transitions and micro-interactions
- Dark/Light Theming โ Professional visual hierarchy with consistent styling
Landing page with cinematic hero section, movie search, and date/ticket selection
Browse all now-showing movies with genre filters, ratings, and sorting options
User reviews, social links, and professional footer with newsletter subscription
Ensure you have the following installed:
| Tool | Version | Download |
|---|---|---|
| Node.js | โฅ 18.x | nodejs.org |
| npm | โฅ 9.x | Included with Node.js |
| MongoDB | Atlas or Local | mongodb.com |
| Git | Latest | git-scm.com |
# 1. Clone the repository
git clone https://github.com/eldhoaby/GoCineApp.git
cd GoCineApp
# 2. Install backend dependencies
cd backend
npm install
# 3. Install frontend dependencies
cd ../frontend
npm install# Terminal 1 โ Start Backend Server
cd backend
npm start
# Server runs on http://localhost:3000
# Terminal 2 โ Start Frontend Dev Server
cd frontend
npm run dev
# App runs on http://localhost:5173๐ For detailed setup instructions, see docs/setup.md
PORT=3000
MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/gocine
RAZORPAY_KEY_ID=your_razorpay_key_id
RAZORPAY_KEY_SECRET=your_razorpay_key_secretVITE_API_URL=http://localhost:3000
VITE_RAZORPAY_KEY_ID=your_razorpay_key_id
โ ๏ธ Never commit.envfiles. Use the provided.env.exampleas a template.
The backend exposes a RESTful API with the following endpoint groups:
| Method | Endpoint | Description | Auth |
|---|---|---|---|
POST |
/users/register |
Register a new user | Public |
POST |
/users/login |
Authenticate user | Public |
GET |
/rooms |
Get all movie listings | Public |
GET |
/rooms/:id |
Get movie details by ID | Public |
POST |
/bookings |
Create a new booking | User |
GET |
/bookings |
Get user's bookings | User |
POST |
/razorpay |
Process Razorpay payment | User |
GET |
/admin/dashboard |
Admin dashboard data | Admin |
POST |
/admin/rooms |
Add new movie listing | Admin |
PUT |
/admin/rooms/:id |
Update movie listing | Admin |
DELETE |
/admin/rooms/:id |
Delete movie listing | Admin |
๐ For comprehensive API documentation, see docs/api-overview.md
GoCine follows a modern JAMstack-inspired deployment architecture:
GitHub Repository
โ
โโโโ Vercel (Frontend)
โ โโโ Automatic deployments on push
โ โโโ Edge network CDN
โ โโโ Environment variables configured
โ
โโโโ Render (Backend)
โ โโโ Automatic deployments on push
โ โโโ Node.js runtime environment
โ โโโ Environment variables configured
โ
โโโโ MongoDB Atlas (Database)
โโโ Cloud-hosted cluster
โโโ Automatic backups
โโโ Network access whitelist
- Connect your GitHub repository to Vercel
- Set the Root Directory to
frontend - Set the Build Command to
npm run build - Set the Output Directory to
dist - Configure environment variables (
VITE_API_URL,VITE_RAZORPAY_KEY_ID)
- Create a new Web Service on Render
- Connect your GitHub repository
- Set the Root Directory to
backend - Set the Build Command to
npm install - Set the Start Command to
npm start - Configure all environment variables
๐ For step-by-step deployment guide, see docs/deployment.md
GoCineApp/
โโโ frontend/ # React + Vite Frontend Application
โ โโโ public/ # Static assets
โ โโโ src/
โ โ โโโ assets/ # Images, icons, and media
โ โ โโโ components/ # Reusable UI components
โ โ โ โโโ hotelOwner/ # Admin panel components
โ โ โ โ โโโ Admin.jsx # Admin layout with routing
โ โ โ โ โโโ Dashboard.jsx # Analytics dashboard
โ โ โ โ โโโ EditRoom.jsx # Edit movie listing
โ โ โ โ โโโ HotelReg.jsx # Add new movie listing
โ โ โ โ โโโ ListRooms.jsx # Manage all listings
โ โ โ โ โโโ Sidebar.jsx # Admin sidebar navigation
โ โ โ โโโ Footer.jsx # App footer
โ โ โ โโโ Hero.jsx # Landing hero section
โ โ โ โโโ HotelCard.jsx # Movie card component
โ โ โ โโโ Login.jsx # Login modal
โ โ โ โโโ Navbar.jsx # Navigation bar
โ โ โ โโโ Register.jsx # Registration modal
โ โ โ โโโ ...
โ โ โโโ config/ # App configuration
โ โ โ โโโ api.js # API base URL config
โ โ โโโ pages/ # Page-level components
โ โ โ โโโ Home.jsx # Landing page
โ โ โ โโโ AllRooms.jsx # Movie listing page
โ โ โ โโโ RoomDetails.jsx # Movie details + booking
โ โ โ โโโ Payment.jsx # Payment processing
โ โ โ โโโ Confirmation.jsx # Booking confirmation + e-ticket
โ โ โ โโโ MyBookings.jsx # User booking history
โ โ โโโ App.jsx # Root component with routing
โ โ โโโ main.jsx # Application entry point
โ โโโ package.json
โ โโโ vite.config.js
โ
โโโ backend/ # Node.js + Express Backend API
โ โโโ configs/
โ โ โโโ db.js # MongoDB connection config
โ โโโ models/
โ โ โโโ user.js # User schema
โ โ โโโ room.js # Movie/Room schema
โ โ โโโ booking.js # Booking schema
โ โโโ routes/
โ โ โโโ auth.js # Authentication routes
โ โ โโโ rooms.js # Movie CRUD routes
โ โ โโโ bookings.js # Booking management routes
โ โ โโโ payment.js # Stripe payment routes
โ โ โโโ razorpay.js # Razorpay payment routes
โ โ โโโ admin.js # Admin management routes
โ โโโ server.js # Express server entry point
โ โโโ package.json
โ
โโโ docs/ # Project documentation
โ โโโ setup.md # Detailed setup guide
โ โโโ deployment.md # Deployment instructions
โ โโโ api-overview.md # API documentation
โ โโโ project-structure.md # Architecture details
โ
โโโ .github/ # GitHub configuration
โ โโโ workflows/ # CI/CD pipelines
โ โโโ ISSUE_TEMPLATE/ # Issue templates
โ โโโ PULL_REQUEST_TEMPLATE.md # PR template
โ
โโโ CONTRIBUTING.md # Contribution guidelines
โโโ CODE_OF_CONDUCT.md # Code of conduct
โโโ SECURITY.md # Security policy
โโโ CHANGELOG.md # Version changelog
โโโ LICENSE # MIT License
โโโ README.md # This file
๐ For detailed architecture documentation, see docs/project-structure.md
- JWT Token Authentication โ Implement token-based auth with refresh tokens
- Email Notifications โ Send booking confirmations via email (SendGrid/Nodemailer)
- Real-Time Seat Updates โ WebSocket integration for live seat availability
- Movie Reviews & Ratings โ User review system with star ratings
- Advanced Search & Filters โ Search by genre, language, location, and date
- Wishlist & Favorites โ Save movies for later viewing
- Multi-Language Support โ Internationalization (i18n) for broader reach
- Progressive Web App โ PWA support for mobile-native experience
- CI/CD Pipeline Enhancement โ Automated testing and deployment workflows
- Docker Containerization โ Containerized development and deployment
- Redis Caching โ Performance optimization with server-side caching
- Rate Limiting โ API rate limiting for security hardening
This project is licensed under the MIT License โ see the LICENSE file for details.


