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 (e.g. Name, surname, email, phone number, etc.).
-
Allow users to set personal preferences.
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 a summary of the results of the query.
-
Allow users to save queries created.
4. 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.
5. Organisation Management
-
Users must be able to create an organisation.
- A user creating a new organisation will be an admin.
-
Users that have an admin role for the organisation will be able to connect a database to the organisation.
-
Allow the organisation admin to add other users to the organisation
- Inviting an unregistered QBee User.
- Existing users must be able to accept invites to an organisation.
-
Admin of the organisation will be able to manage user roles for the organisation
- Assign roles in the organisation to the users in the organisation
- Manage authorization and access of each role
-
Users must be able to leave the organisation
-
Admin must be able to remove users from the organisation but not other admins
-
Users in the organisation must be able to access organisation saved queries