Skip to content

Ahmedabdelaziz77/EZsmart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

EZsmart – Smart Home E-Commerce Platform

EZsmart is a full-stack smart home e-commerce and service platform that combines online shopping, AI-powered recommendations, and professional smart home services into a single integrated system. The platform enables users to purchase smart devices, analyze rooms using AI, request customized smart home solutions, and manage orders, sellers, and services efficiently.


1. Project Overview

EZsmart aims to modernize smart home adoption by providing:

  • A scalable e-commerce marketplace for smart devices
  • AI-assisted decision making for home automation
  • Integrated professional services (consultation, installation, warranties)
  • Role-based dashboards for users, sellers, and administrators

The system is designed to support both individual customers and businesses looking for efficient smart home solutions.


2. System Features

  • OTP-based authentication (passwordless)
  • Smart device marketplace with discounts and coupons
  • AI room analysis and device placement
  • OCR-based bulk product matching
  • Seller onboarding and analytics dashboard
  • Admin management panel
  • Secure payments with Stripe
  • Appointment booking and custom smart home requests

3. Web Application Pages

Authentication

Users authenticate using email-based OTP verification, ensuring secure and user-friendly access without passwords.

Home Page

Introduces the smart home ecosystem, showcasing devices such as lighting, cameras, sensors, speakers, thermostats, and control panels. Users can explore automation ideas, AI features, and promotional offers.

Shop and Products

Users can browse products using category filters, price ranges, and discount percentages. Each product displays pricing, availability, seller details, and wishlist support.

Wishlist

Allows users to save products, monitor discounts, and add items directly to the cart at any time.

Product Details

Displays detailed specifications, images, reviews, ratings, and intelligent product recommendations based on similarity and category matching.

Cart and Checkout

Users can manage quantities, apply coupons, and complete secure payments via Stripe. Address management and transparent billing summaries are included.

Orders

Users can track order status, view order history, cancel eligible orders, and submit product reviews.

Seller Dashboard

Sellers can manage products, track orders, monitor revenue, and view analytics such as monthly income and top-selling categories.

Admin Panel

Admins manage sellers, categories, coupons, appointments, customization requests, and platform activity.


4. AI-Powered Capabilities

Smart Room Assistant

Users upload room images to receive intelligent device placement recommendations using object detection and AI reasoning.

OCR Smart Product Matcher

Users upload images of receipts or Excel-style product lists. The system extracts product data, matches it with available products, and enables bulk cart addition.


5. System Architecture

EZsmart follows a multi-tier architecture:

  • Client Layer: Web and Mobile Applications
  • Backend Layer: Spring Boot REST API
  • AI Layer: Python FastAPI microservice
  • Database Layer: PostgreSQL (deployed on Railway)
  • External Services: Stripe, Email (SMTP)

6. Technology Stack

Backend

  • Java 17
  • Spring Boot 3.4.2
  • Spring Security with JWT
  • Spring Data JPA & Hibernate
  • PostgreSQL (Railway-hosted)
  • Redis
  • Stripe Payments Integration
  • Java Mail (SMTP)
  • Lombok
  • Hibernate Types
  • Faker (Testing & Data Seeding)

Frontend (Web)

Built using Vite + React with a modern component-based architecture.

  • React 18
  • Vite
  • Material UI (MUI)
  • Tailwind CSS
  • Styled Components & Emotion
  • Redux Toolkit & Redux Thunk
  • React Router DOM
  • Axios
  • Formik & Yup
  • Framer Motion
  • Chart.js & React Chart.js
  • Swiper & Slick Carousel
  • React Toastify
  • JWT Decode
  • Day.js & Moment.js
  • AOS (Animations)
  • ESLint

Mobile

  • Flutter (Android & iOS)

AI Services

  • Python FastAPI
  • YOLO Object Detection
  • OCR Engine
  • Large Language Models via API
  • Embeddings for similarity matching

Payments

  • Stripe Checkout
  • Stripe Webhooks

7. API Documentation

Authentication

POST /api/v1/auth/authenticate
POST /api/v1/auth/register
POST /api/v1/auth/request-otp
POST /api/v1/auth/verify-otp

