cs445 - Fall 2017

Project - Questions And Answers


Many thanks to the following students who have contributed questions for this section and or have helped collect and document the questions and answers:

Q: Do we need to develop the REST client?

A: No, you only need to implement the back-end.

Q: How do shows get loaded into the system?

A: "Load Show" is one of the use cases that will have to be implemented. It will be something like
PUT http://base_url/thalia/shows/

Q: How do we handle access control for various actors?

A: In the interest of time you are not required to implement access control.

Q: How do we handle race conditions when booking seats?

A: This could happen when multiple patrons attempt to book the same seat(s) at the same time, simply because the operation of testing that a seat is available and booking it is not atomic. You will have to enforce a critical section around booking a seat and raise an error if the seat is already booked.

Q: Will we have to interface with a real CC processing system?

A: No, just use a mock.

Q: Are the sections in the theater fixed or can the owner change them as she wishes?

A: Once defined the sections of a theatre are pretty much fixed. In class we suggested that section definitions will be read, when the application starts, from a configuration file.

Q: Are patrons allowed to changed their tickets for a different section of the same show?

A: This would require some work because the likely difference in price between sections. Plus, the busness owner may want to charge a fee for the transaction. It's not in scope for this class project, however would be nice to have in the future.

Q: Are patrons allowed to changed their tickets for the same show but a different day and time?

A: No.

Q: Are patrons allowed to order tickets from multiple sections in the same transaction?

A: No, but only because the initial requirements didn't allow it and your instructor doesn't want to expand scope. In the future the theatre owner would like to see this feature implemented.

Q: Will there be "standing-room only" tickets available for purchase?

A: No, however this is another great idea for a future enhancement.

Q: May donated tickets be donate by the recipient?

A: Sure, why not. NOTE: by doing it the task of reporting becomes a lot harder.

Q: May a recipient of a donated ticket refuse the ticket?

A: The requirements don't make any provision for anything like that. A ticket will be assigned to you if you subscribed to getting one AND enough tickets have been donated; you have the choice of not using the ticket that has been assigned to you or donating it further.

Q: Could a patron donate tickets while at the same time subscribing to received donated tickets?

A: Sure, why not?

Q: Are subscriptions for a donated ticket specific to a show/date/time or are they for a specific show regardless of date/time?

A: All subscriptions are specific to a show/date/time. Being able to subscribe to a show regardless of date/time may be a nice enhancement in the future.

Q: Are patrons allowed to specify a specific section when subscribing for donated tickets?

A: No.

Q: How are we supposed to treat box seating in the theatre, if any?

A: You'd need to indicate that certain seats are part of a box. A box is basically a small section, except that it's not organized in rows. All seats in a box are basically contiguous.

Q: Do shows that start at the end of one day and end the next day have an impact on how the revenue report is generated?

A: Should not. The revenue report is based on those tickets that have a purchase date and time between the beginning of the start date and the end of the end date, regardless of when a show starts and ends.

Q: Our project requires us to perform unit testing. This is expected for the base classes, but is it possible to perform unit testing for the REST controller?

A: If you keep your REST controller *very light*, then you don't need to do unit testing on it.

Q: The project Functional Testing says that we need to deploy the resulting .war file to a tomcat server. I want to use the open source framework DropWizard for the project that allows to deploy the RESTful service as a standalone jar application without using a tomcat server. Will that be ok?

A: Yes. Matter of fact we encourage you to use a framework such as DropWizard since that will greatly simplify the work you need to do around implementing the delivery mechanism (REST end points) and allow you to focus on implementing the core functionality for the project.

Q: How are ticket donations handled?

A: There are two simple rules:
  • First-come-first-served
  • Incomplete assignments are ok
Let's assume that Alice is the first subscriber and she requests one ticket. Bob is the second subscriber and he requests two tickets. Eve donates two tickets: the first one goes to Alice and the second one goes to Bob; Bob's assignment is incomplete because he requested two tickets but only received one ticket. What happens if later one Mallory donates one ticket is entirely up to your implementation, you may decide to assign another ticket to Bob, or otherwise move to the next request in the queue of subscribers.

$Id: project-Q-and-A.html,v 1.9 2017/11/09 15:09:21 virgil Exp $