Skip to main content

Functional Requirements

1. User Management System

  1. Provide a secure authentication process to users.

    1. Allow users to register on the application through the onboarding process of a one time pin.
    2. Allow users to log into the system with their credentials.
    3. Allow users to reset their password if forgotten.
  2. Provide an interface to edit or change user's information

    1. Allow users to change their personal information which includes their email, username, first name, last name, profile photo and password.
  3. Allow users to set personal preferences.

  4. Provide a role-based access control system.

    1. Allow users to have different roles such as org_owner, user, etc.
    2. Allow users to have different permissions based on their roles.
    3. Allow users to have different access levels based on their roles.

2. Database System Manager

  1. Allow users to connect to external databases and store the database environment for interaction purposes.

  2. Allow users to update the database connection details. (Various key updates or changes to the database connection details should be allowed).

  3. Schema Management:

    1. Schema mapping: Map the database environment / schema to the intermediate language.
    2. Meta data extraction: Extract the meta data from the database schema.
  4. Query Execution:

    1. Execute the query on the database. This requires an already translated query from the intermediate language to the database language.
    2. Fetch the results from the database. The results should be fetched and displayed to the user.

3. Query Builder

  1. Allow users to choose a database to query.

  2. Allow users to create a query.

    1. Allow users to use a drag and drop UI to create a query.
    2. Allow users to create a query via a form.
  3. Allow users to toggle between views of the query building process.

    1. Allow users to view the drag and drop UI.
    2. Allow users to view the form UI.
  4. Allow users to view the query generated by the drag and drop UI or form.

  5. Allow users to run queries.

  6. Allow users to view a summary of the results of the query.

  7. Allow users to save queries created.

  8. Allow users to edit saved queries.

  9. Allow users to delete saved queries.

  10. Allow users with permissions (Organization Owner/Administrator) to manage queries for the organisation.

  11. Allow users with permissions to allow access to queries for other members in their organization.

  12. Allow users with permissions to revoke access to queries for other members in their organization.

  13. Allow users with permissions to create and save queries for their organization.

  14. Allow users with permissions to edit and save queries for their organization.

  15. Allow users with permissions to delete queries for their organization.

  16. Allow Organization members to access organization queries that they have been granted access to.

4. Query Response System

  1. View query results: Allow users to view the results of their query in a tabular form.

    1. Allow users to sort the columns of data in ascending or descending order.
    2. Allow users to search the data in the table.
    3. Allow users to view the summary statistics of the data in the table.
      1. View the number of rows of data
      2. View the maximum, minimum and mean of numerical data
  2. Generate Reports: Allow users to make use of the reporting system to generate a report of the data in the table.

  3. Requery data: Allow users to requery their database with a new query.

5. Reporting System

  1. Generate Reports: Allow users to generate reports of the query data.

    1. Graph Reports: Allow users to generate graph reports of the query data.
    2. Table Reports: Allow users to generate table reports of the query data.
  2. Share Reports: Allow users to share the reports generated within the system.

    1. Allow users to share reports with other users.
    2. Allow users to share reports with other organisations.
  3. Export Reports: Allow users to export the reports generated.

    1. Allow users to export the reports as a PDF.
    2. Allow users to export the reports as a CSV.
    3. Allow users to export the reports as an Excel file.

6. Organisation Management

  1. Users:

    1. Users must be able to create an organisation.
      • A user creating a new organisation will be an owner.
    2. Users must be able to join an organisation.
      • Joining and organisation from an invite link.
      • Existing users must be able to accept invites to an organisation.
  2. Owners and Admins:

    1. Owners of the organisation will be able to set other users as admins for the organisation.
    2. Owners must have the ability to delete the organisation.
    3. Admins must have the ability to remove users from the organisation but not other admins.
    4. Owners or Admins of the organisation will be able to connect a database to the organisation.
    5. Owners or Admins of the organisation will be able to add other users to the organisation.
      • Inviting an unregistered QBee User.
      • Invite existing users to the organisation.
    6. Owners or Admins of the organisation will be able to manage user roles for the organisation.
    7. Owners must be able to remove admins from the organisation.
  3. Organisation Members:

    1. Users must be able to leave the organisation.
    2. Users in the organisation must be able to access and run organisation saved queries.
    3. Users in the organisation must be able to create and manage queries (Granted they have the correct permissions).
    4. Users in the organisation must be able to view and edit queries created by other users within the organisation (Granted they have the correct permissions).