Skip to content
marhcouto edited this page Mar 5, 2022 · 1 revision

ER: Requirements Specification Component

A1: Collaborative Q&A - Uni-Versal

The main objective of the Uni-Versal project is to develop a web-based forum of questions and answers for university related themes. These themes range from scientific topics (Maths, Linguistics, Coding, etc.) to more general questions about university life, such as how academic services work, the best places to hang out with friends in the city, etc... Uni-Versal is targeted to university students and professors. The service will be of interest to colleges and universities around the world.

Uni-Versal aims to shorten distances between the users of the community by providing a space where users can interact and help each other, especially freshmen who are new to the university life and environment.

In order to organize the website and keep it user-friendly, Uni-Versal will be divided in a wide range of topics. Each of these contain questions according to its theme, which can be filtered by popularity, date or other parameters. The users will be able to use a search bar functionality when loking for questions that will contain that can be arranged according to different tags, users, etc...

The forum also has the option to post anonymously in order to preserve someone's privacy. The authentication system is based on the university email. A token is sent to the email when a user tries to sign into the website, which will prove the authenticity of the user (the user is either a professor or student).

Users can be students and professors, that will be identified accordingly, and will be able to create, answer and react to questions. Each user will also be able to edit theirs posts, wether they are questions or answers. The Forum will also have administrators that will manage the website and have privileged access, being able to moderate questions, monitor and manage all users in order to maintain the forum's integrity, etc.. There are also visitors, who are restrained from interacting with the questions, only being able to navigate the website.


A2: Actors and User stories

This artefact contains the specification of the actors and their user stories, giving context about each actor can and can not do, as well as other project requirements and especifications.

1. Actors

Figure 1: Uni-Versal actors

Identifier Description
Person Generic individual that can access the website
Visitor Unauthenticated user that can only browse the forums and sign-up or sign-in to the website
User Authenticated user, student or professor, that can post/answer questions
Author Authenticated user that is owner of the respective post, being able to edit/delete it
Moderator Authenticated user that can delete/posts and ban users, responsible for the maintenance of a positive environment
Admin Authenticated user that is responsible for the management of the website and users

2. User Stories

This sections aims to depict each actor accessing to the website and their user stories.

Note: The following terms are used synonymously:

  • thread/question
  • comment/answer
  • posts = questions/answers
  • owner/author

2.1. Person

Identifier Name Priority Description
US01 Consult Contacts high As a user, I want to have access to the contacts of the personnel responsible for the website
US02 See Home high As a user, I want to be able to access the home page, in order to get an overview of the website
US03 See About high As a user, I want to be able to access the about page, so that I can get more concrete information on the websites origins, motives, functionalities and its creators

2.2. Visitor

Identifier Name Priority Description
US10 Sign-In high As a visitor, I want to be able to authenticate into the system, so that I can access the features reserved to my user account type.
US11 Sign-up high As a visitor, I want to be able to create an account, validated through University credentials or access token, so I can participate in the forum

2.3. User

Identifier Name Priority Description
US20 Post questions high As a user, I want to be able to post my own questions/start my own threads in the forum, under the correct sections, so that I other forum users can help me and answer theme
US21 Post answers high As a user, I want to be able to comment/answer other people's questions/threads, so that I can help them get the answer they were looking forum
US22 Logout high As a user, I want to be able to logout of my account, so that other users can log-in in my device
US23 Check my questions high As a user, I want to check the questions I posted in the past, so I can review them easily
US24 Post anonymously medium As a user, I can make a post anonymously, in case I don't want my identity tied to the question I want answered
US25 Edit my profile medium As a user, I want to be able to see and edit my profile, so I can change my information as I see fit
US26 Upvote / Downvote medium As a user, I want to be able to upvote/downvote different threads, so that posts and comments can be organized by the community's interest
US27 Mark/Save questions medium As a user, I want to be able to mark certain questions, so that I can be notified if they are answered
US28 Notifications low As a user, I want to be notified if my posts are upvoted/downvoted or answered, so I can be more engaged with the community
US29 Archive question low As a user, I want to be able to archive a question, so that I can save it for posting later
US34 Load archived question low As a user, I want to be able to load a previously archived questions, so that I can published a past identical
US35 Check archived questions low As a user, I want to be able to check the questions I have archived, so that I can manage them as I see fit, by, for instance, deleting or updating them
US36 Access topics high As a user, I want to access each Topic's section, which are organized according into faculties, so that I can see the questions related to that topic
US37 Search high As a user, I want to be able to search for threads/questions or users and get a result matching my expectations
US38 Order/Filter medium As a user, I want to change the way the threads are ordered and presented in a result page, sorting them according to date, relevance, etc.

2.4. Author

Identifier Name Priority Description
US30 Remove own posts high As a user, I want to be able to remove my own posts, in case I made a mistake or regretted posting them
US31 Edit post high As a author, I want to be able to edit my own post, so that I can correct any mistakes made or reformulate my question in any way, between other reasons
US32 Validate answer medium As a author, I want to be able to validate a correct answer to my question, so that others who visit my thread know they can trust that comment as a solution

2.5. Moderator

Identifier Name Priority Description
US40 Remove threads medium As a moderator, I want to be able to remove a question from the forum, in case I find it inappropriate or consider it should not be published
US41 Remove comments medium As a moderator, I want to be able to remove a comment/answer from the forum, in case I find it inappropriate or consider it should not be published
US42 Edit post medium As a moderator, I want to be able to edit posts, so I can remove inappropriate content
US43 Move questions medium As a moderator, I want to be able to move questions to different categories, to keep the website organized
US44 Ban users medium As a moderator, I want to be able to ban users that violate the website's guideline in order to keep the forum's integrity

