- 
                Notifications
    You must be signed in to change notification settings 
- Fork 0
ClarityQuest is a Collaborative Q&A platform, aiming to help you answer all your questions about a wide range of topics while giving you the opportunity to provide knowledge to people in need!
ClarityQuest is being developed by a group of 3 developers, Beatriz Ferreira (up202205612), Gabriel Lima (up202206693) and Sara Cortez (up202205636) serving as the stakeholders of the beforewards, for the 2024/2025 occurrence of LBAW, at FEUP. This project is a collaborative Question and Answer (commonly known as Q&A) platform, targeted at individual users that have doubts about a certain topic which can be answered by members of the community.
The main goal of this project is the development of a web application hosting forums, giving users the ability to post and answer questions. It can be used by anyone, be it by professionals in a specific subject, students or even people looking for personal advice. The community will be managed by a group of moderators and administrators, responsible for flagging down problematic content and users and ensuring that everything is running smoothly.
This application allows users to post all of their questions, answer others questions and add comments to those answers. Questions will be distributed by tags and the user’s own questions will be aggregated in his profile, available to all users.
When entering the web app, users will be presented with the top questions (the ones most interacted with). Additionally, they will have the ability to filter said questions, through tags or other characteristics such as how recently questions were posted or how many comments they have. There will also be a search feature capable of looking up relevant questions through text input given by the user on a search bar.
Users are separated into groups with different permissions, which include the Moderators and Administrators mentioned above. While moderators can only remove content, receive reports and edit question tags, the Administrator group has full privileges, having the ability to edit/delete any content on the platform, be it questions, users and available tags. Anyone (Guests) can view all the questions available, but only Clarifiers can interact with them, so as authoring them, becoming the Questioner of the question. Questioners can edit the text of their question, so as add tags for them, but the edition must be highlighted. They can have their answers and comments in a privileged place, and highlight answers, marking them as correct/accepted. They also receive notifications for activity in their questions.
Other clarifier interactions include liking a question, answering, upvoting/downvoting on answers, commenting subscribing and receiving notifications of answers/comments to a question, answering a question and commenting an answer and vote (up/down) for each answer, such that most relevant questions are the ones with higher #(upvotes-downvotes).
The interface will be adaptive to screen resolution. This means that it should be compatible with any device. Additionally, the interface will also provide a good user experience, following common design principles which most users are already familiar with.
This artifact contains the specification of the actors and their user stories, serving as agile documentation of the project’s requirements.
For the ClarityQuest application, the actors are represented in Figure 1 and described in Table 1.

Figure 1: ClarityQuest Actors
| Identifier | Description | 
|---|---|
| User | Generic user that has access to public information. | 
| Guest | Unauthenticated user that can view all questions available. They can become a Clarifier by authenticating themselves (log-in) or creating an account (sign-up). | 
| Clarifier | Authenticated users that can interact with questions by liking them, subscribing to notifications of activity, receiving them, answering questions, commenting answers, and voting them up or down. | 
| Questioner | Authenticated user that creates a question. This is the role of the Clarifier relative to the questions they create. They can edit them until the first answer is posted, delete them, have their answers and comments in a privileged place, and have answers they upvote highlighted. | 
| Moderator | Authenticated users that can moderate content on the platform, with the ability to delete any content, edit question tags, and manage reports (acting on them). | 
| Administrator | Moderators with full privileges, having the ability to edit/delete any content on the platform (questions, tags, or accounts). | 
| Google OAuth API | External Google Accounts API that can be used to register or authenticate into the system. | 
| X OAuth API | External X authentication API that can be used to register or log-in into the system. | 
Table 1: ClarityQuest actors description
For the ClarityQuest system, consider the user stories that are presented in the following sections.
| Identifier | Name | Priority | Description | 
|---|---|---|---|
| US01 | Sign-in | high | As a Guest, I want to authenticate into the system, so that I can access privileged information. | 
| US02 | Sign-up | high | As a Guest, I want to register myself into the system, so that I can authenticate myself into the system. | 
| US03 | Recover Password | high | As a Guest, I want to be able to recover my password, so that I can log in to an account I have previously created but have forgotten the password of. | 
| US04 | Google Account Sign-up (through OAuth API) | low | As a Guest, I want to register a new account linked to my Google account, so that I do not need to create a whole new account to use the platform. | 
| US05 | Google Account Sign-in (through OAuth API) | low | As a Guest, I want to log-in through my Google account, so that I can authenticate myself into the system. | 
| US06 | X (formerly Twitter) Account Sign-up (through OAuth API) | low | As a Guest, I want to register a new account connected to my X/Twitter account, so that I do not need to create a whole new account to use the platform. | 
| US07 | X (formerly Twitter) Account Sign-in (through OAuth API) | low | As a Guest, I want to log-in through my X account, so that I can authenticate myself into the system. | 
Table 2: Visitor user stories
| Identifier | Name | Priority | Description | 
|---|---|---|---|
| US11 | See Home | high | As a User, I want to access the home page, so that I can see a brief presentation of the website. | 
| US12 | See About | high | As a User, I want to access the about page, so that I can see a complete description of the website and its creators. | 
| US13 | Consult Main Features | high | As a User, I want to access the main features of the website, so that I can get a quick overview of its functionalities. | 
| US14 | Consult Contacts | high | As a User, I want to access contacts, so that I can reach out to the platform creators. | 
| US15 | Search | high | As a User, I want to search the platform keywords, so that I can quickly find questions and answers about a topic or theme that I am looking for. | 
| US16 | View Question details | high | As a User, I want to be able to view a question and its related answers and comments. | 
| US17 | See Latest Questions | high | As a User, I want to access the list of latest questions, so that I can help people with questions. | 
| US18 | See Top Questions | high | As a User, I want to access the list of top questions, so that I can help people with questions. | 
| US19 | Browse by tag | high | As a User, I want to be able to search for tags so that I can filter my search with them. | 
| US110 | Browse by text | high | As a User, I want to be able to search using text (regex), so that I can filter my search with them. | 
| US111 | Browse by full match | high | As a User, I want to be able to search using text (regex), so that I can filter my search with them. | 
| US112 | Contextual Error Messages | high | As a User, I want to get contextual error messages, so that I can understand why something I do does not work. | 
| US113 | Contextual Help | high | As a User, I want to see contextual help sections, so that I can understand the functioning of the web app. | 
| US114 | Placeholders in form inputs | high | As a User, I want to have example placeholders in form inputs, so that I can understand better what to enter. | 
| US115 | View User Profiles | high | As a User, I want to access a user’s profile, so I can view their history of questions, answers, and comments. | 
| US116 | See FAQs | low | As a User, I want to access the FAQ, so that I can get quick answers to commonly asked questions. | 
Table 3: User user stories
| Identifier | Name | Priority | Description | 
|---|---|---|---|
| US21 | View Personal Feed | high | As a Clarifier, I want to view a personalized feed based on my activity, so that I can be aware of questions on topics that interest me. | 
| US22 | Post Question | high | As a Clarifier, I want to post a question, so that I can get advice or more information on a specific subject. | 
| US23 | Post Answer | high | As a Clarifier, I want to post answers to questions, so that I can share my knowledge and help other users. | 
| US24 | Vote on Questions | high | As a Clarifier, I want to vote questions up or down, so that I can bring more attention to relevant questions and help cast aside irrelevant ones. | 
| US25 | Vote on Answers | high | As a Clarifier, I want to vote answers up or down, so that I can help differentiate between helpful and unhelpful answers. | 
| US26 | Comment on Questions | high | As a Clarifier, I want to comment on questions, so that I can get additional information or share my opinion on it. | 
| US27 | Comment on Answers | high | As a Clarifier, I want to comment on answers, so that I can add relevant information or share my opinion on it. | 
| US28 | View My Questions | high | As a Clarifier, I want to view my questions, so that I can keep track of my question history. | 
| US29 | View My Answers | high | As a Clarifier, I want to view my answers, so that I can keep track of my answering history. | 
| US210 | Follow Question | high | As a Clarifier, I want to follow questions, so that I can get notifications on new activity for questions I find relevant. | 
| US211 | Follow Tags | high | As a Clarifier, I want to follow tags, so that I can keep up with new questions on topics of interest or expertise. | 
| US212 | Edit Answer | high | As a Clarifier, I want to edit my answers, so that I can correct inaccurate information or typos. | 
| US213 | Delete Answer | high | As a Clarifier, I want to delete answers I posted, so that I can remove them if the information is inaccurate, unhelpful, or no longer relevant. | 
| US214 | Edit Comment | high | As a Clarifier, I want to edit my comments, so that I can correct information or typos. | 
| US215 | Delete Comment | high | As a Clarifier, I want to delete comments I posted, so that I can remove them if they are no longer relevant or I no longer want to share them. | 
| US216 | Get Notifications when Voted | high | As a Clarifier, I want to be able to get notified when content I follow/post gets voted on, so that I can be aware of the perception of the users on my activity in the platform. | 
| US217 | Get Notifications when a question is answered | high | As a Clarifier, I want to be able to get notified when content I follow/post is answered, so that I can be aware of the perception of the users on my activity in the platform. | 
| US218 | Edit Profile | high | As a Clarifier, I want to be able to edit my profile, so that I can add or edit personal information. | 
| US219 | Profile Picture Support | high | As a Clarifier, I want to be able to add a profile picture, so that I can customize how I’m perceived by other users. | 
| US220 | View Personal Notifications | high | As a Clarifier, I want to be able to view my personal notifications, so that I can keep track of interactions with content I posted or followed. | 
| US221 | Delete Account | high | As a Clarifier, I want to be able to delete my account, so that I can remove personal information from the platform. | 
| US222 | View Personal Profile | high | As a Clarifier, I want to be able to view my user profile, so that I can be aware of what personal information I have shared and what image I’m passing on to other platform users. | 
| US224 | Report Content | low | As a Clarifier, I want to be able to report content, so that I can help the moderators remove offensive or harmful information from the platform. | 
| US225 | Badges | low | As a Clarifier, I want to be able to earn badges after completing a certain quantity of actions on the platform. (e.g. Upvote X posts, Create X questions, Answer X questions, Follow a User, ...) | 
Table 4: Clarifier user stories
| Identifier | Name | Priority | Description | 
|---|---|---|---|
| US31 | Edit question | high | As a Questioner, I want to edit a question after I post it, so that I can perfect the initial content. | 
| US32 | Delete question | high | As a Questioner, I want to delete the question I post, so that it is no longer accessible. | 
| US33 | Mark answers as correct | high | As a Questioner, I want to mark answers as correct, so that other users can see what I find useful. | 
| US34 | Edit question tags | high | As a Questioner, I want to edit question tags, so that my question can be more easily found. | 
| US35 | Get Notifications when Voted | high | As a Questioner, I want to be notified when questions I posted get liked, so that I can keep my posts tracked. | 
| US36 | Get Notifications when a question is answered | high | As a Questioner, I want to be notified when content I posted gets answered so that I can keep my posts tracked. | 
Table 5: Questioner user stories
| Identifier | Name | Priority | Description | 
|---|---|---|---|
| US41 | Delete comments | high | As a Moderator, I want to delete a comment, so that I can remove inappropriate content. | 
| US42 | Edit question tags | medium | As a Moderator, I want to edit question tags, so that I can make sure the question is sorted into the correct tags. | 
| US43 | Manage Content Report | low | As a Moderator, I want to manage reports, so I can easily know about offensive content and act on it (by removing it). | 
Table 6: Moderator user stories
| Identifier | Name | Priority | Description | 
|---|---|---|---|
| US51 | Delete answers | high | As an Admin, I want to delete an answer, so that I can remove inappropriate content and/or harmful content from the platform. | 
| US52 | Remove questions | high | As an Admin, I want to remove a question, so I can filter out inappropriate content. | 
| US53 | Delete Account | high | As an Admin, I want to delete a user account, so that they are banned from the system. | 
| US54 | Block/Unblock User Accounts | high | As an Admin, I want to block/unblock a user account, so that they receive punishment for posting unwelcome content. | 
| US55 | Manage tags | high | As an Admin, I want to manage tags, so I can create tags for various topics, thus allowing questions to be sorted into collections with the same theme. | 
| US56 | Administrator Accounts | high | As an Admin, I want to have access to a personal account, so that I can perform all of my administrator responsibilities and be able to perform the activities regular and authenticated users have access to. | 
| US57 | Administer User Accounts | high | As an Admin, I want to have access to a list of all user accounts, so that I can search for a user, view, and edit their account details. | 
| US58 | Create User Accounts | high | As an Admin, I want to be able to create regular user accounts, so that they can access the system. | 
Table 7: Administrator user stories
Section including business rules, technical requirements, and restrictions.
For each subsection, a table containing identifiers, names, and descriptions for each requirement.
| Identifier | Name | Description | 
|---|---|---|
| BR01 | Administrator Status | Administrators are participating members of the community, i.e., they can post or vote on questions or answers. | 
| BR02 | Editing Content | Questions and answers edited after being posted should have a clear indication of the edits made. | 
| BR03 | Badges | User badges are dependent on the likes and dislikes received on their questions and answers, as well as actions made by the user (first question, first answer, etc.). | 
| BR04 | Account Deletion | Upon account deletion, shared user data (e.g., questions, answers, etc.) is kept but is made anonymous. | 
| BR05 | Notifications | When a Clarifier follows a question or tag, they will be notified by default of new answers or questions relating to them. | 
| BR06 | Interactions with the user’s own content | A Clarifier is allowed to answer their own content, as they could have come up with an answer and want to share it. They are also allowed to comment to add relevant information or answer questions about their question. However, a Clarifier isn’t allowed to vote on their questions or answers. | 
| BR08 | Dates | A comment/answer can’t have its creation date before the creation date of the related question. A report can’t have its date before the content creation date. | 
Table 8: ClarityQuest business rules
| Identifier | Name | Description | 
|---|---|---|
| TR01* | Performance | The system should have fast responses to keep the user engaged. An ideal response time would be less than 1 second and not exceeding 2 seconds. Slow loading pages lead to lower user retention and the search for faster alternatives. It is essential to provide interfaces with fast responses. | 
| TR02* | Robustness | The system must handle errors without any disruption of service and be prepared to resume operation. If possible, it should retry the failed action again. A robust system creates a sense of trust and reliability within the common user, making it a critical requirement. | 
| TR03* | Scalability | The system must have the capacity to handle a large influx of users and their actions. It is imperative that the system can manage the actions of a considerable number of users at the same time. | 
| TR04* | Accessibility | The system must ensure that every page is displayed correctly and accessible across any web browser. This means it must be usable by anyone, including users with disabilities. | 
| TR05 | Security | The system must be secure against malicious attacks and protect personal information from unauthorized access. | 
| TR06 | Database | The system must have a way to store information and user data; therefore, PostgreSQL (v11+) needs to be used. | 
| TR07 | Availability | The system must have near 100% uptime. | 
| TR08 | Usability | The system needs to be intuitive and straightforward, designed so anyone can use it without any technical experience. | 
| TR09 | Web Application | The system should be implemented as a web application with dynamic pages. Due to their almost universal support and ease of use, PHP, HTML5, CSS3, and JavaScript must be used. | 
Table 9: ClarityQuest technical requirements
*Mandatory Technical Requirements
| Identifier | Name | Description | 
|---|---|---|
| C01 | Deadline | The system should be ready to be used at the end of the semester to comply with the requirements of the Curricular Unit. | 
Table 10: ClarityQuest restrictions
The goal of the Information Architecture (IA) for the ClarityQuest platform is to create a well-structured, user-centered design that facilitates easy navigation, content discovery, and efficient user interactions. The IA will ensure that users can effortlessly access the information they need, understand the available functionalities, and engage with the content and community.
Sitemap presenting the overall structure of the web application, with each page identified. Multiple instances of the same page are presented as page stacks.

Wireframes for two main pages of the web application: Home page(UI01) and Question (UI11)
 Figure 3: Homepage (UI01) wireframe
Figure 3: Homepage (UI01) wireframe
 Figure 4: Question (UI11) wireframe
Figure 4: Question (UI11) wireframe
GROUP24125, 04/10/2024
- Sara Cortez, up202205636@up.pt (editor)
- Beatriz Ferreira, up202205612@up.pt
- Gabriel Lima, up202206693@up.pt