"Pay My Park Stay" - Make it easier to pay for Park fees
2. Acceptance CriteriaThe basic implementation of the project assumes the application runs on a server and that various clients access it through a REST API. The RESTful API will be available here as soon as we clarify the project detail. This process will require you to ask lots of questions, in class, via email, etc. I will not change the high-level requirements as a result of the requirements clarification process. However, I will document the decisions made in the Q&A document. Here is the scenario that will be used to test your application. 3. Questions and AnswersCheck here for answers before asking your TA or the teacher. 4. Extra CreditThe main purpose of this project is to practice object-oriented analysis, design and programming, not to teach you web development frameworks or relational databases. As such, the use of a database is expressly prohibited for the core project implementation. There is a finer point to be made about the databases ban, namely that most students would start with the design of a database schema, the way they learned in a Databases class, instead of thinking about use cases, entity objects, etc. In fact, the database should be a plug-in to your application, the same way the delivery mechanism should be, whether command line, web, etc. We can talk about extra credit iff (if and only if) your core project implementation works impeccably. This point will not be debated. If you complete your core project implementation on time and feel adventurous, then you can get extra credit for implementing a web client for the customer. 5. Project Description
As a tourist I should be able to get a list of all parks in the state, select one of them and view the admission fees for that park. I could then pay for admission by specifying the type of vehicle I'm paying for, e.g. two-axle, motorcycle, etc. and providing the additional information required, such as license place state, license plate number, credit card information (i.e. name on card, card number, security code, billing address/state/zip). An email address will be required for sending a payment confirmation. Of course I expect to receive an order number after payment has been processed. I could use the order number to submit a comment about the park I visited. Normally, in this day and age, I should be able to see comments posted by other visitors for each park. As a park ranger I should be able to check if payment has been made for a vehicle based on that plate's state and number. As an employee of the state government I need to maintain the list of parks and the admission fees for each of them; such fees change from time to time. Also, my boss makes me generate reports about the parks. She wants to know admission numbers by parks for various time frames, e.g. last month, between 12/15 and 12/31, etc. She also wants to know the revenue collected for all parks in a given time period, as a total and broken down by park. Lastly, I expect that our Customer Service team will receive calls for assistance from time to time and they should be able to search for past orders, based on the last four digits of a CC number and possibly a date range, or by a license plate number and possibly a date range.
|