Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

Theatre Booking

Build a website for a local theatre company: Packages: sharp, pdf, image-watermark, nodemailer.


This will create a simple yet functional website for a small theatre company. It is assumed that there is only one production running at any one time and that there is only a single show per day.

  1. The home screen displays the current production including the title and poster and details, this can be seen without logging in.
  2. The customer can create an account which includes both their personal details including a profile picture as well as their preferred payment details (card details).
  3. When logged in a customer can choose a production to see the production run dates, indicating how many seats are available for each show.
  4. The logged in user should be able to choose their preferred date and how many seats they want (up to the max remaining).
  5. They should be sent to a (fake) payments screen where they can enter their card details.


Now we introduce additional features suitable for a bigger theatre. There is still only one production running at one time however now there are three shows running per day and the website shows the upcoming productions. The seats are priced differently depending on their position in the auditorium.

  1. The home screen promotes the different productions being shown over the coming months.
  2. Customers can select a production to see a screen containing the details including dates.
  3. They can select the date they prefer and are taken to a screen where they can see how many low, medium and high priced tickets are available.
  4. They can choose how many of each price band they want (up to the max left) and are then add to a shopping cart.
  5. The customer can choose tickets for multiple shows and dates and these are added to a shopping cart.
  6. Once all tickets are chosen the customer can view the shopping cart and make payment.


The advanced features focus on the administration of the site. There is an admin account that provides access to these features.

  1. Managers can see a list of ticket sales for a given production and see the total income for a given production or show.
  2. The admin can add new shows and for each assign:
    1. The dates.
    2. Pricing for the three ticket bands.
  3. When a person pays for tickets, these should be emailed out in PDF format.