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
Container Diagram
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.