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 2 weeks (28 performances). All play, performance and order dates should be stored in a database.
The core functionality consists of three screens:
- The home screen should display the current play being performed, each should display:
- The name of the show
- A thumbnail of the poster
- The date of the first performance
- The date of the last performance
- Clicking on either the poster thumbnail or name should display the full details of that play including the dates and times of the performances. If there are any tickets remaining there should be a link or button next to the performance. Clicking this adds a ticket for that performance to the shopping cart. The page should display:
- A photo of the performance
- The name of the play
- A detailed, multi-line, formatted description of the play
- A detailed, multi-line cast list
- A list of the 28 performances (dates and times)
- A note of how many tickets are left from each performance
- The cost per ticket
- There should be a link or button on both the screens to take the user to their shopping cart where they can:
- See the cost per show and total cost
- Change the ticket quantity for each performance
- Delete a performance
The intermediate tasks require you to make changes to the functionality:
- 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.
- 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.
- 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.
- There should be an admin user who can:
- Add new productions and should be prevented from having a start or end date that overlaps an existing performance.
- Edit existing productions.
- View the ticket sales and gross income for each show plus the income for each show.
In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.
In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:
- When a user books tickets the software should capture their current location and store it with the booking details.
- For a given production the admin person should be able to see a map with the locations of people who bought tickets.
- When the system asks for a photo it should provide access to the device camera (if available).
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:
- Providing the user with the choice of uploading photos, video clips or audio clips.
- Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.
There are lots of online RESTful APIs you can make use of when developing this system. You should consider: