Course Content
Data Structures & Algorithms
Full Stack Web Development
Understanding and playing with DOM (Document Object Model)
0/2
MERN project
0/2
Low Level System Design
LLD Topics
High Level System Design
Fast-Track to Full Spectrum Software Engineering
1. User Management APIs

a. User Registration API

  • Purpose: Allows users to create an account on BookMyShow.

 

  • Request: POST /api/users/register

 

  • Parameters:
    • username: User’s name or email.

    • password: User’s password.

    • email/phone: Contact information.

    • social_login: Option for Facebook/Google login.

 

  • Response: Success or failure status, user profile details.

 

b. User Login API

  • Purpose: Allows users to log in to their BookMyShow account.

 

  • Request: POST /api/users/login

 

  • Parameters:
    • username/email: User’s email or username.

    • password: User’s password.

 

  • Response: Authentication token (JWT), user profile, session data.

 

c. Password Reset API

  • Purpose: Allows users to reset their password if they forget it.

 

  • Request: POST /api/users/password-reset

 

  • Parameters:
    • email: User’s email to send reset link.

 

  • Response: Reset link sent or error message.

 

d. User Profile API

  • Purpose: Fetches or updates user profile details.

 

  • Request: GET /api/users/{user_id}/profile (fetch)
    PUT /api/users/{user_id}/profile (update)

 

  • Parameters:
    • For update: Name, email, phone number, etc.

 

  • Response: Updated profile details or user data.

 

2. Movie and Event Discovery APIs

a. Search Movies API

  • Purpose: Searches for movies or events based on filters like name, genre, location, and showtimes.

 

  • Request: GET /api/movies/search

 

  • Parameters:
    • query: Movie name, genre, or event.

    • location: City or region.

    • showtime: Date/time filter.

 

  • Response: List of matching movies or events with details (movie name, theater, timings).

 

b. Movie Details API

  • Purpose: Provides detailed information about a particular movie.

 

  • Request: GET /api/movies/{movie_id}

 

  • Parameters:
    • movie_id: Unique identifier of the movie.

 

  • Response: Movie details, including synopsis, ratings, showtimes, trailers, cast, and crew.

 

c. Events API

  • Purpose: Fetches upcoming events like concerts, plays, and other shows.

 

  • Request: GET /api/events

 

  • Parameters:
    • type: Event type (concert, play, etc.).

    • location: Event location.

 

  • Response: List of events with date, time, and venue.


3. Seat Availability and Booking APIs

a. Get Available Seats API

  • Purpose: Fetches available seats for a specific movie or event based on showtime.

 

  • Request: GET /api/seats/{show_id}/availability

 

  • Parameters:
    • show_id: Unique show identifier.

 

  • Response: Seat availability details (available, booked, or reserved).

b. Seat Reservation API

  • Purpose: Allows a user to reserve a seat for a particular show.

 

  • Request: POST /api/seats/{show_id}/reserve

 

  • Parameters:
    • user_id: User’s unique identifier.

    • seats: List of reserved seat IDs.

 

  • Response: Reservation confirmation, including seat numbers and payment status.

 

c. Ticket Booking API

  • Purpose: Finalizes the ticket booking by confirming the reserved seats and processing payment.

 

  • Request: POST /api/bookings

 

  • Parameters:
    • user_id: User’s ID.

    • show_id: Movie/event show ID.

    • seats: List of seats.

    • payment_method: Payment method (credit card, UPI, etc.).

 

  • Response: Booking confirmation, e-ticket with QR code.

 

4. Payment and Transaction APIs

a. Payment Initiation API

  • Purpose: Starts the payment process for a ticket booking.

 

  • Request: POST /api/payment/initiate

 

  • Parameters:
    • booking_id: Unique booking reference.

    • amount: Total booking amount.

    • payment_method: Chosen payment method.

 

  • Response: Payment link or gateway redirect information.

b. Payment Confirmation API

  • Purpose: Confirms the success or failure of a payment transaction.

 

  • Request: POST /api/payment/confirm

 

  • Parameters:
    • transaction_id: Unique transaction identifier.

    • status: Payment success or failure.

 

  • Response: Payment status (confirmed or failed), payment ID.

c. Payment History API

  • Purpose: Fetches a user’s payment history for past bookings.

 

  • Request: GET /api/users/{user_id}/payments

 

  • Parameters:
    • user_id: User’s unique identifier.

 

  • Response: List of payments with transaction IDs, amounts, dates, and statuses.


5. Event and Booking Management APIs (For Organizers)

a. Create Event API

  • Purpose: Allows event organizers to create a new event (e.g., a movie premiere or a concert).

 

  • Request: POST /api/events

 

  • Parameters:
    • event_name: Name of the event.

    • event_type: Movie, concert, etc.

    • location: Event location.

    • timings: Event date and time.

    • seats: Available seating configuration.

 

  • Response: Event ID, creation confirmation.

b. Update Event API

  • Purpose: Enables organizers to update event details (e.g., timings, venue).

 

  • Request: PUT /api/events/{event_id}

 

  • Parameters:
    • event_id: Event’s unique identifier.

    • updated_details: Updated information (showtimes, tickets, pricing).

 

  • Response: Event update confirmation.

c. View Event Sales API

  • Purpose: Fetches sales data for a particular event or show.

 

  • Request: GET /api/events/{event_id}/sales

 

  • Parameters:
    • event_id: Event’s unique identifier.

 

  • Response: Sales report including tickets sold, revenue generated, etc.


6. Notifications and Alerts APIs

a. Send Notification API

  • Purpose: Sends alerts and reminders to users regarding bookings, offers, and upcoming events.

 

  • Request: POST /api/notifications/send

 

  • Parameters:
    • user_id: Recipient’s user ID.

    • message: Notification content (e.g., “Reminder: Your movie starts in 30 minutes”).

 

  • Response: Notification sent status.

 

b. Push Notifications API

  • Purpose: Allows sending push notifications to users for relevant updates.

 

  • Request: POST /api/push-notifications

 

  • Parameters:
    • device_token: User’s device token for push notifications.

    • message: The notification content.

 

  • Response: Push notification status.

 

7. Reviews and Ratings APIs

a. Submit Review API

  • Purpose: Allows users to submit a review and rating for a movie or event.

 

  • Request: POST /api/reviews

 

  • Parameters:
    • user_id: User’s unique identifier.

    • movie_id or event_id: The item being reviewed.

    • rating: Numeric rating (e.g., 1-5).

    • comment: User’s review text.

 

  • Response: Review submission confirmation.

 

b. Fetch Reviews API

  • Purpose: Retrieves reviews and ratings for a specific movie or event.

 

  • Request: GET /api/reviews/{movie_id}

 

  • Parameters:
    • movie_id: Movie or event ID.

 

  • Response: List of reviews and average rating.
0% Complete
WhatsApp Icon

Hi Instagram Fam!
Get a FREE Cheat Sheet on System Design.

Hi LinkedIn Fam!
Get a FREE Cheat Sheet on System Design

Loved Our YouTube Videos? Get a FREE Cheat Sheet on System Design.