You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The main goal of SegFault is to establish a platform for programmers to learn, discuss different approaches, present ideas and share knowledge in a Q&A style.
To this end, the following sections provide detailed insight into the project, its actors and functionalities.
1. Actors
Identifier
Description
Examples
User
Generic user with access to public content, such as questions, their answers and their comments.
n/a
Visitor
Unauthenticated user that can register itself or authenticate in the system.
n/a
Member
Authenticated user that can create new questions, answer questions, comment and edit all the its questions, answers and comments. Can also vote other user entries.
jlopes
Owner
A message's author that can change its properties.
jlopes
Moderator
A trusted member of the community that has edit/delete permissions over all messages.
jlopes
API
External APIs that can be used to register and / or authenticate into the system.
GitHub Login, Google+
Table 1: Actor's description.
2. User Stories
2.1. User
Identifier
Name
Priority
Description
Estimated Effort (in hours)
US01
Question Page
High
As a User, I want to consult Questions, their Answers and their Comments, so that I can clarify my doubts.
40
US02
Profile
High
As a User, I want to consult the profile of an authenticated User, so that I can see his biographic information.
10
US03
Search
High
As a User, I want to search for specific posts, so that I can find what I'm looking for faster.
5
US05
Profile Badges
High
As a User, I want to consult the badges of an authenticated User, so that I can better understand his community contributions and privileges.
12
US04
Category Consult
Medium
As a User, I want to consult the questions related to a given category, so that I can search content regarding that category.
4
US06
About Page
Low
As a User, I want to access the About page, so that I can see a complete website's description.
3
Table 2: User's user stories.
2.2. Visitor
Identifier
Name
Priority
Description
Estimated Effort (in hours)
US11
Sign Up
High
As a Visitor, I want to register myself into the system, so that I can become a Member.
4
US12
Log In
High
As a Visitor, I want to authenticate into the system, so that I can have Member privileges.
2
US13
Sign Up using Github
Low
As a Visitor, I want to register myself into the system using a Github account, so that I can become a Member, spending less time registering.
3
US14
Log In using Github
Low
As a Visitor, I want to authenticate into the system using a Github account, so that I can have Member privileges.
1
US15
Sign Up using Google+
Low
As a Visitor, I want to register myself into the system using a Google account, so that I can become a Member, spending less time registering.
3
US16
Log In using Google+
Low
As a Visitor, I want to authenticate into the system using a Google account, so that I can have Member privileges.
1
Table 3: Visitor's user stories.
2.3. Member
Identifier
Name
Priority
Description
Estimated Effort (in hours)
US201
Logout
High
As a Member, I want to logout from the system, so that my account remains safe and other users can authenticate.
1
US202
Create a Question
High
As a Member, I want to create a Question for the community to answer, so that I can get enlightened regarding my doubt.
5
US203
Answer a Question
High
As a Member, I want to answer a Question created by other Member, so that I help him with his problems and doubts.
5
US204
Edit Profile Information
High
As a Member, I want to edit my own profile information, so that it's updated and adequate (e.g. changing profile picture and editing biography).
6
US205
Edit Account Settings
High
As a Member, I want to edit my own account settings, so that I keep my account safe (e.g. changing password).
6
US206
Vote a Comment
High
As a Member, I want to vote on a Comment, so that other Users know what I think about that Comment.
3
US207
Vote an Answer
High
As a Member, I want to vote on an Answer, so that other Users know what I think about that Answer.
3
US208
Vote a Question
High
As a Member, I want to vote on a Question, so that other Users know what I think about that Question.
3
US209
Create a Comment
Medium
As a Member, I want to comment an Answer or a Question, so that I can contribute to the discussion regarding that Question/Answer.
5
US210
Mark a Question
Low
As a Member, I want to mark a question, so that I have easier access to it.
1
US211
View Marked Questions
Low
As a Member, I want view my marked questions, so that I have easier access to them.
2
US212
Notifications
Low
As a Member, I want to see my notifications, so that I'm always aware of updates on my questions.
6
US213
Report a Message
Low
As a Member, I want to report a Message, so that the website remains without inadequate content.
6
Table 4: Member's user stories.
2.4. Owner
Identifier
Name
Priority
Description
Estimated Effort (in hours)
US31
Select correct Answer
Medium
As an Owner, I want to select a correct Answer to my own Question, so that other Users know what is the correct Answer without having to read all of the other answers.
5
US32
Delete a Question
Medium
As an Owner, I want to delete my own Question, so that the website does not contain inadequate information.
3
US33
Delete an Answer
Medium
As an Owner, I want to delete my own Answer, so that the related Question does not have inappropriate Answers.
3
US34
Delete a Comment
Medium
As an Owner, I want to delete my own Comment, so that the related Question/ Answer does not have inappropriate comments.
3
US35
Edit a Question
Medium
As an Owner, I want to edit my own Questions, so that I keep them updated and adequate.
2
US36
Edit an Answer
Medium
As an Owner, I want to edit my own Answers, so that I keep them updated and adequate.
2
US37
Edit a Comment
Medium
As an Owner, I want to edit my own Comments, so that I keep them updated and adequate.
2
US38
Edit a Question's Categories
Medium
As an Owner, I want to edit my Questions' Categories, so that I keep them updated and correct previous mistakes.
2
Table 5: Owner's user stories.
2.5. Moderator
Identifier
Name
Priority
Description
Estimated Effort (in hours)
US41
Select correct Answer
Medium
As a Moderator, I want to select a correct Answer to any Question, so that other Users know what is the correct Answer without having to read all of the other answers.
3
US42
Delete a Question
Medium
As a Moderator, I want to delete any Question, so that the website does not contain inadequate information.
3
US43
Delete an Answer
Medium
As a Moderator, I want to delete any Answer, so that the related Question does not have inappropriate Answers.
3
US44
Delete a Comment
Medium
As a Moderator, I want to delete any Comment, in order to filter inappropriate comments from a discussion.
3
US45
Edit a Question
Medium
As a Moderator, I want to edit any Question, so that I keep them updated and adequate.
2
US46
Edit an Answer
Medium
As a Moderator, I want to edit any Answer, so that I keep them updated and adequate.
2
US47
Edit a Comment
Medium
As a Moderator, I want to edit any Comment, so that I keep them updated and adequate.
2
US48
Edit a Question's Categories
Medium
As a Moderator, I want to edit the Categories of any Questions, so that I keep them updated and adequate.
2
Table 5: Moderator's user stories.
A1. Annex: Supplementary requirements
A1.1. Business rules
Identifier
Name
Description
BR01
Correct Answer restriction
There can only be one answer marked as correct, per question.
BR02
Self voting restriction
Users can't vote on their own messages.
BR03
Reputation points
Reputation points will be calculated according to the formula: $QuestionPoints + AnswerPoints + \frac{CommentPoints}{2} - Reports * 10$.
BR04
Number of categories
A question must have between one and five categories, inclusive.
BR05
Moderator Badge
Having achieved 500 reputation points and been awarded the Trustworthy Badge, a Member becomes a Moderator.
BR06
Delete Answer
Whenever an Answer is deleted the respective Comments should be deleted as well.
BR07
Delete Question
Whenever a Question is deleted the respective Answers (their comments) and the Question comments should be deleted as well.
BR08
Banned Message
A message is automatically eliminated after being reported over $(5 + score^{\frac{1}{3}})$ times.
BR09
Edited Message
An edited message must be adequately marked as such.
A1.2. Technical requirements
Identifier
Name
Description
TR01
Availability
The system must be available 99 percent of the time in each 24-hour period.
TR02
Accessibility
The system must ensure that everyone can access the pages, regardless of whether they have any handicap or not, or the Web browser they use.
TR03
Usability
The system should be simple and easy to use.
TR04
Performance
The system should have response times shorter than 2s 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 9.4 database management system must be used.
TR08
Security
The system shall protect information from unauthorized access through the use of an authentication and privilege verification system.
TR09
Robustness
The system must be prepared to handle and continue operating when runtime errors occur.
TR10
Scalability
The system must be prepared to deal with the growth in the number of users and corresponding operations.
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).
A1.3. Restrictions
Identifier
Name
Description
C01
Deadline
The system should be ready to be used by the end of May, in order to be properly assessed for delivery.
Revision history
22/02/2018: Added introduction and increased the priority of Votes and Badges.
23/02/2018: Actor image now has round heads.
24/02/2018: Decreased the usage of the word "information" and its variants.
25/02/2018: Edited several user stories regarding to reflect the teacher's suggestions (US01, US02, US03, US206, US207, US208, US38, US48), as well as business rules (BR01, BR02). Also added BR09.