Practical Assessment 2 – ASP.NET Core Web Site
|Due date:||Thursday, 7 October 2021, 11:45pm||ASSESSMENT|
|Length:||No set length||2|
This assessment item relates to the course learning outcome numbers 2 and 3.
More specifically, the objective of this assignment is for students to:
Develop, test and maintain a dynamic Internet application for business using an integrated suite of software tools.
2. Assessment task
You are required to further develop the website from assessment 1 using ASP.NET Core and C#. You must complete the web site according to the specifications given in this document.
A sample solution for assignment 1 will be provided for those that require it, however you need to complete assignment 1 to gain the skills you will need for assignment 2.
This assessment is divided into four main parts:
- Catalogue Product Filter
- Product Details Page
- Shopping Cart
The Catalogue page must display items from the database with the sample data previously provided. This will require you to create a database migration for the product table and move the sample data to seed the database in the same manner as the Sports Store.
- Migrate the Products table and create the database
- Create the database context file
- Create the repository and interface
- Inject the repository into the catalogue controller
Catalogue Product Filter
Populate the Catalogue page from the database and filter by category. The Catalogue page should look like the page above.
- Adapt the nav menu component from the sports store and use in place of the side category menu
- Populate the catalogue products from the products repository
- Filter the items displayed according to the selected category
- Highlight the current category in the menu
Product Details Page
Create a Product Details page that displays the product image and product details. The Product Details page should look like the page above.
- Clicking on a product image in the Catalogue page will open the Product Details page
- The Product Details page will use the markup from the single-product.html template file provided
- Create a product details method in the Catalogue controller which will fetch the product details.
- Use the product data to populate the Product Details page as shown above
- Use the same image as was used on the Catalogue page
You will need to do the following to complete this page:
- Tag each product with its product id and pass it back when the image is clicked
- Use the product id to fetch the product details from the database
- Pass the product to the view and populate the page with the product details
Part D: Shopping Cart
You are to create a session aware shopping cart that is available as a service along with a shopping cart page. The shopping cart page should look like the page above.
- Create a shopping cart and provide it as a service
- Save the shopping cart in the session state
Shopping Cart Page
- Create a shopping cart page as a razor page
- Use the markup from the sample cart.html template page for the razor page
- Load the cart items into the relevant fields from the shopping cart service
- The Add to Cart button on the Product Details page will add the item to the cart using the quantity set on the quantity spin control
- The Delete button will delete the item from the cart
- The Continue Shopping button will take the user back to catalogue page
- We will NOT be implementing the Checkout page
- Remove the Cart icon and Buy Now button
- The razor page has its own layout file which is a copy of the main layout so this is simple
- The Cart icon is to display the total number of items in the cart
- Selecting the shopping cart icon in the page headers will open the cart page
- The Shop Now button on the Home page is to go to the Catalogue page
- The Buy Now button in the header is to go to the Cart
- The Continue Shopping button is to go to the Catalogue page
- Home and Shop links in the footer are to go to their respective pages
- Update the text on the Home page and footer to something meaningful for your site
- Make sure you have credited images (other than those from the template)
Check the Assessment Criteria on the following page for a breakdown of requirements and marking.
3. Assessment Criteria
|Database||Database created with Product table Database seeded with sample data provided Database repository created as a service||2 2 2|
|Catalogue Page||Repository injected into Catalogue controller Catalogue items are displayed from database information Category side menu added as a component Items are filtered by category (current button highlighted) Clicking on an item opens the Product Details page||1 2 1 2 1|
|Product Details Page||Uses MVC with action added to Catalogue controller Uses the markup from the template provided Products details are displayed for the selected product Add to cart adds the selected quantity of items to the cart||1 2 2 2|
|Shopping Cart||Shopping cart created as a service Shopping cart saves state as a session Shopping cart icon in menu bar opens cart page Number on cart icon displays total number of items in cart||1 1 1 2|
|Shopping Cart Page||Implemented as a razor page Uses the markup from the template provided Lists each product with name, price, quantity & total Displays the total price Delete button removes item from cart Cart icon and Buy Now button removed||1 2 2 1 1 1|
|General||Text on Home page and footer updated appropriately Shop Now buttons goes to the Catalogue page Buy Now button goes to the Cart Continue Shopping button returns to Catalogue page Home and Shop links in the footer work Currency is formatted correctly||1|
|Style||No unnecessary files or code (in project and in zip file) Code is professional and well formatted Layout from template displays correctly (not broken) Images are credited where applicable (or tagged in code as created by you)||1|
You are required to submit your assignment electronically via the Moodle course website. You must submit your project as a single .zip file.
To prepare your project for submission follow the steps below. You should back up your project before doing this.
- Delete the .vs folder in the solution folder
- Delete the bin and obj folders in the project folder
- These will be rebuilt when the project is run
- Zip the full solution as a ZIP (NOT RAR) archive
- Name the zip file firstname_lastname.zip