Architectural Design - S3-G31-Kotlin-QueueHub/mobile-app-android GitHub Wiki
App Architectural Styles
The application architectural style that we decided to our application was Client-Server, this is mandatory because we have many devices in which the different stakeholders can access to the information that are centralized in the backend services.
App Architectural Pattern
In our application architecture pattern, we decided to implement MVVM, Android strongly recommended this architecture and Composable (the tool used for build UI) needs that architecture for render the view. In the image you can see the general architecture for app, the model layer is managed by repository that allows to centralize the point of extract information and allows to have local storage and external services, and this information could be synchronized.
Component Diagram and Deployment Infrastructure
There is the components diagram and deploy architecture of our application, each connection has a HTTP protocol. In this sprint we don't have the possibility to deploy that in a computer service but could be better if the communication between app and backend could be in a HTTPS response, and the Analytic and Backend could instantiate in a private network but also in different servers.
Classes Diagram
In general terms, since we follow the MVVM pattern, this is the class diagram of the application. We use a repository to centralize the access point to information and allow for a local database in the case of places. Topics like authentication are accessed through the user repository. It is worth mentioning that we use DAO for local database access, and we also use the repository pattern and dependency injection throughout our code. For facilities the attributes and specifics views are not shown.