Skip to content
This repository has been archived by the owner on Dec 11, 2023. It is now read-only.

Architectural Requirements Document

TumiPare edited this page Jun 24, 2023 · 17 revisions

Architectural Requirements Document

Architectural Design Strategy

Decomposition Strategy

This strategy breaks the system up into smaller factors which makes reasoning large complex problems easier

Architectural Strategies

Architectural Quality Requirements

Mobility

The application should work anywhere and at anytime.

Usability

The app should be usuable

Reusability

The app should be reusable, such that users can use it more than once to find routes and access other services.

Efficiency

The application should be able to provide the user of his needs without the user having to wait for the application for a long time.

Credibility

The user should be able to rely on the application to give accurate routes and accurate information on load shedding schedules.

Security

One shouldn't be able to sniff and steal another's personal data.

Scalability

The application needs to expand to in order to provide services for more areas. The database should be scalable to allow more data to come in.

Architrectural Design and Pattern

Architectural Constraints

Limit locations to the city of Tshwane

Becuase of the project delivarable time, it is not feasable to map the application to the whole of South Africa.

Mapping data to spatial data

Not all the data we have will be represented becuase of the lack of spatial data. This leads to following point: suburb extensions would be exluded.

Exclusion suburb extensions.

Example: instead of showing the load shedding schedules for Menlopark extension 3, we would only show Menlopark as a whole.

Out of date Data

We only have suburb data from the 2011 census

Technology Choices

Figma – To design wireframes and mockups for planning purposes.

Angular Ionic – Develop Front-End for mobile and desktop web apps

Rust Rocket – API, Reason for using Rust Rocket is guaranteed type safety and speed.

MongoDB – Database to store everything needed.

AWS (Amazon Web Services) EC2 Hosting – Will do all our hosting needs on a virtual Linux machine.

GitHub – Used for version controlling the repository.

GitHub Project Board – For project management, issue tracking and user stories.

Clone this wiki locally