Skip to content

This is a comprehensive eCommerce platform developed using Spring Boot, MySQL, React JS, Postman, and Swagger. It is designed to offer efficient back-end processing, a dynamic front-end, and a secure and reliable user experience.

Notifications You must be signed in to change notification settings

TechThrives/eCommerce-Application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Digital eCommerce Platform

Overview

This is a comprehensive eCommerce platform developed using Spring Boot, MySQL, React JS, Postman, and Swagger. It is designed to offer efficient back-end processing, a dynamic front-end, and a secure and reliable user experience.

Technologies Used

  • Back-End: Spring Boot
  • Database: MySQL
  • Front-End: React JS
  • API Testing: Postman
  • API Documentation: Swagger

Features

  • JWT Authentication: Implemented to enhance security and user authorization.
  • Distinct User Interfaces: Designed for both administrative management and customer interactions, resulting in intuitive and user-friendly experiences.
  • API Documentation: Integrated Swagger for interactive API documentation and testing.

Description

This eCommerce platform aims to streamline order processing and user management. It utilizes Spring Boot and MySQL for efficient back-end processing and React JS for a dynamic front-end. JWT authentication is used to ensure a secure and reliable user experience. Additionally, the platform features distinct user interfaces tailored for administrative management and customer interactions, providing an intuitive and user-friendly experience. Swagger is included for interactive API documentation, making it easier to explore and test API endpoints.

Installation

1. Clone the Repository

git clone https://github.com/TechThrives/eCommerce-Application.git
cd eCommerce-Application

2. Set Up the Back-End

  • Navigate to the backend directory

cd backend
  • Install dependencies using Maven

./mvnw install
  • Configure Application Properties

    In the root directory of your Spring Boot project, create a file named .env.

    Open the .env file and add the following environment variables:

    • APPLICATION_NAME: The name of the application.

    • DATASOURCE_URL: The URL for the MySQL database.

    • DATASOURCE_USERNAME: The username for MySQL database access.

    • DATASOURCE_PASSWORD: The password for MySQL database access.

    • DATASOURCE_DRIVER: The driver class name for MySQL.

    • JPA_HIBERNATE_DDL_AUTO: Hibernate DDL auto configuration (e.g. update, create).

    • JPA_SHOW_SQL: Whether to show SQL statements in logs (true or false).

    • JPA_OPEN_IN_VIEW: Whether to keep Hibernate session open during the view rendering (true or false).

    • JPA_GENERATE_DDL: Whether to generate the database schema (true or false).

    • DEVTOOLS_LIVERELOAD_ENABLED: Whether LiveReload is enabled for Spring Boot DevTools (true or false).

    • LOGGING_LEVEL_ROOT: Logging level for the root logger (e.g. INFO, DEBUG).

    • LOGGING_LEVEL_SPRING_WEB: Logging level for Spring Web components (e.g. INFO, DEBUG).

    • MVC_VIEW_PREFIX: Prefix for view paths in MVC configuration.

    • MVC_VIEW_SUFFIX: Suffix for view paths in MVC configuration.

    • JWT_SECRET_KEY: Secret key used for JWT authentication.

    • JWT_ACCESS_TOKEN_EXPIRATION: Expiration time for access tokens.

    • JWT_REFRESH_TOKEN_EXPIRATION: Expiration time for refresh tokens.

    • MULTIPART_ENABLED: Whether multipart file uploads are enabled (true or false).

    • MULTIPART_MAX_FILE_SIZE: Maximum file size for multipart uploads.

    • MULTIPART_MAX_REQUEST_SIZE: Maximum request size for multipart uploads.

    • CLOUDINARY_CLOUD_NAME: Cloud name for Cloudinary configuration.

    • CLOUDINARY_API_KEY: API key for Cloudinary.

    • CLOUDINARY_API_SECRET: API secret for Cloudinary.

    • USER_PROFILE_IMAGE_URL: Default URL for user profile images.

    • STRIPE_SECRET_KEY: Secret key for Stripe integration.

    • MAIL_HOST: The mail server’s hostname.

    • MAIL_PORT: The port to connect to the mail server.

    • MAIL_USERNAME: The username for the mail server.

    • MAIL_PASSWORD: The password for the mail server.

    • MAIL_DEBUG: Enable or disable mail debugging.

    • BASE_URL: Base URL for the Front-End Shop.

    Ensure your Spring Boot application is configured to load environment variables from the .env file.

  • Run the Back-End Server

./mvnw spring-boot:run

3. Front-End - Admin

  • Navigate to the Admin Front-End Directory

cd frontend-admin
  • Install Dependencies

npm install
  • Configure Environment Variables

    In the root directory of your React App, create a file named .env.

    Open the .env file and add the following environment variables:

    • REACT_APP_BACKEND_URL: Defines the base URL of the backend server.

    By setting these environment variables, you ensure that your React app can properly interact with external services and configurations.

  • Run the Admin Front-End Server

npm start

4. Front-End - Shop

  • Navigate to the Shop Front-End Directory

cd frontend-shop
  • Install Dependencies

npm install
  • Configure Environment Variables

    In the root directory of your React App, create a file named .env.

    Open the .env file and add the following environment variables:

    • REACT_APP_BACKEND_URL: Defines the base URL of the backend server.

    • REACT_APP_STRIPE_PUBLISHABLE_KEY: Contains the publishable key for integrating with Stripe's payment gateway.

    • REACT_APP_TAX_RATE: Specifies the tax rate to be applied in the application.

    By setting these environment variables, you ensure that your React app can properly interact with external services and configurations.

  • Run the Shop Front-End Server

npm start

5. Access the Application

Contributing

We welcome contributions from the community. To contribute to this project, please follow these guidelines:

  • Fork the repository
  • Create a new branch for your feature or bug fix
  • Make your changes and ensure they are well-tested
  • Create a pull request to the main branch of the original repository

Developers

About

This is a comprehensive eCommerce platform developed using Spring Boot, MySQL, React JS, Postman, and Swagger. It is designed to offer efficient back-end processing, a dynamic front-end, and a secure and reliable user experience.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5