diff --git a/docs/04_solution_strategy.adoc b/docs/04_solution_strategy.adoc index 359df6b..24b581c 100644 --- a/docs/04_solution_strategy.adoc +++ b/docs/04_solution_strategy.adoc @@ -1,18 +1,18 @@ [[section-solution-strategy]] == Solution Strategy -=== 4.1 Technology Decisions +=== Technology Decisions -==== 4.1.1 Technology Stack +==== Technology Stack In order to _develop_ the application and fullfil the constraints we decided to use the following _technologies_: * *MongoDB*: we chose to use _MongoDB_ during our last meeting on the 14th of February. Also _Mongoose_ for simplifying everything up. * *SOLID specification*: lets people store their data securely in decentralized data stores called _POD_. * *React.js*: is a _JavaScript_ library for creating UIs for web applications that is easy to learn. -=== 4.2 Top-level Decomposition +=== Top-level Decomposition -==== 4.2.1 IDE +==== IDE Our choice is _Visual Studio Code_ mainly because is available for many platforms such as _Windows_, _MacOS_ or _Linux_ and via _plug-ins_ it supports many programming languages and can be easily enhanced. _Git_ is a built-in feature included for _version control_. ==== Diagramming tools diff --git a/docs/07_deployment_view.adoc b/docs/07_deployment_view.adoc index f9c4e5a..8c09c44 100644 --- a/docs/07_deployment_view.adoc +++ b/docs/07_deployment_view.adoc @@ -6,37 +6,43 @@ [plantuml, "07_DeploymentView", png] ---- node AzureServer{ - node DockerContainer { - component RestApi + node DockerContainer1 { + component RestAPI + } + node DockerContainer2 { + component WebApp + } + node DockerContainer3 { + component CarrierAPI } } node UserDevice { node WebBrowser { - component WebApp + component WebAppImage } } -database DatabaseServer { +database MongoDBAtlas{ component MongoDB } Actor User cloud SOLID_POD -cloud CarrierAPI cloud BingMaps cloud Geoapify cloud PayPalAPI -RestApi -u-> MongoDB : "access information" -WebApp -l-> SOLID_POD : "access user data" -WebApp -l-> BingMaps : "provides maps and route image" -WebApp -r-> Geoapify : "get near places" -WebApp -r-> PayPalAPI : "provides paying system" -RestApi -d-> WebApp : "supply data" -RestApi -r-> CarrierAPI : "calculate routes prices" -WebApp <-d- User +RestAPI -u-> MongoDB : "access information" +WebAppImage -d-> SOLID_POD : "access user data" +WebAppImage -d-> BingMaps : "provides maps and route image" +WebAppImage -d-> Geoapify : "get near places" +WebAppImage -r-> PayPalAPI : "provides paying system" +RestAPI -l-> WebApp : "supply data" +WebApp -r-> CarrierAPI : "request routes prices" +WebApp -d-> WebAppImage : 'shows on user device' +WebAppImage <-l- User ---- .Motivation diff --git a/docs/08_concepts.adoc b/docs/08_concepts.adoc index adb60f6..87d51d3 100644 --- a/docs/08_concepts.adoc +++ b/docs/08_concepts.adoc @@ -5,12 +5,9 @@ [plantuml, "DomainModel", png] ---- object User{ - name : String webId : String - email : String - password: String role : String - verified : boolean + isVerified : boolean } object Product{ @@ -20,24 +17,33 @@ object Product{ price: double stock: int image: String + category: String + weight: double } object Order{ - orderCode: String - totalPrice: double + code: String + webId: String + address: String + products: Product[] + date: Date + subtotalPrice: double shippingPrice: double - orderReceived: boolean + totalPrice: double + receivedDate: Date } object Review{ + webId: String + productCode: String rating: int comment: String } -User *--> Order +Order *--> User Order o--> Product -Product *--> Review -User *--> Review +Review *--> Product +Review *--> User ---- === Security diff --git a/docs/09_design_decisions.adoc b/docs/09_design_decisions.adoc index 168ab45..623c1f9 100644 --- a/docs/09_design_decisions.adoc +++ b/docs/09_design_decisions.adoc @@ -75,6 +75,13 @@ Those are the different decisions we have taken for developing our project. They | Users all around the world will be able to connect to our application! | It's the first time we do this process, that is, some troubles are arising. More in more, we have never worked with Docker. | https://github.com/Arquisoft/dede_en2a/wiki/ADR-%2313%3A-Application-hosting[ADR #13] + +| *Orders resume* +| Users will be able to download a PDF with a resume of the order after making it (and on their dashboards) +| We had many problems while trying to acomplish this feature, with creation of PDFs, sending emails and package installations (as stated next) +| https://github.com/Arquisoft/dede_en2a/wiki/ADR-%2314%3A-Email-with-order-resume[ADR #14] + + |=== === Deprecated decisions