Skip to content
Permalink
master
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. They have a single stage and, due to the cost of building the stage sets, aim to have two performances per day (matinee and evening) and run each production for 5 days running Friday - Tuesday (10 performances). All play, performance and order dates should be stored in a database.


Testing

You are required to create the following accounts to allow the system to be tested. All accounts should have the password p455w0rd:

  1. user1
  2. user2
  3. user3
  4. admin (only required if you have attempted the stage 3 functionality).

Stage 1

The core functionality consists of three screens:

Part 1

The home screen should be visible even if the user is not logged in and needs to display the current play being performed, each should display:

  1. The name of the show
  2. A thumbnail of the poster
  3. The date of the first performance (formatted as DD MONTH, eg. 20 June)
  4. The date of the last performance (formatted as DD MONTH, eg. 30 June)

Part 2

Clicking on either the poster thumbnail or name should display the full details of that play including the dates and times of the performances.

  1. A photo of the performance.
  2. The name of the play.
  3. A detailed, multi-line, formatted description of the play.
  4. A detailed, multi-line cast list.
  5. A list of the 10 performances (date plus either "matinee" or "evening")
  6. A note of how many tickets are left from each performance
  7. The cost per ticket in GBP.

If the user is logged in there should be a link or button next to any performance where there are still spaces. Clicking this adds a ticket for that performance to the shopping cart. The page should display:

Part 3

If the user is logged in there should be a link or button on both the home and details screens to take the user to their shopping cart where they can:

  1. See the cost per show and total cost.
  2. Change the ticket quantity for each performance.
  3. Delete all the tickets for a particular performance.
  4. Clear the shopping cart entirely.

Stage 2

The intermediate tasks require you to make changes to the functionality:

  1. The theatre plan productions over the next three months meaning they know the current production and also the next two productions coming up. The home page should now display both the current production and the two that will follow.
  2. The tickets are in three price bands reflecting where in the auditorium they are. There are a fixed number of each type and fir each production the customer should be able to add a mix of all three types to their order and the production details screen should show how many are remaining: 2. Rear Stalls: these seats are located towards the rear of the main auditorium. 3. Circle: these are located in the balcony placed above the rear stalls, they cost 50% more then the rear stalls.
    1. Front Stalls: these are the most expensive (best seats in the house) and are located towards the front of the main auditorium. They cost twice as much as the rear stalls.

Stage 3

  1. There should be an admin user who can:
    1. Add new productions and should be prevented from having a start or end date that overlaps an existing performance.
    2. Edit existing productions.
    3. View the ticket sales and gross income for each show plus the income for each show.

Extras

In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.

Sensors

In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:

  1. When a user books tickets the software should capture their current location and store it with the booking details.
  2. For a given production the admin person should be able to see a map with the locations of people who bought tickets.
  3. When the system asks for a photo it should provide access to the device camera (if available).

Media

In the requirements listed above you need to provide the user with the ability to upload photos. For the extra media marks you will need to expand this by:

  1. Providing the user with the choice of uploading photos, video clips or audio clips.
  2. Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.

Data

There are lots of online RESTful APIs you can make use of when developing this system. You should consider:

  1. Ingresso
  2. The List API
  3. LocationIQ