Spaces:
Paused
Paused
| ## User group / tenant management | |
| ### Create new user group | |
| (6 man-days) | |
| **Description**: each client has a dedicated user group. Each user group has an | |
| admin user who can do administrative tasks (e.g. creating user account in that | |
| user group...). The workflow for creating new user group is as follow: | |
| 1. Cinnamon accesses the user group management UI. | |
| 2. On "Create user group" panel, we supply: | |
| a. Client name: e.g. Apple. | |
| b. Sub-domain name: e.g. apple. | |
| c. Admin email, username & password. | |
| 3. The system will: | |
| a. An Aurora Platform deployment with the specified sub-domain. | |
| b. Send an email to the admin, with the username & password. | |
| **Expectation**: | |
| - The admin can go to the deployed Aurora Platform. | |
| - The admin can login with the specified username & password. | |
| **Condition**: | |
| - When sub-domain name already exists, raise error. | |
| - If error sending email to the client, raise the error, and delete the | |
| newly-created user-group. | |
| - Password rule: | |
| - Have at least 8 characters. | |
| - Must contain uppercase, lowercase, number and symbols. | |
| --- | |
| ### Delete user group | |
| (2 man-days) | |
| **Description**: in the tenant management page, we can delete the selected user | |
| group. The user flow is as follow: | |
| 1. Cinnamon accesses the user group management UI, | |
| 2. View list of user groups. | |
| 3. Next to target user group, click delete. | |
| 4. Confirm whether to delete. | |
| 5. If Yes, delete the user group. If No, cancel the operation. | |
| **Expectation**: when a user group is deleted, we expect to delete everything | |
| related to the user groups: domain, files, databases, caches, deployments. | |
| ## User management | |
| --- | |
| ### Create user account (for admin user) | |
| (1 man-day) | |
| **Description**: the admin user in the client's account can create user account | |
| for that user group. To create the new user, the client admin do: | |
| 1. Navigate to "Admin" > "Users" | |
| 2. In the "Create user" panel, supply: | |
| - Username | |
| - Password | |
| - Confirm password | |
| 3. Click "Create" | |
| **Expectation**: | |
| - The user can create the account. | |
| - The username: | |
| - Is case-insensitive (e.g. Moon and moon will be the same) | |
| - Can only contains these characters: a-z A-Z 0-9 \_ + - . | |
| - Has maximum length of 32 characters | |
| - The password is subjected to the following rule: | |
| - 8-character minimum length | |
| - Contains at least 1 number | |
| - Contains at least 1 lowercase letter | |
| - Contains at least 1 uppercase letter | |
| - Contains at least 1 special character from the following set, or a | |
| non-leading, non-trailing space character: `^ $ * . [ ] { } ( ) ? - " ! @ # % & / \ , > < ' : ; | _ ~ ` + = | |
| --- | |
| ### Delete user account (for admin user) | |
| **Description**: the admin user in the client's account can delete user account. | |
| Once an user account is deleted, he/she cannot login to Aurora Platform. | |
| 1. The admin user navigates to "Admin" > "Users". | |
| 2. In the user list panel, next to the username, the admin click on the "Delete" | |
| button. The Confirmation dialog appears. | |
| 3. If "Delete", the user account is deleted. If "Cancel", do nothing. The | |
| Confirmation dialog disappears. | |
| **Expectation**: | |
| - Once the user is deleted, the following information relating to the user will | |
| be deleted: | |
| - His/her personal setting. | |
| - His/her conversations. | |
| - The following information relating to the user will still be retained: | |
| - His/her uploaded files. | |
| --- | |
| ### Edit user account (for admin user) | |
| **Description**: the admin user can change any information about the user | |
| account, including password. To change user information: | |
| 1. The admin user navigates to "Admin" > "Users". | |
| 2. In the user list panel, next to the username, the admin click on the "Edit" | |
| button. | |
| 3. The user list disappears, the user detail appears, with the following | |
| information show up: | |
| - Username: (prefilled the username) | |
| - Password: (blank) | |
| - Confirm password: (blank) | |
| 4. The admin can edit any of the information, and click "Save" or "Cancel". | |
| - If "Save": the information will be updated to the database, or show | |
| error per Expectation below. | |
| - If "Cancel": skip. | |
| 5. If Save success or Cancel, transfer back to the user list UI, where the user | |
| information is updated accordingly. | |
| **Expectation**: | |
| - If the "Password" & "Confirm password" are different from each other, show | |
| error: "Password mismatch". | |
| - If both "Password" & \*"Confirm password" are blank, don't change the user | |
| password. | |
| - If changing password, the password rule is subjected to the same rule when | |
| creating user. | |
| - It's possible to change username. If changing username, the target user has to | |
| use the new username. | |
| --- | |
| ### Sign-in | |
| (3 man-days) | |
| **Description**: the users can sign-in to Aurora Platform as follow: | |
| 1. User navigates to the URL. | |
| 2. If the user is not logged in, the UI just shows the login screen. | |
| 3. User types username & password. | |
| 4. If correct, the user will proceed to normal working UI. | |
| 5. If incorrect, the login screen shows text error. | |
| --- | |
| ### Sign-out | |
| (1 man-day) | |
| **Description**: the user can sign-out of Aurora Platform as follow: | |
| 1. User navigates to the Settings > User page. | |
| 2. User click on logout. | |
| 3. The user is signed out to the UI login screen. | |
| **Expectation**: the user is completely signed out. Next time he/she uses the | |
| Aurora Platform, he/she has to login again. | |
| --- | |
| ### Change password | |
| **Description**: the user can change their password as follow: | |
| 1. User navigates to the Settings > User page. | |
| 2. In the change password section, the user provides these info and click | |
| Change: | |
| - Current password | |
| - New password | |
| - Confirm new password | |
| 3. If changing successfully, then the password is changed. Otherwise, show the | |
| error on the UI. | |
| **Expectation**: | |
| - If changing password succeeds, next time they logout/login to the system, they | |
| can use the new password. | |
| - Password rule (Same as normal password rule when creating user) | |
| - Errors: | |
| - Password does not match. | |
| - Violated password rules. | |
| --- | |
| ## Chat | |
| ### Chat to the bot | |
| **Description**: the Aurora Platform focuses on question and answering over the | |
| uploaded data. Each chat has the following components: | |
| - Chat message: show the exchange between bots and humans. | |
| - Text input + send button: for the user to input the message. | |
| - Data source panel: for selecting the files that will scope the context for the | |
| bot. | |
| - Information panel: showing evidence as the bot answers user's questions. | |
| The chat workflow looks as follow: | |
| 1. [Optional] User select files that they want to scope the context for the bot. | |
| If the user doesn't select any files, then all files on Aurora Platform will | |
| be the context for the bot. | |
| - The user can type multi-line messages, using "Shift + Enter" for | |
| line-break. | |
| 2. User sends the message (either clicking the Send button or hitting the Enter | |
| key). | |
| 3. The bot in the chat conversation will return "Thinking..." while it | |
| processes. | |
| 4. The information panel on the right begin to show data related to the user | |
| message. | |
| 5. The bot begins to generate answer. The "Thinking..." placeholder disappears.. | |
| **Expecatation**: | |
| - Messages: | |
| - User can send multi-line messages, using "Shift + Enter" for line-break. | |
| - User can thumbs up, thumbs down the AI response. This information is | |
| recorded in the database. | |
| - User can click on a copy button on the chat message to copy the content to | |
| clipboard. | |
| - Information panel: | |
| - The information panel shows the latest evidence. | |
| - The user can click on the message, and the reference for that message will | |
| show up on the "Reference panel" (feature in-planning). | |
| - The user can click on the title to show/hide the content. | |
| - The whole information panel can be collapsed. | |
| - Chatbot quality: | |
| - The user can converse with the bot. The bot answer the user's requests in a | |
| natural manner. | |
| - The bot message should be streamed to the UI. The bot don't wait to gather | |
| alll the text response, then dump all of them at once. | |
| ### Conversation - switch | |
| **Description**: users can jump around between different conversations. They can | |
| see the list of all conversations, can select an old converation, and continue | |
| the chat under the context of the old conversation. The switching workflow is | |
| like this: | |
| 1. Users click on the conversation dropdown. It will show a list of | |
| conversations. | |
| 2. Within that dropdown, the user selects one conversation. | |
| 3. The chat messages, information panel, and selected data will show the content | |
| in that old chat. | |
| 4. The user can continue chatting as normal under the context of this old chat. | |
| **Expectation**: | |
| - In the conversation drop down list, the conversations are ordered in created | |
| date order. | |
| - When there is no conversation, the conversation list is empty. | |
| - When there is no conversation, the user can still converse with the chat bot. | |
| When doing so, it automatically create new conversation. | |
| ### Conversation - create | |
| **Description**: the user can explicitly start a new conversation with the | |
| chatbot: | |
| 1. User click on the "New" button. | |
| 2. The new conversation is automatically created. | |
| **Expectation**: | |
| - The default conversation name is the current datetime. | |
| - It become selected. | |
| - It is added to the conversation list. | |
| ### Conversation - rename | |
| **Description**: user can rename the chatbot by typing the name, and click on | |
| the Rename button next to it. | |
| - If rename succeeds: the name shown in the 1st dropdown will change accordingly | |
| - If rename doesn't succeed: show error message in red color below the rename section | |
| **Condition**: | |
| - Name constraint: | |
| - Min characters: 1 | |
| - Max characters: 40 | |
| - Could not having the same name with an existing conversation of the same | |
| user. | |
| ### Conversation - delete | |
| **Description**: user can delete the existing conversation as follow: | |
| 1. Click on Delete button. | |
| 2. The UI show confirmation with 2 buttons: | |
| - Delete | |
| - Cancel. | |
| 3. If Delete, delete the conversation, switch to the next oldest conversation, | |
| close the confirmation panel. | |
| 4. If cancel, just close the confirmation panel. | |
| ## File management | |
| The file management allows users to upload, list and delete files that they | |
| upload to the Aurora Platform | |
| ### Upload file | |
| **Description**: the user can upload files to the Aurora Platform. The uploaded | |
| files will be served as context for our chatbot to refer to when it converses | |
| with the user. To upload file, the user: | |
| 1. Navigate to the File tab. | |
| 2. Within the File tab, there is an Upload section. | |
| 3. User can add files to the Upload section through drag & drop, and or by click | |
| on the file browser. | |
| 4. User can select some options relating to uploading and indexing. Depending on | |
| the project, these options can be different. Nevertheless, they will discuss | |
| below. | |
| 5. User click on "Upload and Index" button. | |
| 6. The app show notifications when indexing starts and finishes, and when errors | |
| happen on the top right corner. | |
| **Options**: | |
| - Force re-index file. When user tries to upload files that already exists on | |
| the system: | |
| - If this option is True: will re-index those files. | |
| - If this option is False: will skip indexing those files. | |
| **Condition**: | |
| - Max number of files: 100 files. | |
| - Max number of pages per file: 500 pages | |
| - Max file size: 10 MB | |
| ### List all files | |
| **Description**: the user can know which files are on the system by: | |
| 1. Navigate to the File tab. | |
| 2. By default, it will show all the uploaded files, each with the following | |
| information: file name, file size, number of pages, uploaded date | |
| 3. The UI also shows total number of pages, and total number of sizes in MB. | |
| ### Delete file | |
| **Description**: users can delete files from this UI to free up the space, or to | |
| remove outdated information. To remove the files: | |
| 1. User navigate to the File tab. | |
| 2. In the list of file, next to each file, there is a Delete button. | |
| 3. The user clicks on the Delete button. Confirmation dialog appear. | |
| 4. If Delete, delete the file. If Cancel, close the confirmation dialog. | |
| **Expectation**: once the file is deleted: | |
| - The database entry of that file is deleted. | |
| - The file is removed from "Chat - Data source". | |
| - The total number of pages and MB sizes are reduced accordingly. | |
| - The reference to the file in the information panel is still retained. | |