A comprehensive cinema booking system backend built with Spring Boot that enables movie theater management, show scheduling, seat reservations, and user authentication with JWT-based security.
✨ Key Features
🎬 Movie Management
- Create, read, update, and delete movies with detailed information (title, description, duration, rating, poster images)
- Genre classification with many-to-many relationships
- Movie catalog with release year tracking
🎫 Show Time & Scheduling
- Flexible time slot management for different show times
- Day-based scheduling system
- Show status tracking (scheduled, ongoing, completed, cancelled)
- Unique show time validation per movie, date, and time slot
💺 Seat Reservation System
- Real-time seat availability tracking
- Prevents double-booking of seats for the same show
- Seat status management (Active, Inactive, Damaged)
- User-specific reservation tracking
🔐 Authentication & Security
- JWT-based stateless authentication (access tokens and refresh tokens)
- Secure password hashing
- Role-based access control (USER, ADMIN)
- Protected endpoints with Spring Security
- HttpOnly cookies for refresh token storage
👥 User Management
- User registration with email validation
- Unique email enforcement
- User profile management
- Admin-only user listing
- Password update functionality
- Personal reservation history