Profile and User

GET    /api/profile
POST   /api/profile
PUT    /api/profile/update
DELETE /api/profile
GET    /api/profile/{userId}

GET    /api/user/addresses
POST   /api/user/addresses

Cart

GET    /api/cart-items
POST   /api/cart-items
PUT    /api/cart-items/{cartItemId}
DELETE /api/cart-items/{cartItemId}
DELETE /api/cart-items/clearAll

Products

GET    /api/products
GET    /api/products/{productId}
GET    /api/products/search
GET    /api/products/filter

Seller:

GET    /api/products/seller
POST   /api/products/seller
PUT    /api/products/seller/{productId}
DELETE /api/products/seller/{productId}
GET    /api/products/sellerProducts/{sellerId}

Admin:

POST   /api/products/admin
PUT    /api/products/admin/{productId}
DELETE /api/products/admin/{productId}

Categories

GET    /api/categories
POST   /api/categories
GET    /api/categories/{id}
PUT    /api/categories/{id}
DELETE /api/categories/{id}

GET    /api/categories/products
GET    /api/categories/{id}/products
GET    /api/categories/seller/top-categories

Favorites

GET    /api/favourites
POST   /api/favourites
GET    /api/favourites/check
DELETE /api/favourites/{id}

Feedback

GET    /api/feedbacks/product/{productId}
GET    /api/feedbacks/user/{userId}
POST   /api/feedbacks/{productId}
DELETE /api/feedbacks/{id}

Orders

GET    /api/orders
POST   /api/orders
GET    /api/orders/{id}
DELETE /api/orders/{id}
PUT    /api/orders/{id}/cancel
PUT    /api/orders/{id}/status
GET    /api/orders/user

Order Items and Seller Analytics

POST   /api/order-items
GET    /api/order-items/{id}
DELETE /api/order-items/{id}
PUT    /api/order-items/{id}/status

GET    /api/order-items/seller
GET    /api/order-items/seller/last-payments
GET    /api/order-items/seller/monthly-revenue
GET    /api/order-items/seller/total-revenue
GET    /api/order-items/seller/stats

Payments

POST /api/payments/create-checkout-session
POST /api/payments/webhook

Coupons

GET    /api/coupons
POST   /api/coupons
GET    /api/coupons/{id}
PUT    /api/coupons/{id}
DELETE /api/coupons/{id}

GET    /api/coupons/active
GET    /api/coupons/code/{code}
GET    /api/coupons/validate
PUT    /api/coupons/{id}/status

Sellers

GET    /api/sellers
POST   /api/sellers
GET    /api/sellers/{id}
DELETE /api/sellers/{id}

GET    /api/sellers/status
GET    /api/sellers/status/{status}
PUT    /api/sellers/{id}/status

Appointments and Offers

GET    /api/appointments
POST   /api/appointments
GET    /api/appointments/{userId}
PUT    /api/appointments/{id}/status

GET    /api/offers
POST   /api/offers
GET    /api/offers/status/{status}
PUT    /api/offers/{id}/status

AI Integration

POST /ai/regenerate-placements
POST /ai/upload/**

8. System Flow Diagram

flowchart TD
    Client --> API
    API --> Auth
    Auth --> Services
    Services --> Database
    Services --> Stripe
    Services --> AI
    Stripe --> API
    AI --> API
    API --> Client
Loading

9. Security

  • JWT-based authentication
  • Role-based access control (User, Seller, Admin)
  • Secure OTP verification
  • Stripe webhook validation
  • Input validation and exception handling

10. Project Demo Video

A complete visual walkthrough of the EZsmart platform, demonstrating system interfaces, user flows, and core functionality is available at the following link:

https://www.canva.com/design/DAGrW9HT-8Q/e_Nr6PKfObFiN-yHcbz9Bw/watch?utm_content=DAGrW9HT-8Q&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h107eef9c2a

The video showcases:

  • Authentication and navigation flows
  • Product browsing, cart, and checkout
  • AI-powered room analysis and OCR features
  • Seller dashboard and analytics
  • Admin management panels

Releases

No releases published

Packages

 
 
 

Contributors