Skip to content

Commit

Permalink
Merge pull request #107 from Arquisoft/newIntegrationFinalPR
Browse files Browse the repository at this point in the history
Update documentation and url diagrams
  • Loading branch information
Manuhcuartas authored May 4, 2023
2 parents 820cd7c + e609e5b commit 5051d3e
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 62 deletions.
27 changes: 13 additions & 14 deletions docs/01_introduction_and_goals.adoc
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
[[section-introduction-and-goals]]
== Introduction and Goals
LoMap is an application designed for citizens in order to allow them to personalize their city map.
LoMap is a software system being developed as a university project. It is designed to help citizens create personalized maps of places and local businesses in their city.

For that matter , users of LoMap will be allowed to do such things as leaving reviews of establishments, monuments or any other place of the city; as well as pinning those places they want to visit or have visited already.
The aim of the project is to develop a generic software solution that can be deployed and used in other cities as well. The system will allow users to add locations in different categories like shops, bars, restaurants, sights, monuments, etc. and show them in a map window. Users will also be able to add review scores, comments, pictures, and more about the added places. The shared information will be stored in a personal pod according to the SOLID project.

LoMap will also be a tool for establishment owners to boost their businesses digitally by allowing them to have their own space on the map.
The project's initial focus is on the user, allowing them to create their personal map of the places they live. Users can manage the information that is accessible to either themselves or all of their friends. The system will allow users to see places and information about those places taken from their friends.

In brief, LoMap is more than a Map application , but a tool for cities to develop and offer their best to anybody that is interested in visiting them. Powered by its own inhabitants honest opinions, the city will open itself to outlanders allowing them to know places they probably would have never reached.
[role="arc42help"]
****
Describes the relevant requirements and the driving forces that software architects and development team must consider. These include
Expand All @@ -21,18 +20,18 @@ Describes the relevant requirements and the driving forces that software archite

*All LoMap* Users will be able to:

* [x] Add locations and categorize them between a wide range of options, for example as restaurants or bars.
* [x] Leave reviews and multimedia of their experiences in such places.
* [x] Stablish friendships , meaning that , they will be able to access all the contents other users label as friend-only.
** Users will be able to decide, then, if their posts are shared with all users, their friends only or remain accesible to themselves only.
* [x] Filter the contents being displayed in the map by different parameters such as it being friend-content, it's category...
* [x] Add locations in different categories like shops, bars, restaurants, sights, monuments, etc.
* [x] Add review scores, comments, pictures, and more about the added places.
* [x] See places and information about those places taken from their friends
** Users will be able to decide, then, if their posts are shared with their friends only or remain accessible to themselves only.

In further of stages of the project, _stablishment owners & public entities_ will be able to:
In further of stages of the project:

* [x] create public map locations for their businesses
* [x] _Establishment owners and public entities_ will be able to create public map locations for their businesses
* [x] _Users_ will be able to decide what city are the living in.
- [x] _Users_ will be able to personalized the set of friends the locations will be shared to.


Keeping privacy in mind, all of the above, will be supported by the **SOLID project specification **, making use of **SOLID Pods ** for individual data storage. This way , users will be in full control of *which* information they share *and of who* they are sharing it to.
Keeping privacy in mind, all of the above, will be supported by the **SOLID project specification **, making use of **SOLID Pods ** for individual data storage. This way, users will be in full control of *which* information they share *and of who* they are sharing it to.

_More details are described in the following document: https://arquisoft.github.io/course2223/labAssignmentDescription.html[LoMap Assigment Description]_

Expand Down Expand Up @@ -61,7 +60,7 @@ Keep these excerpts as short as possible. Balance readability of this document w

|Privacy
| Data will only be shared with those parties the owner agrees to.
| The user pins his/her own home in the map, and wants it to remain private, and not accesible to other users.
| The user pins his/her own home in the map, and wants it to remain private, and not accessible to other users.
It will be stored in his/her own POD, and won't be shared with any other user nor party.


