Functional Requirements
1. User Management System
-
Provide a secure authentication process to users.
- Allow users to register on the application through the onboarding process of a one time pin.
- Allow users to log into the system with their credentials.
- Allow users to reset their password if forgotten.
-
Provide an interface to edit or change user's information
- Allow users to change their personal information which includes their email, username, first name, last name, profile photo and password.
-
Allow users to set personal preferences.
-
Provide a role-based access control system.
- Allow users to have different roles such as org_owner, user, etc.
- Allow users to have different permissions based on their roles.
- Allow users to have different access levels based on their roles.
2. Database System Manager
-
Allow users to connect to external databases and store the database environment for interaction purposes.
-
Allow users to update the database connection details. (Various key updates or changes to the database connection details should be allowed).
-
Schema Management:
- Schema mapping: Map the database environment / schema to the intermediate language.
- Meta data extraction: Extract the meta data from the database schema.
-
Query Execution:
- Execute the query on the database. This requires an already translated query from the intermediate language to the database language.
- Fetch the results from the database. The results should be fetched and displayed to the user.
3. Query Builder
-
Allow users to choose a database to query.
-
Allow users to create a query.
- Allow users to use a drag and drop UI to create a query.
- Allow users to create a query via a form.
-
Allow users to toggle between views of the query building process.
- Allow users to view the drag and drop UI.
- Allow users to view the form UI.
-
Allow users to view the query generated by the drag and drop UI or form.
-
Allow users to run queries.
-
Allow users to view a summary of the results of the query.
-
Allow users to save queries created.
-
Allow users to edit saved queries.
-
Allow users to delete saved queries.
-
Allow users with permissions (Organization Owner/Administrator) to manage queries for the organisation.
-
Allow users with permissions to allow access to queries for other members in their organization.
-
Allow users with permissions to revoke access to queries for other members in their organization.
-
Allow users with permissions to create and save queries for their organization.
-
Allow users with permissions to edit and save queries for their organization.
-
Allow users with permissions to delete queries for their organization.
-
Allow Organization members to access organization queries that they have been granted access to.
4. Query Response System
-
View query results: Allow users to view the results of their query in a tabular form.
- Allow users to sort the columns of data in ascending or descending order.
- Allow users to search the data in the table.
- Allow users to view the summary statistics of the data in the table.
- View the number of rows of data
- View the maximum, minimum and mean of numerical data
-
Generate Reports: Allow users to make use of the reporting system to generate a report of the data in the table.
-
Requery data: Allow users to requery their database with a new query.
5. Reporting System
-
Generate Reports: Allow users to generate reports of the query data.
- Graph Reports: Allow users to generate graph reports of the query data.
- Table Reports: Allow users to generate table reports of the query data.
-
Share Reports: Allow users to share the reports generated within the system.
- Allow users to share reports with other users.
- Allow users to share reports with other organisations.
-
Export Reports: Allow users to export the reports generated.
- Allow users to export the reports as a PDF.
- Allow users to export the reports as a CSV.
- Allow users to export the reports as an Excel file.
6. Organisation Management
-
Users:
- Users must be able to create an organisation.
- A user creating a new organisation will be an owner.
- 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.
- Users must be able to create an organisation.
-
Owners and Admins:
- Owners of the organisation will be able to set other users as admins for the organisation.
- Owners must have the ability to delete the organisation.
- Admins must have the ability to remove users from the organisation but not other admins.
- Owners or Admins of the organisation will be able to connect a database to the organisation.
- 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.
- Owners or Admins of the organisation will be able to manage user roles for the organisation.
- Owners must be able to remove admins from the organisation.
-
Organisation Members:
- Users must be able to leave the organisation.
- Users in the organisation must be able to access and run organisation saved queries.
- Users in the organisation must be able to create and manage queries (Granted they have the correct permissions).
- 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).