Architecture - robertAHC/SSW695_Lost-Found GitHub Wiki

Solution Overview

  • Type of application:

The team is proposing to create a web application where via this portal users can have the opportunity to report a missing or found item.

How it will be hosted:

The team is primarily aiming to host this web application on the following platform [AWS]

AWS: https://aws.amazon.com/application-hosting/benefits/

Due to the following reasons:

  • Easy to use

  • Flexible

  • Cost-effective

  • Reliable

  • Scalable and high-performance

  • Secure

Type of users [Any other thoughts]

  • Users: The primary user of this application. The one that could primarely provide feedback on the web application and the one reporting the missing/found item.

  • Admins: The one controlling the administrator part of the system for things like revoking and granting access to the system.

Technology Stacks

Tools:

  • GitHub, Visual Studio Code

Languages:

  • Python, PostgreSQL, HTML, CSS

Frameworks:

  • Bootstrap, Django

Infrastructure (hosting platform):

  • Vercel

Solution Design

High-Level Context View Diagram

C4_Lost_Found_Project - Page 1 (1)

Container Diagram

C4_Lost_Found_Project - Page 2 (3)

Non-functional Requirements

Accessibility:

  • The system shall be accessible to all its intended users.

Capacity:

  • The system shall support at least 500 students at a time.

  • The system can support at least 500 entries to the database at a time.

Availability:

  • The system shall be available to its intended users 99.98 percent of the time (during business hours).

Performance:

  • The system shall be able to support at least 100 simultaneous requests per minute.

  • The system shall provide a response time using Chrome, edge, or Safari in 5 seconds.

  • The system shall be able to complete 99% of all the requests in less than 1 minute.

Security:

  • The system shall use encryption algorithms to safeguard the user’s password (Hashing).

  • The system could but is not limited to bcrpyt, argon2, or scrypt, AWS Pipeline.

  • The system shall lock the user if more than three attempts have been made.

Quality:

  • The team developing the project shall review the code before deploying it.

  • The team shall test the system before deploying the system.

Testability:

  • The system shall offer comprehensive logging and diagnostic capabilities to enable efficient debugging and testing.

Reliability:

  • The system must be able to perform without failure in 99 percent of use cases.

Usability:

  • The system shall feature an intuitive user interface that accommodates users with varying levels of technical proficiency.

Privacy:

  • The system shall adhere to data protection laws (such as GDPR or CCPA) to ensure user data is collected, stored, and processed securely and ethically.

Assumptions

  • The team assumes that the following are met in order to provide a functional and reliable product.

  • The data inserted by the user is accurate and reliable.

  • There will be a robust security measure to ensure the data entered is safe and secure.

  • The infrastructure can be scalable depending on how big and complex we want this application to be.

  • Comprehensive error handling will be in order.