Skip to content

AhmedUKamel/E-Commerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


logo
E - Commerce

IntroductionOverviewMain FeaturesDependenciesConfigurationDownloadStart ApplicationHow To UseDocumentationLicense

Introduction

E-commerce, revolutionizes the way businesses and consumers interact in the digital age. It encompasses the buying and selling of products and services over the internet, making transactions seamless and accessible from anywhere with an internet connection.

Overview

schema

Information

Quantity

Lines of Code 7.5K+
Java Classes 240+
Endpoints 130+
Tables 30

Main Features

  • Comprehensive Multilingual Support (Internationalization - i18n)
    • platform offers robust multilingual support (i18n) implemented at both database and coding levels, ensuring seamless communication and user experience across languages
  • Guest Browsing
    • Allow users to view and browse products and categories without requiring account creation, enhancing accessibility and user experience.
  • Role-Based Access Control (RBAC)
    1. Customer: Represents the end-users who browse and make purchases on the platform
    2. Super Admin: Manages system-wide user accounts, with the ability to enable or disable accounts and assign or modify user roles as needed
    3. Admin:
      • Manage categories and sub-categories
      • Manage products and pricing
      • Oversee customer notifications
      • Monitor product reviews and review reports
      • Track demand for unavailable products
    4. Delivery:
      • Access all prepared orders awaiting delivery
      • Manage order statuses and shipment details
    5. Content Creator: Manages advertisements and blog posts
  • Authentication via Json Web Tokens (JWT)
  • OAuth2 with Google and Facebook
  • Mail Sender Service
    • Account Activation Email
    • Forget Password Email
  • Account Management
    • Allow users to manage their profiles, and addresses
  • Category and Sub-category Navigation
    • Explore and refine search results effortlessly by organized categories and sub-categories
  • Wishlist
    • list of favorite products for future reference or purchase, facilitating easy access and organization of desired items
  • Notifications
    • Provide users with the option to receive alerts and notifications for price reductions or product restocks on items saved in their wishlist, ensuring they stay informed about relevant updates and opportunities
  • Product Review and Rating System
    • Enable customers to provide feedback and ratings for products, facilitating informed decision-making for other shoppers
    • Additionally, provide the functionality to report reviews as necessary
  • Order Tracking
    • Allow customers to track the status of their orders in real-time, providing updates from processing to delivery.
  • Compatibility Across Platforms
    • Supported on Linux, macOS, and Windows

Dependencies

  • JDK 17

    • Visit the official Oracle website and choose an operating system file from here
    • Follow the provided installation instructions tailored to your operating system
  • MySQL Installation

    • Download the installer from the official MySQL website here
    • Proceed with the installation steps specific to your operating system

Configuration

  • Write the following commands in MySQL Command Line Client to create user, grant privileges, and create database.
CREATE USER 'ecommerce_user'@'localhost' IDENTIFIED BY 'password_ecommerce';
GRANT ALL PRIVILEGES ON * . * TO 'ecommerce_user'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE e_commerce_api_database;

Download

You can find the JAR file for download by accessing the repository. Simply click Download ZIP on the repository link or click here to access the repository files. Alternatively, you can use Git by following the command below:

git clone https://github.com/AhmedUKamel/E-Commerce.git

Start Application

cd path/to/E-Commerce/output
java -jar ecommerce-0.0.1-SNAPSHOT.jar

Output

INFO 49785 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path ''
INFO 49785 --- [  restartedMain] o.a.ecommerce.EcommerceApplication       : Started EcommerceApplication in x seconds (process running for x)

How To Use

Output

screenshot1

Documentation

To utilize the e-commerce APIs effectively, please refer to the comprehensive documentation provided through Postman. This documentation offers detailed insights into the available endpoints, request parameters, and response formats.

Access the documentation here: Documentation on Postman

License

This project is licensed under the MIT License - see the LICENSE file for details.


Follow me on LinkedIn @ahmedukamel