Create a Basic Marketplace Web Application using PHP MySQL

Create a web application using HTML/CSS, Bootstrap, PHP, and MySQL, etc. It shall be a basic marketplace where any user interested to sell product shall create sellers account to list products to sell. Buyers create account to review products and add product in shopping cart. Here is the ERD of marketplace (lets call this project primestore)

Click Here to download SQL Script file.

Different pages you need to create to complete this marketplace are explained below.
  1. index.php i.e homepage. It shall contain list of categories (on left side) and recently added 16 products (4 products in each row) with pagination at bottom. Show each product title, price, main picture and shop name. When shop name is clicked, open same page i.e index.php to show all products of that shop (hint: Pass seller ID to index.php page as request parameter). When seller ID is received in page, display heading i.e. "All Products Listed by <Shop Title>" for the list of products. When user click a category at index.php, open same page passing category ID and list recently added products under passed category ID (write the category name at top of the page when category ID is received as request parameter).
  2. product.php page shall display complete product information i.e. category name, title, price, description, all uploaded images, product added date, seller shop title and all reviews (rating, comments, customer name, review-date) posted for that product. Also display average rating of the product. This page shall open when user click the product image or product title at index.php
  3. create-shop.php page shall open when user click Create New Shop link given in footer. It shall contain a form. To create new shop, user shall enter email, user name, password, business address and shop title. When user submit the form, it shall create a new seller account i.e. shop and redirect to index.php
  4. create-new-customer.php page shall open when user click Signup link given in header. User shall enter email, password, name and address to create new account i.e. buyer account.
  5. There shall be three types of users i.e. admin, seller and buyer. All types of users shall login using same login page i.e. login.php but each type of user shall redirect to different page. Admin shall redirect to dashborad-admin.php, seller should redirect to dashborad-seller.php and user (i.e customer) shall redirect to index.php page.
  6. On dashboard-seller.php, list all products added by the loged-in seller (product image, title, price and status only). The last column shall be "actions" containing links to delete and update the product. The delete link shall call product-delete.php using AJAX to delete that product from database, when product is deleted at server, that row in dashbpard-seller.php page shall also be deleted. The update link shall load product-update.php to open the update product form. The update form shall allow seller to update all product information except ID. Product ID shall be passed to product-update.php page as request parameter. 
  7. On top dashboard-seller.php page, show a link "Add New Product" that shall open new-product.php page for adding new product in the shop. When a new product is added, its status shall be false by default, to represent its not approved by admin. Only approved products shall be listed in marketplace. In same way, when a product is updated, set its status to false, so that its not listed on marketplace until its approved by admin again.
  8. The app shall facilitate the admin to approve newly added and updated products. So on dashboard-admin.php, show list of non-approved products i.e. products with false status. Each row shall contain product id, title, picture/s, price, description, approve and reject links in actions column. The approve and reject links shall call approve.php and reject.php page using AJAX. If the product is approved, its status in database shall be updated to true, if its rejected, the product shall be deleted from products table.
  9. When customer is login, on product.php page (after product's information) show a form with 5 radio buttons to represent POOR, SATISFACTORY, GOOD, VERY GOOD, EXCELLENT stars and a text area to review the product (only if user has not reviewed the product already). User should choose a rating option i.e. a radio and entering comments in text-areas. When user submit the review, submit the form to add-review.php page that shall save the review and redirect to same product page. After redirect, at top of the page, cleary show that entered review is added. If the currently logged-in user has already posted the review, do not show the  review form. In same way, if user is not logged-in, do not show the review form.
  10. Provide Add to Cart link at product.php, when its clicked, add 1 unit of that product in the shopping cart. If product is already added in cart, increase the quantity by 1 unit. In header, show View Cart link that shall open cart.php, that shall list all the products added by user in the cart. The page shall list product name, product main image, quantity, unit price, sub total and grand total. You shall save cart data in session.
  11. In each product row on cart.php page, give link to remove that product from cart. Do it by calling delete-from-cart.php and passing product ID as request parameter. After the product is removed from cart, redirect user to cart.php page. User shall be able to add products in shopping cart without login.
  12. Add "Place Order" button on cart.php page. When clicked, take user to checkout.php page to get user info who is placing the order (if not logged in) e.g. name, mobile number, postal address etc. Provide a checkout button on checkout.php page, when clicked, you shall save the user info and order details. Add additional tables to save order details, as many you need. And reriect the user to home page with appropriate message that orders is placed etc.
  13. Enter list of categories in categories table, no need to develop add/update form to manage categories in primestore. Only 7-10 categories shall be enough. Wherever categories are needed, you shall load the categories list from categories table.
  14. When user checkout at view Cart page, take customer name, email, phone and postal address and save customer record in users table setting type=buyer. Save cart detail in orders and orders_detail table, see each table columns to get an idea what information you need to store in each table. 
Whenever an action is performed by any user, your application shall display related message on next page e.g. product added, product approved, product rejected, shop created, product updated, review saved, product removed, etc.

Use Bootstrap for different elements and layout management. Create a decent design but do not focus much on design, as I am more concerned with functionality. Feel free to use online free or premium template.

For the admin, enter one record in users table and set type=admin, no need to provide add/update features for admin.


  1. Sir could you please provide the ER diagram of Project... to make it easy

  2. ERD and link to SQL Script of schema added in description above.

  3. Sir ,do we have to code for forget password and remember me on login page...?

    1. I suggest you to not ask what is not written in given description, as it would make your task difficult/lengthy. I advise you to implement at least what is explained of high quality. To learn more, definitely you should go ahead and implement more functionality as you said.

  4. sir SQL script which u have added above is not executing in our phpmyadmin.

    1. Run using MySQL Workbench. Could someone share the edit/hack to run, as many students has run it successfully?


Post a Comment