Fixed Requirements ( Draft) - bounswe/2021SpringGroup1 GitHub Wiki
1.1 User Requirements
-
1.1.1 Registration and Log in
- 1.1.1.1 A user shall be able to register by providing a valid e-mail address, a username, and a strong password.
- 1.1.1.2 Users shall be able to register by providing their twitter or facebook social media accounts.
- 1.1.1.3 Users shall be able to log in to their account with their email/username and password.
- 1.1.1.4 If a user logged in to their account, then the next time they open the app they will be logged in automatically.
- 1.1.1.5 Users shall be able to login by providing their social media account which they used during registration.
-
1.1.2 Home Page
- 1.1.2.1 Users should be able to see posts from their communities in their home page.
- 1.1.2.2 Users should be able to see the communities that they're joined.
- 1.1.2.3 Users should be able to name search and list other users provided that their accounts are public.
- 1.1.2.4 Users should be able to name search and list communities.
- 1.1.2.5 Users should be able to title search and list post in their home post feed.
-
1.1.3 Settings Page
- 1.1.3.1 Users should be able to change mode of the app (light and dark mode).
- 1.1.3.2 Users should be able to disable notifications.
- 1.1.3.3 Users should be able to log out from the app.
- 1.1.3.4 Users should be able to add profile pictures from settings menu.
-
1.1.3.5 Changing password/username
- 1.1.3.5.1 Users shall be able to change their username if the username they wish to use is available.
- 1.1.3.5.2 Users shall be able to change their password with e-mail confirmation.
-
1.1.3.6 Account Privacy
- 1.1.3.6.1 Users shall be able to make their profile public or private.
- 1.1.3.6.2 Users shall be able to accept or send follow requests from/to other users.
- 1.1.3.6.3 Users shall be able to block other users. Blocked users can't see the activities of that user and also can't message them.
-
1.1.4 Community Features
- 1.1.4.1 A user shall be able to create a community by specifying a unique name, description and privacy status (public or private). After a successful creation, user shall be a moderator of that community.
- 1.1.4.2 A user shall be able to view a community page that will contain community post feed and information.
- 1.1.4.3 Users shall be able to join to any public community.
- 1.1.4.4 Users shall be able to leave a community that they're currently joined.
-
1.1.5 Moderating Features
- 1.1.5.1 Moderators can ban users if the users engage in an ill behaviour.
- 1.1.5.2 Moderators should be able to assign other users as moderators.
- 1.1.5.3 Moderators should be able to send users email invitations to the community.
- 1.1.5.4 Moderators should be able to delete the community that they moderate.
- 1.1.5.5 Moderators should be able to create community specific post tags that can be used in the posts.
-
1.1.6 Post Templates
- 1.1.6.1 Community moderators should be able to create post templates for their communities.
- 1.1.6.2 Community moderators should be able to select and add multiple data fields to the post templates.
- 1.1.6.3 Users should be able to list and select post templates during post creation.
-
1.1.7 Posts
- 1.1.7.1 Users should be able to see post feed of a community in its respective community page.
- 1.1.7.2 Users should be able to create a post in a joined community by selecting a post template and filling out necessary fields.
- 1.1.7.3 Users should be able to sort post by various criteria in post feeds.
- 1.1.7.4 Users should be able to add existing tags to their posts.
- 1.1.7.5 Users should be able to search for titles of posts with keywords using search bar in both home and community post feed.
- 1.1.7.6 Users should be able to filter posts in terms of their communities, post templates, and the query methods defined for the data field types in the post template.
- 1.1.7.7 Users should be able to like or comment to posts in both home and community post feed.
1.2 System Requirements
-
1.2.1 Notification
- 1.2.1.1 System notifies users when there is a new post in their communities.
- 1.2.1.2 System notifies users when people like their posts.
- 1.2.1.3 System notifies users when people comment their posts.
- 1.2.1.4 System notifies users when people like comments.
- 1.2.1.5 System notifies users when people comment comments.
-
1.2.1.6 System gives an option to users disallow notifications that come from
- 1.2.1.6.1 posts
- 1.2.1.6.2 comments
- 1.2.1.6.3 likes
-
1.2.2 Users and Communities
- 1.2.2.1 System must ensure uniqueness of the username and e-mail before registration.
- 1.2.2.2 Users shall enter their password 2 times to prevent typos in registration.
- 1.2.2.3 To register, users must confirm their e-mail adress using a link sent by the system.
- 1.2.2.4 System must ensure uniqueness of the name of a community before community creation.
- 1.2.2.5 System will not permit usage of priveledged moderator actions by regular users of the community.
- 1.2.2.6 Users shall be redirected to their homepage after a successful login.
-
1.2.3 Post Templates and Data Fields
- 1.2.3.1 System must support post templates that contain multiple data field types including but not limited to text, image, location.
- 1.2.3.2 System must be able to render posts that contain different data field types correctly in the UI.
- 1.2.3.3 System must ensure the exclusivity of post templates to their respective communities (i.e. System should not allow post template usage outside its community.)
-
1.2.4 Recommendation
- 1.2.4.1 System must be able to recommend new communities to the users according to their current communities.
- 1.2.4.2 System must be able to recommend the most followed communities to the users.
- 1.2.4.3 System must be able to recommend the most liked posts in the users joined communities.
-
1.2.5 Search/Filter
- 1.2.5.1 System must support text search on names/ titles of users, communities and posts.
- 1.2.5.2 System must support tag based filtering on posts.
- 1.2.5.3 System must support queries on data fields based on their type. These queries will be used by users to filter specific posts.
2.1 Availability
- 2.1.1 Application shall be available on Android based mobile application stores.
- 2.1.2 System shall be accessible using modern web browsers.
2.2 Standards
- 2.2.1 The semantic taggings should be supported with Wikidata.org
- 2.2.2 The system must follow the rules of W3C Activity Streams Standards 2.0
2.3 Privacy
- 2.3.1 Users shall agree to the User Terms & Policy Agreement before registration.
2.4 Security
- 2.4.1 User's password will be encrypted with SHA-256 and only encrypted passwords will be contained in the database.
- 2.4.3 JWT or Authentication Tokens will be used to authenticate users.