The mean goal of this project is to build a backend solution of an online shopping web application that revolves around the following main usecases:
- A customer can view products.
- A customer can make purchases.
- A customer can view and update his/her shopping cart.
- A warehouse manager can manage inventory by viewing the list of products, adding new ones or removing existing ones.
- In case a product is out of stock, a customer can subscribe to that product and once it is back in stock, he/she is notified through an email.
Client
- The Client can add or delete from the user table and then it will send a notification to the Subscription microservice.
- If a notification is sent from the admin to add a new product, the client updates its table.
Subscription
- If the admin adds or deletes a product, a notification is sent to Subscription and it will update its table
- If the client adds or deletes a a user, a notification is sent to Subscription and it will update its table
- If the client buys a product, a notification is sent to Subscription and it will update its table (quantity--)
Admin
- If the admin adds a product, it will notify subscription microservice
- If the admin is notified by the subscription, it will update the product table (quality--)