Skip to content

Modern ecommerce backend with notification feature using RabbitMQ, integrated Stripe for payment, cloud image storage, CI/CD using github actions, Docker and more.

Notifications You must be signed in to change notification settings

htunkhainglynn/ecommerce

Repository files navigation

Ecommerce

This is a comprehensive documentation for the Ecommerce project, a web application that allows users to buy and manage products, place orders, and receive notifications. The project is built using Spring Boot, Spring Security, Spring Data JPA, Hibernate, RabbitMQ for notifications, Stripe for payment processing, Cloudinary for image storage, GitHub Actions for continuous integration, and Swagger for API documentation.

TODOs

  • Build frontend with React
  • Implement user authentication and authorization
  • Add product management functionality
  • Configure payment gateway with Stripe
  • Create API documentation using Swagger
  • Implement push notifications with RabbitMQ
  • Implement cron jobs for automatic balance reports
  • Set up Docker containerization for the application

Table of Contents

Technologies Used

Spring Boot Spring Security Spring Data JPA Hibernate RabbitMQ Stripe Cloudinary GitHub Actions Swagger MySQL Maven Java MongoDB JUnit Mockito Hamcrest

Getting Started

Clone the Repository

  1. Clone the repository from GitHub.

    git clone https://github.com/htunkhainglynn/ecommerce.git
  2. Configure your application properties, including database settings, Stripe API keys, Cloudinary credentials, and RabbitMQ configuration.

  3. Run the application using mvn spring-boot:run.

  4. Access the application at http://localhost:8080.

  5. Login as Admin using admin@gmail.com, password.

  6. Login as User using user@gmail.com, password.

Using Docker

  1. Clone the repository from GitHub.

    git clone https://github.com/htunkhainglynn/ecommerce.git
  2. Create a Docker images using the Dockerfiles.

    cd ecommerce
    cd custom-rabbitmq-image
    docker build -t custom-rabbitmq-image .
    cd ../
    docker build -t ecommerce-image .
  3. Run the docker compose file.

     docker-compose up
  4. Access the application at http://localhost:8080.

  5. Access API documentation at http://localhost:8080/swagger-ui/index.html.

  6. Postman file for testing is in /postman.

  7. Login as Admin using admin@gmail.com, password.

  8. Login as User using user@gmail.com, password.

Usage

Ensure you have set up the project, and the application is running. Users and admins can access the application and its features as described below:

Admin Features

  • Product Management: Create, update, delete, and read products and their variants. Manage product categories.

  • Order Management: View and manage orders. receive order placement notifications.

  • Notification Management: Receive order placement notifications.

  • User Management: View and manage users.

  • Dashboard: Access the dashboard to view order statistics, user statistics, product information, and purchase price timeline.

User Features

  • Order Placement: Create orders, select products, and pay using Stripe.

  • Order History: View past orders and order details.

  • Notifications: Receive notifications when products are delivered.

Dashboard

The dashboard provides a visual overview of key statistics:

  • Total orders placed.
  • Active user count.
  • Total products available.
  • Product purchase price timeline to aid in decision-making.

Cron Jobs

Cron jobs automatically generate balance reports, including income, expenses, and profits, at scheduled intervals.

API Documentation

API documentation is available using Swagger. Access the documentation at /swagger-ui.html when the application is running.

About

Modern ecommerce backend with notification feature using RabbitMQ, integrated Stripe for payment, cloud image storage, CI/CD using github actions, Docker and more.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published