300583 Web Systems Development
Web Systems Development代写 In this Practical Set, you will implement a roughly full-fledged website for the “Gourmet Pizza” shop with features
PRACTICAL SET 3 DUE: 8PM 25 JAN 2019
In this Practical Set, you will implement a roughly full-fledged website for the “Gourmet Pizza” shop with features such as authentication, full interactions with database, etc.
Steps for completing this practical set Web Systems Development代写
- Since we are going to include authentication in this project, you need to create a brand-new ASP.NET Core MVC project called “GourmetPizzaPrac3” with Visual Studio. You should follow the steps in Lecture 11 to have the Identity package in your project, and then change the database provider to Sqlite, and then apply the initial
- Modifythe Home page of your project to suit the “Gourmet Pizza” To achieve this, you should repeat the Steps 5, 7, and 13 from Prac1.
- Create the following three Model classes: Pizza, Customer and Purchase, and establish the one-to-many relationship between Pizza and Purchase, and the one-to-many relationship between Customer and Purchase with navigation properties.
a.Pizza: the definition of this class should include that in Prac1 with the addition of necessary navigation
b.Customer: the definition of this class should be similar to that in Prac2 with the following twoexceptions: Web Systems Development代写
i.There is no ‘ID’ property in this class; instead, the ‘Email’ property is used as the primary key for this
ii.It should include necessary navigation
c.Purchase: the definition of this class should include thefollowing properties and their associated requirements:
|PizzaID||int||Foreign Key (NB: since the name follows convention, this will be automatically figured out by EF Core)|
|CustomerEmail||string||Same as above; Web Systems Development代写|
|PizzaCount||int||The number of pizzas purchased. Should range from 1 to 80.|
|TotalCost||decimal||The total cost of this purchase. Should range from 1.00 to 1000.00|
|ThePizza||Pizza||This is a navigation property|
|TheCustomer||Customer||Same as above|
4.Use scaffolding to create the controllers and views for all the three Model classes above.
5.Use migration to create the database tables for all the three Model classes above.
6.Follow Lecture 11 slides to implement a ‘My Details’ page to allow a logged-in customer to enter and update his/her details. Web Systems Development代写
- Follow Lecture 11 slides to redirect a newly-registered customer to the ‘My Details’
- Modifythe Create() method in the PurchasesController and its associated view to implement a customized page for a logged-in customer to purchase pizzas.
Specifically, you should implement the following:
a.The web form for purchasing pizzas should include the following inputdevices:
i.A dropdown list for selecting pizzas. The options in this dropdown list should be read from the database, and each option should use a pizza’s ID as its value and a pizza’s Name as its text.
ii.An <input> field for entering PizzaCount. The PizzaCount should range from 1 to 80. Web Systems Development代写
b.If the customer inputs in this web form are valid, insert this purchase into the database. Note that you should do the following before theinsertion:
i.Get the CustomerEmail for this purchase. (Hint: see the ‘My Details’ implementation in the sample project for Lecture11).
ii.Calculate the TotalCost for this purchase.
c.Display a confirmation message for this purchase if it is successful. The message should include the following pieces of info: the name and the number of the pizza ordered, and the total
Hint: Lecture 8 slides and sample project have been updated to guide you in implementing this step. Please download the latest versions of Lecture 8 slides and sample project, and refer to the last section of the slides.
9.Modify the Index() method in the PurchasesController and its associated view to implement thefollowing: Web Systems Development代写
a.Only display the purchases made by the logged-in customer. (Hint: this can be done by calling the Where() method with a lambda expression onCustomerEmail).
b.Remove the ‘Edit’, ‘Details’ and ‘Delete’ links in each row.
c.There should be a column displaying the name of the pizza purchased.
d.There should be a column displaying the full name of the customer making this purchase.
e.The three column headings (‘Pizza name’, ‘PizzaCount’ and ‘TotalCost’) should be links that users can click to sort all records by that column.
f.Clicking a column heading toggles the display order between ascending and descending. Web Systems Development代写
10.Add a CalcPurchaseStats() action method into the PurchasesController to calculate and displaythe following distribution: the number of purchases against each In order to achieve this, you also need to create relevant Views and ViewModels.
11.Make the links in the navigation bardynamic:
a.When a customer is not logged-in, he/she should see the following links: Home, Pizzas (pointing to /Pizzas/Index), Register,Login.
b.When a customer is logged-in, he/she should see the following links: Home, Pizzas Index (pointing to /Pizzas/Index), My Details, Purchase Pizzas (pointingto/Purchases/Create), My Purchases (pointing to /Purchases/Index), Statistics (pointing to /Purchases/CalcPurchaseStats), Logout.
Hint: modifying _Layout.cshtml by following the idea of /Shared/_LoginPartial.cshtml. Web Systems Development代写
- Use the [Authorize] attribute class to make the following links only accessible to logged-in customers: My Details, Purchase Pizzas, My Purchases,Statistics.
Checkpoint (2 marks) Web Systems Development代写
The Prac3 Checkpoint will occur in your registered practical class in week 11. At this checkpoint you should complete steps 1-2.
- Step 1: 1
- Step 2: 1
- Any mistake in a step will results in a zero mark for that step. No decimal mark is
Final Submission (16 marks)
Please follow the steps below to submit your completed Prac3 to vUWS:
- Zipup the entire GourmetPizza folder and its sub-folders, which contain all your files for your project.
- Name the ZIP file Surname_studentidzip
- Submit the zipfile:
- In VUWS, go to‘Practicals’
- Click on ‘Prac3 Submission’; this link will be made available closer to the
- Attach your zip file and submit
Marking Criteria: Please see the rubric for Prac3 in the My Grades page on vUWS. Web Systems Development代写
- You can submit the zip file multiple times until the due
- Work submitted after the due time will incur a 10% per day late penalty as per university policyhttps://policies.westernsydney.edu.au/document/view.current.php?id=227
- Based on the policy, the 10% above means the 10% of the worth of the assessment, not your final score. So if the worth of the assessment is 10 marks and you scored 5 marks with a 5-day lateness, then you’ll receive 0 mark.