An e-commerce platform for shopping groceries online, built with Laravel 11
for the backend, and Vue.js with Inertia.js for the frontend. The platform allows users to browse, add products to their cart, and make secure payments online. The frontend layouts are based on the FreshCart template, which I adapted to fit the project's needs.
- User Management: Users can register with
OTP-based email verification
, authenticate usingJWT
, and recover their password via email OTP. They can manage profile settings, update their home or office address, view order history, and delete their account (soft deletion to maintain data consistency). - Product Management: Users can browse products, add them to their cart (stored in local storage), or wishlist (stored in the database).
- Admin Panel: Admins can create and manage product categories, add products, and control stock availability. They can also track orders, manage invoices, and check total sales.
- Payment Integration:
SSLCOMMERZ
payment gateway supports online payments, with both COD andSSLCOMMERZ
options for checkout. - Responsive UI: The frontend is built with
Vue.js
andInertia.js
, providing a dynamic, single-page application experience, with layouts adapted from the FreshCart template.
- Backend:
PHP
,Laravel 11
- Frontend:
Vue 3
,Inertia.js
,Bootstrap
- Database:
MySQL
- Authentication:
JWT
- Payment Gateway:
SSLCOMMERZ
- Libraries:
Quill
,Slick Carousel
,Vue 3 Toastify
, and more.
The platform is designed to provide a modern, secure, and seamless online grocery shopping experience, combining easy navigation, secure authentication, and smooth order management.
- PHP 8.2 or higher
- Composer
- Node.js 20 or higher
- MySQL Database
- Clone the Repository
git clone https://github.com/NahidHassanOfficial/GroceryShop-Ecommerce.git cd GroceryShop-Ecommerce
- Install Backend Dependencies
composer install
- Install Frontend Dependencies
npm install
- Environment Configuration
Copy the .env.example file and rename it to .env
cp .env.example .env
- Generate Key
php artisan key:generate
- Update the .env file with your configuration
- Database credentials
- Mail settings for OTP-based email verification
- Set JWT Key:
JWT_KEY=your_random_generated_key
- Database credentials
- Migrate DB Tables
The --seed will generate some fake data in DB, you can skip that if you don't want to.
php artisan migrate --seed
- Start the application
or,
composer run dev
php artisan serve npm run dev
Hopefully the application is running smoothly on http://127.0.0.1:8000
Note
If you’re not a developer, ensure you have a local server environment (e.g., XAMPP, WAMP, or Laragon) installed. Start the Apache and MySQL services before running the application.