Code Monkey home page Code Monkey logo

online-shop's Introduction

online shop

This project is a small and expandable project and design Service-Oriented Architecture (SOA) that allows you to create a small online shop with sales,payment, shipping, warehouse service.

online_shop Diagram

Domains and Context

  • Sales

    • manage products for sale
    • categorize a product
    • update a product
    • change a product price
    • manage user carts
    • manage order rules such as time and discount
  • Warehouse

    • manage goods quantity
    • packing the orders
  • Payment

    • manage payments
  • Shipping

    • dispatch the orders
  • User

    • manage users
    • manage user rules

Event Workflow

The communication among all domains is implemented via events and handled with spring context

  • Sales
    • Cart
    • Catalog
    • Order

Cart

cart context handles all user baskets

Catalog

the catalog has two part Category and Product and handles the overview of products

catalog Diagram

Order

the service that handles the orders then sends event to Payment service

  • Warehouse
    • stock
    • packing

stock

this part of warehouse use for managing the quantity of goods

packing

when all orders left the stock, the packing department packs the box with breakable or normal pack rules the publish an event to sales for pack ready status

  • Payment
    • Payment
    • Contradiction

payment

this part of the System used for order payment, but we must implement the third party service such as PayPal, primary cart and ..

Contradiction

this part of the system is used to resolve the contradiction of the order systematically or manually

Shipping

  • dispatch and delivery

this part of the system handles the delivery and dispatching packs

Requirements

The library works with Java 11+ and spring boot version 2.7 and higher Service Requirement: mysql or another rdbms database

Docker

in the docker folder, I created a sample of service that you want to start the program, and you can run it with installation the docker and run with docker compose up command

Swagger

in the swagger folder, we can detect the documents of our end points

online-shop's People

Contributors

nimamoosavi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.