Expand Down
66 changes: 31 additions & 35 deletions docs/05_building_block_view.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
.Content
The building block view shows the static decomposition of the system into building blocks (modules, components, subsystems, classes,
interfaces, packages, libraries, frameworks, layers, partitions, tiers, functions, macros, operations,
datas structures, ...) as well as their dependencies (relationships, associations, ...)
data structures, ...) as well as their dependencies (relationships, associations, ...)
This view is mandatory for every architecture documentation.
In analogy to a house this is the _floor plan_.
Expand Down Expand Up @@ -126,33 +126,30 @@ cloud {
}
database "Someone else's Solid POD" as Pod2 {
folder "else's Private Data" {
[else's data] as data2
[else's reviews] as review2
[else's friends] as friend2
[else's locations] as Loc2
folder "FriendID/private/lomapen3b" {
folder "img"
[else's reviews] as review1
[else's locations] as Loc1
}
folder "else's Only Friend's Data" {
[else's reviews] as reviewF2
[else's locations] as LocF2
folder "FriendID/public/lomapen3b" as PODF{
[reviews] as reviewF2
[locations] as LocF2
folder "img" as im1
}
}
database "Solid POD" as Pod1 {
folder "Private Data" {
[data] as data1
[reviews] as review1
[friends] as friend1
[locations] as Loc1
folder "user/private/lomapen3b" {
[reviews] as review3
folder "img" as img2
[locations] as Loc3
}
folder "Only Friend's Data" {
folder "user/public/lomapen3b" {
[reviews] as reviewF1
[locations] as LocF1
folder "img" as img3
}
}
node "LoMapUI" as LoMapFE {
Expand All @@ -161,7 +158,6 @@ node "LoMapUI" as LoMapFE {
node "LoMap" as LoMapBE {
[Controller] as crl
[SessionManager] as ssmng
[podHandler] as PODHdr
[podAccess] as PODAcc
[Location] as Loc
Expand All @@ -171,27 +167,27 @@ node "LoMap" as LoMapBE {
}
UI --> MapP : request Map (changes)
MapP --> UI : return changes
UI --> crl : request changes
crl --> PODAP : request Data
PODAP --> crl : return Data
crl --> UI : update values
crl --> Utl
ssmng --> PODAcc
UI --> PODHdr : request data from POD
MapP --> UI : return map
UI --down-> crl : request changes
PODAcc --> PODAP : request Data
PODAP --> PODAcc : return Data
crl -up--> UI : update values
crl --right-> Utl :Conversion
crl --> PODAcc :write
PODAcc --> crl :read
crl -> PODHdr : request data from POD
PODHdr ---> PODAP : request data changes
PODAcc ---> PODAP : request data changes
PODAcc --> Utl :Conversion
PODAP --> Pod1
PODAP --> Pod2
PODAP --left-> PODF
crl --> ssmng
ssmng --> U
U --> Loc
Loc --> Rev
crl --> U
U --> Loc :has
U --> Rev :has
----

[role="arc42help"]
****
Here you can specify the inner structure of (some) building blocks from level 1 as white boxes.
Expand Down
20 changes: 7 additions & 13 deletions docs/08_concepts.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -55,20 +55,16 @@ image:08-Crosscutting-Concepts-Structure-EN.png["Possible topics for crosscuttin
----
title LoMap Object Diagram
object Review
object Location
object Map
object User
object Controller
object SessionManager
object ReviewLM
object LocationLM
Location o-- Review
Map o-- Location
User o-- LocationLM
User o-- ReviewLM
User o-- Location
Controller -right- SessionManager :uses
SessionManager -- User
Controller -- User :has
----

Expand All @@ -77,18 +73,16 @@ SessionManager -- User
=== Architectural and design patterns

For this application we choose to use the Modular Monolith Architecture.


The modular monolithic architecture consists of dividing our logic first into modules, and each module will be independent and isolated. Then, each module should have its own business logic. The system will only have one database.

The two modules the app is using is Locations and reviews. The are being stored into the POD independently and also retrieve. Even though we have some logic to keep things stuck together since a review must have a location associated, also we must be done by a user.

=== Testability

We will use Unit Testing in order to assume that the development of this application goes as planed without having any functioning issues. Before implementing a new functionality we must be sure that the actual version of the application passes all our test and satisfies all our scenarios until that moment. We will test separately every part of our code.

=== Protection and Security

One of the main priorities of LoMap is to ensure our clients a about their privacy giving them the option to choose with who they want to share their data and with who they want to interact to by using the app.
One of the main priorities of LoMap is to ensure our clients a about their privacy giving them the option to choose with who they want to share their data.
The app will be secure as every user's data will be safely saved in a POD.

Everybody using the app should trust it.
Expand Down

0 comments on commit 5051d3e

Please sign in to comment.