Skip to content

Requirements

Ethan Speer edited this page Oct 7, 2022 · 22 revisions

Features to be organized

Logging In / Out

  • 1.01. Users can login ** R**

  • 1.02. Users can logout ** R**

  • 1.03. Logged in users cannot login ** R**

  • 1.04. Logged out users cannot logout ** R**

  • 1.05. Users must have a unique username ** R**

  • 1.06. Usernames and passwords are case sensitive ** R**

  • 1.07. Users must have a unique email ** R**

  • 1.08. Users can only login using valid credentials ** R**

  • 1.09. Users can # (create accounts) ** R**

  • 1.10. User passwords must be at least 10 characters

  • 1.11. User passwords must contain at least 1 capital letter

  • 1.12. User passwords must contain at least 1 lowercase letter

  • 1.13. User passwords must contain at least 1 symbol

  • 1.14. User passwords must contain at least 1 number

  • 1.15. Users can hide/reveal their passwords when logging in/signing up

  • 1.16. When a user presses the log out button, a confirmation dialog will show

  • 1.17. Users can reset their password with a Forgot My Password button and email

Navigation

  • 2.01. Users can move upwards through the hierarchy of the device map

  • 2.02. Users can move downwards through the hierarchy of the device map

  • 2.03. Users will be able to Log Out at any point within the device map

  • 2.04. Users will be able to access all devices on the current layer of the device map

  • 2.05. Users will be able to access all layer connectors on the current layer of the device map

  • 2.06. Users may access all layer levels on any layer of the device map

  • 2.07. Users may move to any layer level from any layer of the device map

  • 2.08. Users can reorder layers on the navigation menu

  • 2.09. Users can reorder devices within layers on the navigation menu

Adding/Editing Layers/Devices

  • 3.01. Users can add layers to the map including an image and a name

  • 3.02. Users can edit layers already on the map (change image and name)

  • 3.03. Users can add devices to the map including an image and a name

  • 3.04. Users can edit devices already on the map (change image and name)

  • 3.05. Users can add a device to a specific location on a map layer

  • 3.06. Users can change the map location of previously placed devices

  • 3.07. Users can change the layer of previously added devices

  • 3.08. Layers must have unique names

  • 3.09. Devices must have unique names and IPs

Deletion

  • 4.01. Users can delete their accounts

  • 4.02. Users can delete devices

  • 4.03. Users can delete layers

  • 4.04. When users elect to delete accounts, devices, or layers, confirmation dialogs will show

Errors

  • 5.01. An error message will show when a user tries to # with a username which is already in the database

  • 5.02. An error message will show when a user tries to # with an email which is already in the database

  • 5.03. An error message will show when users do not satisfy requirements 1.11, 1.12, 1.13, and 1.14

  • 5.04. An error message will show when users try to login with invalid credentials

  • 5.05. An error message will show when users try to add a device name or IP that is already in the database

  • 5.06. An error message will show when users try to add a layer name that is already in the database

Settings

  • 6.01. Users can access a settings screen by clicking the settings button

  • 6.02. Users can change the color scheme of the app (light/dark mode)

Running Scripts

  • 7.01. Users will be able to run one verified script at a time per device

  • 7.02. Users will be able to see the output of scripts run on a device

  • 7.03. Users will be able to stop a script that has not completed

Database

  • 8.01. All user passwords will be stored securely using a cryptographically secure hashing algorithm

  • 8.02. The storage of passwords will be done through use of the bcrypt Go package

  • 8.03. All user data will be stored in a MySQL database

  • 8.04. All device data will be stored in a MySQL database

  • 8.05. All layer data will be stored in a MySQL database

Misc.

  • 9.01. Different privilege level users

  • 9.02. Users can ping devices

  • 9.03. Users can view a response from pinging devices

  • 9.04. Users can drag-and-drop devices from the navigation menu to the layer images to position them

  • 9.05. Users can drag-and-drop devices to different layers on the navigation bar

  • 9.06. When navigating between layers on the map a transition animation will display

Clone this wiki locally