Skip to content

mdfadhih/EasyOrder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyOrder – Online Grocery Ordering Web App

React Bootstrap JavaScript Deployment

EasyOrder is a responsive grocery ordering web application built using React and Bootstrap.
The platform allows customers to browse grocery products, filter by category, add items to a shopping cart, and submit an order via WhatsApp integration.

The application demonstrates modern frontend development concepts, including component-based architecture, state management with React Hooks, dynamic UI updates, and user interaction flows commonly used in e-commerce platforms.


Live Demo

Add your deployed link here after deployment.

https://easy-order-one.vercel.app


Project Overview

EasyOrder was designed as a lightweight grocery ordering interface that simplifies the ordering process for customers.

Users can:

  • Browse products
  • Search items dynamically
  • Add or remove products from the cart
  • View live price calculations
  • Submit orders directly through WhatsApp

This project showcases practical frontend development skills including:

  • React component architecture
  • State management using React Hooks
  • Dynamic rendering of product datasets
  • Shopping cart logic
  • Responsive UI development
  • Modal image previews
  • External messaging integration

Architecture Overview

User
 │
 ▼
React Frontend (EasyOrder)
 │
 ├── Header
 ├── Navigation Bar
 ├── Product Catalog
 ├── Shopping Cart
 ├── Checkout Form
 │
 ├── Product Dataset (data.js)
 ├── Category Dataset (cat.js)
 │
 ▼
WhatsApp Order API
 │
 ▼
Customer Order Sent via WhatsApp

Core Features

Product Catalog

Products are dynamically rendered using a structured dataset stored in data.js.

Each product contains:

  • Product image
  • English name
  • Tamil name
  • Price
  • Unique ID

This makes it easy to expand the product catalog by updating a single data file.


Category Navigation

Products are grouped into categories such as:

  • Promotions
  • Rice
  • Dal
  • Salt

A category navigation bar allows users to quickly jump to different product sections.


Search and Filter

Users can filter products dynamically by typing in the search field.

The filtering system updates the product list in real time using JavaScript logic in React state.


Shopping Cart

Customers can:

  • Add products to cart
  • Increase quantity
  • Decrease quantity
  • Remove items automatically when quantity reaches zero

Cart updates are handled using React state management.


Dynamic Price Calculation

The application automatically calculates:

  • Product subtotal
  • Delivery or service charge
  • Final payable amount

All calculations update instantly when items are added or removed.


WhatsApp Order Integration

Instead of a traditional checkout system, EasyOrder generates a formatted order summary and redirects the user to WhatsApp.

The order message contains:

  • Unique order ID
  • Product list with quantities
  • Total price
  • Customer information
  • Additional customer notes

This workflow is useful for small businesses that manage orders through messaging platforms.


Product Image Preview

Users can click product images to view a larger preview using a modal window.

This enhances the product browsing experience.


Responsive Layout

The interface uses Bootstrap and React Bootstrap components to ensure the layout adapts to both desktop and mobile screens.


Tech Stack

Frontend

  • React
  • JavaScript
  • React Bootstrap
  • Bootstrap CSS

UI Components

  • React Hooks (useState, useEffect)
  • React Modal
  • React Icons

Data Management

  • Local product dataset (data.js)
  • Category dataset (cat.js)

Order Integration

  • WhatsApp message API link

Deployment

  • Vercel
  • Netlify
  • GitHub Pages

Project Structure

EasyOrder/
│
├── public/
│
├── src/
│   ├── components/
│   │
│   ├── Basket.js
│   ├── cat.js
│   ├── data.js
│   ├── Footer.js
│   ├── Header.js
│   ├── Main.js
│   ├── NavigationBar.js
│   └── Product.js
│
├── App.js
├── index.js
├── App.css
│
├── package.json
└── README.md

Component Breakdown

App.js

The main application controller responsible for:

  • managing cart state
  • handling add/remove actions
  • filtering products
  • calculating pricing
  • generating WhatsApp order messages

Header.js

Displays the main application header and branding.


NavigationBar.js

Provides category navigation and filtering functionality.


Main.js

Renders grouped product sections and dynamically displays products.


Product.js

Displays individual product cards with:

  • image
  • product name
  • price
  • add-to-cart button
  • modal image preview

Basket.js

Handles:

  • cart display
  • quantity adjustments
  • customer information form
  • order submission

Footer.js

Displays a summary of the cart when items exist.


data.js

Contains the structured dataset used to generate the product catalog.


cat.js

Defines product categories used for navigation.


Application Workflow

Step 1 — Browse Products

Users view the product catalog on the homepage.


Step 2 — Filter or Search

Products can be filtered using category navigation or the search bar.


Step 3 — Add Items to Cart

Selected items are added to the cart and quantities are updated dynamically.


Step 4 — Review Pricing

The cart automatically calculates the total cost.


Step 5 — Enter Customer Details

Users provide:

  • Name
  • Phone number
  • Address
  • Postal code
  • Optional notes

Step 6 — Submit Order

The system generates a formatted WhatsApp message and redirects the user to WhatsApp to send the order.


Example Order Flow

Example order message generated by the system:

New order (# AB123)

2x Ooty Ponni Rice
1x Rusi Toor Dal
1x TATA Salt

Payable: S$ 13.20

Customer details:
John Doe
91234567
Singapore
123456

Note:
Leave at door

Key Learnings

This project demonstrates practical frontend development concepts such as:

  • reusable React components
  • managing UI state
  • implementing shopping cart logic
  • dynamic product rendering
  • UI responsiveness
  • real-world ordering workflows

Challenges Solved

During development several technical challenges were addressed:

  • resolving outdated dependency issues
  • fixing React DOM attribute errors
  • replacing unavailable package libraries
  • restoring broken cart logic
  • handling missing product images
  • simplifying notification systems

These improvements helped stabilize the application.


Future Improvements

Possible enhancements include:

  • adding a backend API and database
  • implementing authentication
  • integrating online payment gateways
  • improving product search
  • adding order history tracking
  • migrating to a modern React build system
  • adding admin dashboard for product management

Project Screenshots

Home Page

Cart Page

product Page


Installation

Clone the repository:

git clone https://github.com/your-username/EasyOrder.git
cd EasyOrder

Install dependencies:

npm install

Start development server:

npm start

Open browser:

http://localhost:3000

Deployment

This project can be deployed using:

  • Vercel
  • Netlify
  • GitHub Pages

For portfolio presentation, Vercel is recommended because it provides simple CI/CD deployment directly from GitHub.


Why This Project Matters

EasyOrder demonstrates how a simple frontend application can solve a real-world ordering workflow without requiring complex backend infrastructure.

The project highlights practical software engineering skills, including:

  • user-centered interface design
  • component-based architecture
  • scalable UI structure
  • real-time state updates
  • messaging-based order workflows

These skills are highly relevant for frontend and full-stack development roles.


Author

Mohamed Fadhih

GitHub: https://github.com/mdfadhih
LinkedIn: https://www.linkedin.com/in/fadhih/ Portfolio: https://my-portfolio-seven-tawny-79.vercel.app/


License

This project is intended for educational and portfolio purposes.

About

WhatsApp ordering system with product listing, cart functionality, and responsive UI.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors