Skip to content

This Spring Boot project consists of two main components: a core E-commerce Service that manages products, carts, and orders, and a separate Notification Service for handling user communications.

Notifications You must be signed in to change notification settings

vishalgiri-git/Spring-Boot-Ecom-with-Notification-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

E-commerce Application with Notification Service

A microservices-based application for a modern e-commerce platform. This repository contains the backend services built with Java and Spring Boot, structured as a monorepo.

The system is composed of two main services:

  1. E-commerce Service: Handles core business logic like product management, user authentication, shopping cart, and order processing.
  2. Notification Service: A dedicated service for sending notifications (like email or SMS) to users in response to events within the platform.

High-Level Architecture Diagram

image

⚑ Performance Optimizations

To enhance the scalability and responsiveness of the application, several optimization techniques have been integrated:

  • Pagination: Efficiently handles large datasets in APIs by limiting the number of records returned per request.
  • Indexing: Database indexing applied to frequently queried fields to speed up data retrieval.
  • Redis Cache: Implements caching layer using Redis to reduce database load and improve response times for commonly accessed data.

πŸš€ Features

E-commerce Service (/Ecom)

  • πŸ‘€ User Authentication & Authorization: Secure user registration and login using Spring Security.
  • πŸ“¦ Product Catalog: Functionality to add, update, view, and delete products.
  • πŸ›’ Shopping Cart: Manage items in a user's cart.
  • πŸ’³ Order Management: End-to-end order placement and tracking workflow.
  • πŸ“’ Event-Driven: Publishes events (e.g., ORDER_PLACED) to a Kafka topic.

Notification Service (/Notification)

  • πŸ“§ Email Notifications: Consumes events from Kafka to send timely emails.
  • πŸ“„ Templated Messages: Uses templates for different notification types (e.g., Order Confirmation, Shipping Update).
  • πŸ”„ Decoupled Architecture: Operates independently of the main E-commerce service, ensuring reliability.

πŸ› οΈ Tech Stack

  • Backend: Java 17, Spring Boot 3
  • Data: Spring Data JPA, Hibernate, MySQL
  • Messaging Queue: Apache Kafka
  • Security: Spring Security
  • Build Tool: Maven
  • (Frontend): React

About

This Spring Boot project consists of two main components: a core E-commerce Service that manages products, carts, and orders, and a separate Notification Service for handling user communications.

Topics

Resources

Stars

Watchers

Forks