Coder Social home page Coder Social logo

ahmedyahyae / laravel-multi-vendor-e-commerce-application Goto Github PK

View Code? Open in Web Editor NEW
26.0 1.0 16.0 77.04 MB

An extensive multi-vendor e-commerce application with endless features and modules and a dedicated API with Passport authentication

PHP 16.26% JavaScript 18.47% CSS 48.98% Blade 16.29%
api-integration curl laravel laravel-guard laravel-passport multiple-authentication passport-authentication shipping-charges star-rating third-party-integration

laravel-multi-vendor-e-commerce-application's Introduction

Laravel Multi-vendor E-commerce Application (Mega Project)

Multi-vendor E-commerce is a large-scale project/application built with Laravel framework. The application contains comprehensive and feature-rich modules and functionalities. It is designed to provide a robust platform for businesses to create their online marketplaces, allowing multiple vendors to sell their products and manage their stores within a single platform. Additionally, the application has its own dedicated extensive API, which requires authentication using Laravel Passport package.

Frontend technologies used: jQuery, AJAX, and many JavaScript & jQuery libraries and plugins.

Features:

1- Third-pary API Integration (Shiprocket API integration (for shipping and order management services)).

2- PayPal Payment Gateway Integration.

3- Iyzico Payment Gateway Integration.

4- A dedicated extensive API with multiple different endpoints for the application.

5- API authentication using Laravel Passport package.

6- Webhook implemented for inventory/stock update.

7 - Using PHP cURL.

8- Multiple Authentication using Laravel Guards.

9- Multi-level Relationships/Categories.

10- Product Dynamic Filters (using AJAX).

11- Shipping Charges Module (third-party service API integration, product-weight and country-wise shipping charges, etc).

12- Showing Order Shipping Status.

13- Vendor Commissions Module.

14- Coupon Codes Module (single time/multiple times, percentage/fixed).

15- Star Rating and Reviews System.

16- Recently Viewed Products Feature.

17- Order Logs/History.

18- New Arrivals, Discounted Products, Featured Products, Similar Products, and Best-Seller Products Features.

19- Using external libraries and packages such as 'Intervention Image' for image manipulation, 'Dompdf' library for printing PDF order invoices, 'Laravel Excel' package for importing/exporting database tables as Excel files, 'Laravel Barcode/QR Code Generator' to generate barcodes and QR codes for both Product ID and Product Code in order invoices, etc.

20- Using JavaScript libraries and jQuery plugins such as 'DataTables' for adding interaction controls to HTML tables, 'EasyZoom' for zooming product images, etc.

21 - Sending Confirmation Emails (Mailtrap) upon registration, account activation and approval, order shipping status, etc.

22- Sending offline SMSs (upon registration, starting order shipping process, ...).

23- Multiple Delivery Addresses.

24- Website Search Form functionality for products by name, color, and code.

25- User Roles and Permissions (superadmin, admins, vendors, users).

26- User and vendor registration approval by the superadmin.

27- Image & Video Upload Functionality.

28- Dynamically creating and editing Sections and Categories.

29- Dynamic Banner Sliders Module.

30- Dynamic Breadcrumb Navigation.

31- Dynamic SEO/HTML Meta tags.

32- Newsletter Subscription (email).

33- Regular Expression.

34- Database Seeders.

35- Tens of jQuery AJAX requests (update admin password via AJAX, AJAX form validation, ...).

36- Custom AJAX pop-up Mini-Cart.

37- Showing a Preloading Screen upon form submission.

38- TinyMCE WYSIWYG Editor Integrated.

39- Using two Favicons for both the Frontend and Admin Panel Sections of the application.

Screenshots:

Frontend Section Homepage:

frontend-homepage

Product Listing Page:

frontend-product-listing-page

Shopping Cart Page:

shopping-cart-page

Checkout Page:

checkout-page

Admin Panel HomePage:

admin-panel-homepage

Admin Panel Products Management Page:

admin-panel-products-management

Application URLs:

1- Frontend: The public-facing website can be accessed at http://127.0.0.1:8000/. This is where users/customers/members can view categories and products and interact with the website in general. The frontend URL is typically accessible to all visitors of the website.

2- Admin Panel: The Admin Panel for managing the application is available at http://127.0.0.1:8000/admin/login. This secure area is exclusively accessible to authorized administrators where only authenticated superadmin, admins, and vendors can access. It grants access to the administrative functionalities of the application, such as adding new products and their features, orders management, users management, creating and editing website sections and categories, orders shipping management, etc.

Application Routes and API Endpoints:

All application routes & API endpoints are defined in both the web.php file (Frontend and Admin Panel routes) and api.php file (API Endpoints).

API Endpoints:

** Check the application API Collection on my Postman Profile: https://www.postman.com/ahmed-yahya/workspace/my-public-portfolio-postman-workspace/collection/28181483-179adc20-2dcc-426c-a755-5a48da9ca7a4

** Also, you can test the API Endpoints yourself using Postman. Here is the API's Postman Collection .json file API Postman Collection file that you can download and import into your Postman.

Installation & Configuration:

1- Open your terminal, and use the 'git clone https://github.com/AhmedYahyaE/laravel-multi-vendor-e-commerce-application.git' command, or just download the ZIP project.

2- Navigate/Change into (using the cd command) to the project root directory, then run the 'composer install' command.

3- Run the 'npm install' command (and only in case you face any issues/errors, run the 'npm audit fix' command), and then run the 'npm run build' command.

4- Create a MySQL database named `multivendor_ecommerce`, then import the multivendor_ecommerce database SQL Dump File into your `multivendor_ecommerce` database.

5- Navigate to the .env file and configure/update it with your MySQL database credentials and other configuration settings.

6- Run the 'php artisan serve' command, and then open your browser and visit http://127.0.0.1:8000 to access the Frontend section of the application, or http://127.0.0.1:8000/admin/login to access the Admin Panel.

** Ready-to-use registered accounts credentials you can use to log in:

  1. Superadmin (to access the Admin Panel): Email: [email protected], Password: 123456
  1. Vendor (to access the Admin Panel): Email: [email protected], Password: 123456
  1. User (to access the Frontend): Email: [email protected], Password: 123456

Contribution:

Contributions to my Multi-vendor E-commerce Laravel application are most welcome! If you find any issues or have suggestions for improvements or want to add new features, please open an issue or submit a pull request.

laravel-multi-vendor-e-commerce-application's People

Contributors

ahmedyahyae avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

laravel-multi-vendor-e-commerce-application's Issues

CANNOT REGISTER AS A USER

When i try to checkout it asks for me to login or register i tried registering but it gives me error

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.