Create a Simple E-Commerce Store - Assignment 2

Create a simple e-commernce store to practice different concepts of web programming we discussed in class e.g. Bootstrap, form handling, files handling, sessions, cookies, database connectivity etc. E-commerce stores are used to sell products. The end product shall have Bootstrap based UI, so feel free to use a free Bootstrap theme. From functional perspective, your assignment shall look something like this: (UI shall be better)

The store shall have at least following functionalities:
  1. Use bootstrap 4 for layout and different page components e.g. forms, panels, cards, etc.
  2. It shall allow users to register, login, logout, change password, and edit profile. Use any basic attributes.
  3. After admin is login, admin (user type) shall add new products and categories. Let admin to update and delete both entities. Category shall have only name and id. Products shall have title, description, price, in-stock, and category_id fields. Let admin to upload maximum 4 pictures of each product. One picture shall be 'main' (that means, it shall be displayed large by default in product_info.php page).
  4. Create index.php page, it shall dispaly list of all products order be date added. Show only main picture, price and title of each product. Picture and title shall be links, pointing to product_info.php page, described below. 
  5. Create product_info.php?id=n ... it shall display product detail page e.g. title, description, price, all pics, stock availability etc of the product whose id is passed in request parameter. (this page shall open, when user click on some product picture or title displayed on index.php page). It shall also display all pictures attached by admin.
  6. On left side index.php page, show all categories with products count of each category. Count means, how many products belong to that category. When user click the link, pass category id to index.php page, in this case it shall display all products of passed category id. Also display category name at top of that page (only when category id is passed). No need to manage sub categories.
  7. Let users add products in shopping cart, by clicking Add to Cart button on product.php page, make a text box with this button for quantity, the default value shall be 1 (already filled). The shopping cart shall store each product quantity that user selected.
  8. Make show-cart.php page, it shall display complete shopping cart. main pic, title, quantity added, unit price, total price and grand total. 
  9. Add pagination on index.php page, when products are more than 10. Show 10 products at max on one page.
Bonus features: 
  1. Let users review the products
  2. Show products-on-sale with previous and sale price. Admin shall define discount price and choose products that admin want to put on-sale.
Minor variations are acceptable as long as they make sense. No need to make checkout process. If you have learned a framework e.g. Laravel, AngularJS .. feel free to use it. This assignment shall take around 2 days to finish if you are understanding the topics covered and doing practice lab tasks.

Database Design: 
Below database shall be good enough to implement the functionality listed above.

Donwload This File on your local drive, the SQL Script of above schema. In your MySQL Workbench, Open SQL Script using Ctrl+Shift+O and select the downloaded estore.sql file. Run the script to create the schema. Once the initial schema is created, you may add more tables or columns to implement additional optional functionlalities.

Due: April 12 (even roll numbers) .. forget about group 1 and 2
April 13 (odd roll roll numbers)
Late Submission: 5 marks/day deduction
Total Marks: 20
Cheating: -20