Skip to content
Gabriel Lima edited this page Jul 3, 2025 · 2 revisions

ER: Requirements Specification Component

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!

A1: ClarityQuest

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.


A2: Actors and User stories

This artifact contains the specification of the actors and their user stories, serving as agile documentation of the project’s requirements.

1. Actors

For the ClarityQuest application, the actors are represented in Figure 1 and described in Table 1.

Figure 1: ClarityQuest Actors

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

2. User Stories

For the ClarityQuest system, consider the user stories that are presented in the following sections.

2.1. Guest

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

2.2. User

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

2.3. Clarifier

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

2.4. Questioner

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

2.5 Moderator

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

2.6 Administrator

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

3. Supplementary Requirements

Section including business rules, technical requirements, and restrictions.
For each subsection, a table containing identifiers, names, and descriptions for each requirement.

3.1. Business rules

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

3.2. Technical requirements

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

3.3. Restrictions

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


A3: Information Architecture

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.

1. Sitemap

Sitemap presenting the overall structure of the web application, with each page identified. Multiple instances of the same page are presented as page stacks.

Figure 2: Sitemap

2. Wireframes

Wireframes for two main pages of the web application: Home page(UI01) and Question (UI11)

UI01: Home Page

Figure 3: Wireframe_for_Home Figure 3: Homepage (UI01) wireframe

UI11: Question

Figure 4: Wireframe_for_Question Figure 4: Question (UI11) wireframe


GROUP24125, 04/10/2024