Skip to content
Davide64-dev edited this page Jan 28, 2024 · 1 revision

ER: Requirements Specification Component

In today's dynamic social media landscape, there's a growing need for a user-friendly platform, especially among students and academics seeking reliable information and effective communication tools. With this goal in mind, our network aims to redefine the social networking experience.

A1: Gamma

Gamma is an academic-focused social network that is being developed by a startup team that pretends to distemper the way we use social media.

Our primary objective is to engage students within a vibrant academic community, enabling them to actively search for information and interact seamlessly with their peers.

Our social network allows authenticated users to create posts, which can be either private or public. These posts can include text messages, web links, and media files. Users can also engage with these posts by liking them and leaving comments. We will also have a place where users can see the main features of our product, as well as a contact form and some information about who we are.

Additionally, users have the option to set their profiles to private, which automatically sets all their posts to be visible only to approved friends. Any authenticated user can send a friend request to other authenticated users. The non authenticated users can navigate through the website and see public posts/groups before creating an account. In order to be able to post, comment or like an item in our social network, the non authenticated user will have to authenticate themselves or create a new account if they don’t already have one.

The authentication method allows users to log in into the social network with their email address and a password chosen by them.

Users are also able to create private or public groups, where the users can see and post more focused content. All groups will have a group owner, which is responsible for the management of the group, so they can delete posts from other users as well remove them from the group

To ease the social network’s management, there will be admin accounts, who will have a specialized page to perform their duties. Admins are important so that we can ease the process of enforcing a decent usage of our website. In addition, they will be able to manage everything from the website, including blocking and deleting normal users.

We want to provide the best user experience possible, so, due to the fact that there is the possibility of our network having a fairly high number of users and posts, all users should have the ability to filter the content they are shown on the homepage as well as searching for other users so they can better build an extremely fulfilling network and experience without having to work much so they can see and interact with whoever and whatever they like. Users will be able to apply filters and search for full or partial text.


A2: Actors and User stories

This artifact aims to provide documentation outlining the essential prerequisites required for our social media platform. These requirements are categorized into actors, user stories, business rules, technical specifications, and limitations.

1. ActorsUntitled_Diagram.drawio

Identifier Description
User Generic user that has access to public information, such as public posts and public profiles.
Guest A guest is someone who is not authenticated and can sign in or sign up.
Authenticated User An authenticated user is a user that has an account and can post, comment and react to other posts, public or private. This user can also join/leave groups and befriend other users.
Group Owner A group owner can manage the group they own, manage group members and group posts.
Post Author A post author can edit or remove the post. They can also set to visibility of the post to public or private.
Comment Author A comment author can edit or remove their comment.
Reaction Author A reaction author can remove their reaction.
Administrator An administrator can delete, block and unblock users as well as deleting posts and comments. They have the responsibility of managing the website and enforcing the rules.

2. User Stories

2.1. User

Identifier Name Priority Description
US01 View Public Timeline High As an User, I want to be able to view the public posts of all users so that I don't need to register/login.
US02 View Public Profiles High As an User, I want to be able to view the profile of all public users so that I don't need to register/login.
US03 Search for Public Users High As an User, I want to be able to search for public users so that I don't need to register/login.
US04 Exact Match Search High As a User I want be able to specify to the search engine that I want to see only results with specific words that I can specify during the search so that the search becomes more efficient.
US05 Full Text Search High As a User I want be able to specify to the search engine certain text terms and I want to find the result that contain pieces of those texts so that the search becomes more efficient.
US06 Search Over Multiple Attributes Medium As an User I want be able to search information by the attributes of the entities of the website such as profile's username or role, as well as attributes such as descriptions of posts so that the search becomes more efficient.
US07 Search Filter Medium As a User, I want to use search filters to search only profiles, groups or posts so that the search becomes more efficient.
US08 Contextual Error Messages Medium As a User, I want to have contextual error messages, so that I can fix what I made wrong.
US09 Contextual Help Medium As a User, I want to have contextual help every time I need, so that I can easily be more informed.
US10 About US Medium As a User, I want to have an About Us page so that I can check the company's reputation.
US11 Contacts Low As a User, I want to have a Contacts page so that I can contact the responsible team and solve all my problems.
US12 Main Features Low As a User, I want to have a Main Features page so that I can check what are the main features of the system.
US13 Placeholders in Form Inputs Low As a User, I want to have placeholders in form input so that I can remember what it is supposed to write.

