A modern, Single Page Application (SPA) for booking movie tickets, featuring a cinematic dark UI, 3D seat selection, and real-time state management using Vanilla JavaScript.
CineBook is a fully functional movie ticket booking platform designed to replicate the premium feel of a cinema theater. Built entirely with Vanilla JavaScript, it demonstrates advanced DOM manipulation, state persistence via LocalStorage, and complex CSS animations without relying on external frameworks.
- ⚡ Single Page Application (SPA): Seamless navigation without page reloads.
- 🌑 Cinematic Dark Mode: Immersive UI with Glassmorphism and Neon accents.
- 💺 3D Seat Selection: Interactive theater layout with CSS 3D perspective.
- 💾 Data Persistence: Bookings and new movies are saved to LocalStorage (won't vanish on refresh).
- 🔍 Real-Time Search: Instant filtering of movies as you type.
- 🛡️ Secure Admin Panel: Protected dashboard to add new movies dynamically.
- 🔔 Toast Notifications: Custom non-intrusive alerts (replacing native browser alerts).
- Frontend: HTML5, CSS3 (Grid, Flexbox, Keyframes, Perspective)
- Logic: Vanilla JavaScript (ES6+, DOM API)
- Icons: FontAwesome 6
- Fonts: Google Fonts ('Outfit' & 'Inter')
- Storage: Browser LocalStorage API
You only need a modern web browser (Chrome, Firefox, Edge). No Node.js or Database installation required.
To access the Admin Panel (click the "Admin" button in the header):
- Username:
admin - Password:
1234
This project was built to demonstrate mastery of core web technologies:
- DOM Manipulation: Elements (Movies, Seats, Toasts) are created and destroyed dynamically using JavaScript.
- Event Delegation: Efficient handling of seat clicks by attaching listeners to parent containers.
- CSS 3D Transforms: The "Curved Screen" effect uses
rotateXandperspectivefor depth. - State Management: A centralized
stateobject tracks the current movie, time, date, and selected seats.
CineBook/
├── index.html # Main entry point (SPA Structure)
├── style.css # All styling (Dark mode, animations, responsiveness)
├── app.js # Core logic (Routing, LocalStorage, Event Handling)
└── README.md # Project documentation