A comprehensive cinema ticket booking system built with Spring Boot, designed for managing movie events, venues, shows, and real-time seat reservations with integrated payment processing and notifications.
Book It Now is a full-featured cinema management platform that provides:
- Multi-venue theater management with dynamic auditorium configurations
- Real-time seat booking with automatic locking and expiration
- Payment integration via webhooks with transaction management
- Event-driven notifications using Apache Kafka for email confirmations
- Comprehensive admin dashboard for theater operations
- RESTful API with JWT authentication and role-based access control
- Create and manage movie events with metadata
- Configure multiple venues and auditoriums
- Design custom seat layouts with pricing categories
- Schedule shows with conflict prevention
- Monitor bookings and venue performance
- Browse movies by genre, language, or location
- Real-time seat selection with availability display
- Secure booking with automatic seat locking
- Payment processing with webhook confirmations
- Email notifications for booking confirmations
- Microservices-ready architecture with event-driven communication
- Docker containerization for easy deployment
- Database persistence with PostgreSQL and Redis caching
- Message queuing with Apache Kafka for notifications
- Comprehensive logging and error handling
- API documentation with OpenAPI/Swagger
- Backend: Spring Boot 3.x, Java 17
- Database: PostgreSQL with JPA/Hibernate
- Cache: Redis
- Message Broker: Apache Kafka
- Security: JWT authentication, Spring Security
- Containerization: Docker & Docker Compose
- Documentation: OpenAPI/Swagger UI
- Docker & Docker Compose
- Java 17+ (for local development)
- Maven 3.6+
cd book-it-now
docker-compose up -dThe application will be available at http://localhost:8080
# Requires local PostgreSQL, Redis, and Kafka
mvn spring-boot:run -Dspring-boot.run.profiles=dev- Admin User:
admin@bookitnow.com/admin123 - API Documentation:
http://localhost:8080/swagger-ui.html
For complete API reference including all endpoints, request/response formats, and examples, see:
This includes detailed documentation for:
- Authentication and user management
- Event and show administration
- Venue and auditorium management
- Booking and payment workflows
- Seat layout configuration
For detailed Docker setup instructions, environment configuration, and troubleshooting, see:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Spring Boot │ │ PostgreSQL │ │ Redis │
│ Application │◄──►│ Database │ │ Cache │
│ │ │ │ │ │
│ REST API │ │ JPA/Hibernate │ │ Session Cache │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐ ┌─────────────────┐
│ Kafka │ │ Zookeeper │
│ Messaging │ │ Coordination │
│ │ │ │
└─────────────────┘ └─────────────────┘
Complete entity relationship diagram showing all tables and their relationships.
- Seat locking: Bookings expire after 10 minutes if payment not completed
- Show scheduling: No time overlaps allowed in same auditorium
- Layout immutability: Seat layouts cannot be changed after first show
- Payment processing: Webhook-based confirmation with status tracking
- Notification system: Automatic email confirmations via Kafka
- Fork the repository
- Create a feature branch
- Make changes with tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