2.2. Guest

Identifier Name Priority Description
US14 Login High As a Guest, I want to be able to login to my account so that I can post.
US15 Register High As a Guest, I want to be able to register a new account so that I can empower myself to have the capabilities of an authenticated user.

2.3. Authenticated User

Identifier Name Priority Description
US16 Logout High As an Authenticated User, I want to be able to logout from my account so that I can delete my session.
US17 Search High As an Authenticated User, I want to be able to search for users, posts and groups, private or public so that I can enter in the respective pages.
US18 View Profile High As an Authenticated User, I want to be able to view my profile as well as other users' public profiles so that I can send friendship invites.
US19 Send Friend Request High As an Authenticated User, I want to be able to send friend requests to other users so that my network can grow.
US20 Manage Received Friend Requests High As an Authenticated User, I want to be able to accept friend requests from other users so that my network can grow.
US21 Manage Friends High As an Authenticated User, I want to be able to remove friends from my friends list si that I can filter my network.
US22 Create Post High As an Authenticated User I want to be able to create a post with a text and other relevant attachments so that I can express myself better.
US23 View Personalized Timeline High As an Authenticated User, I want to be able to view the posts of the users I'm friends with and of the groups I belong.
US24 Support Profile Picture Medium As an Authenticated User I want be able to upload a profile picture as well as editing it so that people can identify me.
US25 Recover Password Medium As an Authenticated User, I want to be able to recover my password so that I can log in again.
US26 Delete Account Medium As an Authenticated User, I want to be able to delete my account so that I can change my mind about the website.
US27 Edit Profile Medium As an Authenticated User, I want to be able to edit my profile so that I can edit it.
US28 View Personal Notifications Medium As an Authenticated User I want to be able to receive notifications that I subscribed such as a friend posting or interactions with my profile, posts and comments so that I can answer the fastest way possible.
US29 Appeal for Unblock Medium As an Authenticated User I want to be able to appeal for a unban given to me either in a group or in the website itself so that I can be back on the group.
US30 Comment on Posts Medium As an Authenticated User I want to be write comments on posts I like and want to interact with so that I can grow my network.
US31 React to Post Medium As an Authenticated User I want to be able add a reaction to a post so that people can see my reaction to the post.
US32 React to Comment Medium As an Authenticated User I want to be able add a reaction to a comment so that people can see my reaction to the comment.
US33 Create Group Medium As an Authenticated User I want to be able to create a group either public or private so that the posts can be more organised.
US34 Manage Group Invitations Medium As an Authenticated User I want to be able to manage the invitations I receive from groups as well as to impose limits as to whether or not I want to receive invitations so that I can answer to them faster.
US35 View Friends' Feed Medium As an Authenticated User I want to be able to see my friends profiles and what they are doing in the website so that I can check my network.
US36 Tag Friends in Post Medium As an Authenticated User I want to be able to tag a friend so that he can be notified.
US37 Friend Requests Medium As an Authenticated User, I want to receive a notification every time I receive a Friends request, so that I can be up-to-date with my account.
US38 Upload CV Low As an Authenticated User, I want to be able to upload my CV so that recruiters can see it.
US39 Copy post link Low As an Authenticated User, I want to be able to copy the post link so that I can share it.

2.4. Group Member

Identifier Name Priority Description
US40 View Group's Members Medium As a Group Member, I want to see the members of a group.
US41 Post on Group Medium As a Group Member, I want to post on a group, so that I can add content to the group feed.
US42 Leave Group Medium As a Group Member, I want to leave a group, so that I am no longer in the group and don't see the group posts in my feed.

2.5. Group Owner

Identifier Name Priority Description
US43 Add to Group High As a Group Owner, I want to be able to add a member to the group so that the group can grow and influence more people.
US44 Manage Join Requests High As a Group Owner, I want to be able to manage the join requests that are being made so that I can check the person's motivation.
US45 Edit Group Info Medium As a Group Owner, I want to edit the group information, so that I can keep it up-to-date.
US46 Remove Member Medium As a Group Owner, I want to be able to remove a member from the group so that I can avoid topics that are out of scope.
US47 Remove Post From Group Medium As a Group Owner, I want to be able to remove a post from the group so that I can avoid having content that is out of scope.
US48 Change Group Visibility Medium As a Group Owner, I want to be able to change the visibility of the group so that if I change my mind, I can go back and change the specifications.

