Skip to content

I. Features and Functionality

Frederik Wulf edited this page May 1, 2023 · 10 revisions

This page covers the features and functionality of the ecommerce application and assumes the project is already ready to run.

Content

Swagger UI

Each service automatically creates a Swagger UI. You should find the Swagger UI page for each service at <serviceUrl>/swagger/index.html. The Swagger UI allows you test the services Web API Endpoints.

image

To test the Endpoints:

  1. Click on /api/authentication/register
  2. Click Try it out
  3. Optionally change the POST body data
  4. Click Execute

Then swagger makes a request to the endpoint and you should see a similar result like the following. There you can see the response.

image

Find further informations about swagger here

Feature List

This is a short overview of all features the user can execute via the api:

Feature Service Endpoint Frontend Url
Customer registers new account Account Service POST /api/Authentication/register TBD
Customer loggs into Account Account Service POST/api/Authentication/login TBD
Customer views profile data Account Service GET /api/CustomerProfile TBD
Customer edits Profile data Account Service PUT /api/CustomerProfile TBD
Customer deletes Profile/Account Account Service DELETE /api/CustomerProfile TBD
Customer searches for products Inventory Service GET /api/Products TBD
Customer views single product Inventory Service TBD TBD
Customer adds product to cart Shopping Cart Service PUT /api/ShoppingCart/items/{productId} TBD
Customer removes product from cart Shopping Cart Service DELETE /api/ShoppingCart/{productId} TBD
Customer view cart Shopping Cart Service GET /api/ShoppingCart TBD
Customer checks out cart Shopping Cart Service PATCH /api/ShoppingCart/state/ckeckout
Customer pays order* Fulfillment Service PUT /api/Orders/{orderId}/state/pay
Customer cancels order Fulfillment Service PUT /api/Orders/{orderId}/state/cancel
Adminsitrator ships order Fulfillment Service PUT /api/OrderManagement/{orderId}/state/ship
Order is delivred by logistics service** Fulfillment Service PUT /api/OrderManagement/{orderId}/state/deliver
Adminsitrator views revenue Fulfillment GET /api/revenue TBD
Adminsitrator edit product informations Inventory Service PATCH /api/ProductManagement/{id} TBD
Adminsitrator adds stock Inventory Service PUT /api/ProductManagement/{id}/stock/add TBD
Adminsitrator removes stock Inventory Service PUT /api/ProductManagement/{id}/stock/add TBD
Adminsitrator adds new product Inventory Service POST /api/ProductManagement TBD
Adminsitrator deletes product Inventory Service DELETE /api/ProductManagement/{id} TBD

* Payment is for simplicity reasons a blackbox feature. This feature should usually not be an API endpoint, it should be handled by a payment provider. The application should then automatically validate the payment process at the payment provider.

** Delivery is as well a blackbox feature, with the same reasons as above. After the order has been dispatched, a logistics service provider will usually issue the order. This would require the use of their services to track the status. For that potentially another small service could observe the commissioned logistic service provider could be observed and the parcel state could be directed into the system.

There are also some important features running in the background:

Feature Service
Reservate products when put in shopping cart Shopping Cart Service
Remove products reservation when product is removed from shopping cart Shopping Cart Service
Timeout shopping cart and remove reservation Shopping Cart Service
Remove product stock when products shopping cart is ckecked out Inventory Service
Readd product stock when order is canceled Inventory Service

Web Ui

The Web ui is build in a separate project that can be found here. That project is not necessary.

// TBD add some text how to use and where to find the main feature.

All applications and services

Clone this wiki locally