-
Notifications
You must be signed in to change notification settings - Fork 3
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.
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.
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 |
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
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 |
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 |
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. |
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 |
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 |
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 |
This section's goal is to present the project's technical requirements, business rules and restrictions.
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 |
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) |
Identifier | Name | Description |
---|---|---|
C01 | Deadline | The system should be ready to be used at the end of the semester. |
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).
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).
The Uni-Versal forum wireframes for the main pages are depicted below. Even though each one has a different purpose
The home page of the website is where you can start navigating the different features and get a general overview of all the options.
The sign-up page is where the accounts can be created based on a token system, using the university mail.
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.
Options
Searching mechanism
The search results page is the page to be presented to the user when he performs a search. The page has two parts:
- Posts
- Profiles
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.
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.
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).
Changes made to the first submission:
- A1 was corrected according to the feedback. Some features were added, others rearranged
- Minor issues in A2 were corrected
- A3 was fixed according to the feedback
- Correction of the sitemap
- Correction and addition of wireframes related to the searching mechanism
- Searching mechanism was revamped and simplified
- Corrected synonyms and clarified the use of ceratin keywords such as 'post'
- Corrected user stories for user
- Search, Ordering and access to Topics is reserved to users
- Corrected some user stories no longer relevant
GROUP2106, 07/11/2021
- André Santos, up201907879@edu.fe.up.pt (editor)
- Marcelo Couto, up201906086@edu.fe.up.pt
- João Afonso, up201905589@edu.fe.up.pt
- Sérgio Estêvão, up201905680@edu.fe.up.pt