2.6. Post Author

Identifier Name Priority Description
US49 Edit Post High As a Post Author, I want to edit my post, so that I can ensure the correctness of the post.
US50 Delete Post High As a Post Author, I want to delete my post, so that I can remove my content from the website.
US51 Likes on Own Post Medium As an Post Author, I want to receive a notification every time somene likes one of my posts, so that I can be up-to-date with my account.
US52 Comments on Own Posts Medium As an Post Author, I want to receive a notification every time someone comments one of my posts, so that I can be up-to-date with my account.
US53 Manage Post Visibility Low As a Post Author, I want to change change the visibility of my post to private or public, so that I can control who sees my post.

2.7. Comment Author

Identifier Name Priority Description
US54 Edit Comment Medium As a Comment Author, I want to edit my comment, so that I can ensure the correctness of the post.
US55 Delete Comment Medium As a Comment Author, I want to delete my comment, so that I can remove my content from the website.

2.8. Reaction Author

Identifier Name Priority Description
US56 Delete Reaction Medium As a Reaction Author, I want to delete my reaction, so that I can remove content from the website.

2.9. Administrator

Identifier Name Priority Description
US57 Administer Account High As a Admin, I want an account with higher privileges, so that i can manage the website.
US58 Manage User Accounts High As a Admin, I want to search user accounts, so i can easily manage the accounts in the website.
US59 Delete Users Accounts High As a Admin, I want to be able to delete users accounts, to manage the website.
US60 Create Users Accounts High As a Admin, I want to be able to create users accounts, to manage the website.
US61 Edit Users Accounts High As a Admin, I want to be able to edit users accounts, that is, to delete their posts, comments or reactions, to manage the website.
US62 Block User Medium As a Admin, I want to block users, preventing them from creating posts, comments, reactions and groups, so that I can mantain a good environment.
US63 Unblock User Medium As a Admin, I want to unblock blocked users, to restore their ability to create posts, comments, reactions and groups.

3. Supplementary Requirements

3.1. Business rules

Identifier Name Description
BR01 User's Own Post A user can vote/comment/review its own stories/answers.
BR02 Deleted user's content When user is deleted, his posts/comments becomes anonymous and his personal data is deleted.
BR03 Date's coherency Exit date >= entry date.

3.2. Technical requirements

Identifier Name Description
TR01 Performance The system should have response times shorter than 2s to ensure the user's attention.
TR02 Robustness The system should be sufficiently robust in order to keep working even on the event of a failure during runtime.
TR03 Usability The system must not be organized in such a way that a smooth and eased user experience will be impaired and the users must not be required to have any sort of technical requirements.
TR04 Ethics The system must not be used as a mean to steal and sell user information to third parties, being the only goal of the system to provide people with a way to privately communicate with each other.
TR05 Security The system must implement security best practices in order to protect user's data at all costs as well as protecting the availability of the system.
TR06 Scalability The system should be able to handle an increase in the user base and their activities.
TR07 Accessibility The system must guarantee universal accessibility to its web pages, accommodating individuals with disabilities and users of any web browser.
TR08 Database We require the utilization of the PostgreSQL database management system, specifically at version 11 or a more recent iteration.
TR09 Web Application The web application should be built using HTML5, JavaScript, CSS3, and PHP. This will ensure that the system is easily accessible from anywhere without the need to install specific applications or software, adopting standard web technologies.
TR10 Portability The server-side system should be designed to work across multiple platforms, including Linux, Mac OS, and others.
TR11 Ethics The system should adhere to ethical principles in software development, exemplified by refraining from collecting or sharing personal user details or usage data without obtaining explicit acknowledgement and authorization from the data owner.

3.3. Restrictions

Identifier Name Description
R01 Deadline This project must have a stable release at the end of the semester.

A3: Information Architecture

This artifact comprises a detailed report featuring the sitemap, information architecture, and wireframes for our upcoming social networking website. It serves as a critical reference document, outlining the structural and design elements of our digital platform.

1. Sitemap

info

2. Wireframes

UI01: Homepage

downloads2

UI12: Group Page

downloads


Revision history

Changes made to the first submission:

  1. Item 1
  2. ...

GROUP2391, 19/09/2023