High Level Requirements
Overview
- Create a list view summary of the SWAPR devices in the network
- Create a map view summary of the SWAPR devices in the network
- Create graphs using historical SWAPR data
- Create a way to notify operator when there is a problem with an RFF site
- Export data from the database as a .csv file
- Establish a secure website environment with authentication
- Store and serve SWAPR data in a secure manner
- Take data from a SWAPR device and send it securely off-site
- Create data imitating the SWAPR device's output
- Emulate the entire SWAPR device network for stress testing
-
(MVP) Simulator Subsystem
- Functional Requirements
- (MVP) Randomly generate SWAPR data for valid and invalid data
- (MVP) Send data over virtualized com port on RS-232 protocol
- Performance (non-functional) Requirements
- SWAPR data must be generated in at least 5 second intervals
- Virtual com port between simulator and reader must have a 9600 baud rate
-
(MVP) Reader Subsystem
- Functional Requirements
- (MVP) Read data over virtualized com port on RS-232 protocol
- (MVP) Establish a TCP Client connection with the database queue
- Performance (non-functional) Requirements
- Virtual com port between simulator and reader must have a 9600 baud (bd) rate
- Data must be packaged and sent over TCP connection in at least 5 second intervals
-
(MVP) Database Subsystem
- Functional Requirements
- (MVP) Establish a TCP Host connection with the reader subsystems
- (MVP) Queue TCP data collected in AWS SQS
- (MVP) Ability to create database entries from data in AWS SQS queue
- (MVP) Hosting the database server off AWS RDS
- Performance (non-functional) Requirements
- Receive and queue data from tcp connection with reader in under 5 seconds (+/- 1 sec)
- Must be able to build objects for the database for 260 entries within 5 (+/- 5 seconds) seconds.
- At least a year's worth of data must be stored within the database.
-
(MVP) Website Subsystem - Backend
- Functional Requirements
- (MVP) Hosting Blazor Server on AWS
- (MVP) Secure authentication between subsystems as well as “faking” user accounts and role based permissions
- (Extra) Setup windows active directory to manage user accounts and role based permissions
- (MVP) Ability to query the database server in a secure manner
- (MVP) Notification system that detects when there is a problem with an RFF and creates a modal for a specific user group
- (MVP) When in the graphical view of historical SWAPR data the user should be able to export the selected data to a comma separated file
- Performance (non-functional) Requirements
- Must be able to retrieve summary data from the database in at least 2 seconds (+/- 1 second).
- Rendering this data in a visual format using D3.js in under 5 seconds (+/- 5 seconds).
- Must be able to retrieve historical data from the database in at least 2 seconds (+/- 1 second).
- Rendering this data in a graphical format using R in under 5 seconds (+/- 5 seconds).
- Must be able to take historical SWAPR database information and extract to a .csv within 3 seconds (+/- 1 sec)
- Must be able to retrieve the map view of SWAPR devices from the database in at least 10 seconds (+/- 5 second).
- Rendering this data as a map using R in under 5 seconds (+/- 5 seconds).
- Upon a critical event, generate a notification for the relevant SWAPR device in under 2 seconds - ideally virtually instantaneous.
Critical Events:
-
(MVP) Website Subsystem - Frontend
- Functional Requirements
- (MVP) Ability to create a list-view summary of the latest data from all SWAPR devices in the network
- (MVP) Ability to create a map-view summary of the latest data from all SWAPR devices in the network
- (MVP) Ability to create a static graphic view of historical data of one SWAPR device
- (Extra) Have the graphical view be interactive
- Performance (non-functional) Requirements
- Live data dashboard (summary views) refresh every minute.
- Be able to create the list summary view within 6 seconds (+/- 2 secs)
- Be able to create the map summary view within 3 seconds (+/- 1 secs)
- Create map summaries with a total of 18 RFFs displayed on the map. The Area of Responsibility (AOR) describes the expected capacity of RFFs to view in an instance. The AOR for the SWAPR devices is currently set to 18.
- Be able to create static graphs for historical view within 5 seconds (+/- 2 secs).
- Display the critical event notification to the appropriate user within 2 seconds (+/- 1 second).
- Critical Event notifications will not be cleared until the appropriate user selects to clear the queue. Otherwise the notifications will be shown to everyone in the appropriate role until cleared.
-
(Extra) Orchestra Subsystem
- Functional Requirements
- (MVP) Connects any number of simulator and reader subsystems over virtualized com ports for lab environment stress testing
- Performance (non-functional) Requirements
- Be able to create and connect at least one simulator subsystem over RS-232 protocol on virtual com port via the Null Modem (com0com) virtualized serial port emulator.
- Take no longer than 5 seconds for each connection over virtual com port
Environment Requirements
- Windows Environment
- C#
- Visual Studios
- Blazor Server
- Use .NET 5 classes if available and if possible
We have another document that goes over the requirements listed above in more detail here.