2.6. Administrator

Identifier Name Priority Description
US50 Ban moderators medium As an admin, I want to be able to ban a moderator from the platform, in case I consider he is behaving innaproprietly
US51 Promote moderators medium As an admin, I want to be able to promote users to moderators, so that they can help to manage the website's community
US52 Promote admin medium As an admin, I want to be able to promote users to admins, so that they can help to manage the website and maintain a healthy environment
US53 Create notifications medium As an admin, I want to be able to create notifications for the community, so I am able to easily reach every user
US54 Derrank users medium As an admin, I want to be ble to derrank moderators to users, in case they should no longer own such status

3. Supplementary Requirements

This section's goal is to present the project's technical requirements, business rules and restrictions.

3.1. Business rules

Identifier Name Description
BR01 Post's self interaction A post's author is always able to either review, change or remove it's own post
BR02 Deleted User Whenever a user is deleted, every post that correlates to the user will remain untouched but unidentified
BR03 Post's Replies Dates A reply to a post must be chronologically preceded by its corresponding question
BR04 Login Dates The login date must be prior to the logout date
BR05 Single Reviews A user is only able to review a post once

3.2. Technical requirements

Identifier Name Description
TR01 Availability The system should always be available when not under maintenance
TR02 Accessibility The system must guarantee that any user is able to access the available pages on the website while using any kind of browser
TR03 Usability The system should be user-friendly.

If the website is too complex to navigate, the students who need to find answers will most likely resort to an easier alternative. The same thing happens to the users who reply. The system must simplify their job of providing the answers

TR04 Performance The system should have response times shorter than 2 s to ensure the user's attention
TR05 Web application The system should be implemented as a Web application with dynamic pages (HTML5, JavaScript, CSS3 and PHP)
TR06 Portability The server-side system should work across multiple platforms (Linux, Mac OS, etc.)
TR07 Database The PostgreSQL database management system must be used, with a version of 11 or higher.
TR08 Security The authenticated user's data must be protected at all costs. If a post's author desires to keep its anonymity he has the option to do so, hiding all of its information.

Since Uni-Versal is a platform where students and professors who generally know each other, it's perfectly legitimate for a user to want to hide its information

TR09 Robustness The system must be well structured and built in a way so that when an error comes up, all of its consequences are minimized and the website maintains its operability
TR10 Scalability The system must be prepared to deal with a exponential growth in number of users.

The number of students and professors is very high and tends to be even higher as the years go by. Besides that, the students and professors who are not in an academic situation anymore can still continue to interact with other users on Uni-Versal.

TR11 Ethics The system must respect the ethical principles in software development (for example, the password must be stored encrypted to ensure that only the owner knows it)

3.3. Restrictions

Identifier Name Description
C01 Deadline The system should be ready to be used at the end of the semester.

A3: Information Architecture

The information architecture artefact gives an insight on the website's information architecture. Its objective is to show how the information is organized in the different pages (the sitemap) and to give visual representation of the contents of the most relevant ones (the wireframes).

1. Sitemap

The structure of the different web pages is presented with the help of this sitemap that links and represents the various hierarchy levels.

The Uni-Versal system is organized in 5 main areas, the static pages that provides important information about Uni-Versal (Static Pages), the pages that deals with all the login and sign up procedures (Authentication Pages), the pages where the admins can execute their priveledged commands (Admin Pages), the pages where the users can view their profiles and edit them (User Pages) and the pages where all of the posts are presented (Forum Pages).

Figure 2: Sitemap

2. Wireframes

The Uni-Versal forum wireframes for the main pages are depicted below. Even though each one has a different purpose

UI01: Home page

The home page of the website is where you can start navigating the different features and get a general overview of all the options.

Figure 3: Home page

UI05: Sign-Up Page

The sign-up page is where the accounts can be created based on a token system, using the university mail.

Figure 4: Sign-Up page

UI13: Main page

The main page is where some general posts are presented and creating a post is enabled. This page is identical to each topic's page, varying only in the posts presented.

Figure 5: Main page

Options

Searching mechanism

UI12: Search Results Page

The search results page is the page to be presented to the user when he performs a search. The page has two parts:

  • Posts

Figure 6: Search Results 1

  • Profiles

Figure 7: Search Results 2

UI08: Posting page

The posting page is the page where a user can construct a post, so that he can publish if afterwards, or save it for later as a draft.

Figure 8: Posting page

UI06: Profile page

The profile page is where all the public information from the user can be seen, ranging from the general data to the list of original posts.

Figure 9: Profile page

UI11: Thread page

The thread page is the page where a post/question and its answers are presented, as well as all the interactions with them(upvotes, marks, etc).

Figure 10: Thread page

Revision history

Changes made to the first submission:

  1. A1 was corrected according to the feedback. Some features were added, others rearranged
  2. Minor issues in A2 were corrected
  3. A3 was fixed according to the feedback
  4. Correction of the sitemap
  5. Correction and addition of wireframes related to the searching mechanism
  6. Searching mechanism was revamped and simplified
  7. Corrected synonyms and clarified the use of ceratin keywords such as 'post'
  8. Corrected user stories for user
    • Search, Ordering and access to Topics is reserved to users
  9. Corrected some user stories no longer relevant

GROUP2106, 07/11/2021