. Define Goals and Requirements
Tell your interviewer that you’re going to support the below features. If the interviewer wants to add some more features he/she will mention that.
The portal should list down the different cities where the theatres are located. (RDBMS)
Once the user selects the city it should display the movies released in that particular city to that user.
Once the user selects the movie, the portal should display the cinemas running that movie and the available shows.
Users should be able to select the show at a particular theatre & book the tickets (third-party payment support).
Send a copy of tickets via SMS notification or Email. (workers and GCM)
Movies suggestions when login (Hadoop and spark streaming with ML to get recommendation engine), real-time notifications to the user about new movie releases & other stuff.
The portal should display the seating arrangement of the cinema hall to the user.
Users should be able to select multiple seats according to their choice.
Users should be able to hold the seats for 5-10 minutes before he/she finalized the payment.
The portal should serve the tickets in a First In First Out manner
Comments and rating (Cassandra)
The system should be highly concurrent because there will be multiple booking requests for the same seat at the same time.
The core thing of the portal is ticket bookings which mean financial transactions. So the system should be secure and ACID compliant.
Responsive design (ReactJS and Bootstrap) to run on devices of various sizes like mobile, tablet, desktop, etc.
Movie information.
https://www.geeksforgeeks.org/design-bookmyshow-a-system-design-interview-question/