BookStore is a book sales store selling reading-related articles, which has defined that online sales are the next step in their business goals. Such sales need to have an additional cost since the transactions will be performed by a third-party banking system.
Besides that they want to keep a registry of all sales, books inventory and books data, this is meant for possible marked analysis and customer experience studies.
For the future mobile support must be possible, so this is an application with possible expansion in the long-term. From the identified use cases we just take the most simple one for our example:
* Realizar una compra de libros
Now, applying what we have from DCI and our personal experience we defined the following architecture for the application.
<img src="/doc/tip/doc/img/demo_app_02.png" height="300"/>
As you can see there's a clear border between the application and the exterior, having the adapters as only interactors between both worlds we ensure that the application's functionality will be in a single place, having multiple access methods.
Once you run the application you will have a clean web-UI adapter that runs the intended application in a very raw form.
<img src="/doc/tip/doc/img/demo_app_01.png" height="400"/>