# Requirements ## 1. Functional Requirements ### 1.1 User Requirements #### 1.1.1 Register & Login * 1.1.1.1 Users shall be able to register with a unique username, e-mail address, and password. * 1.1.1.2 User passwords shall meet safety criteria (min length, uppercase-lowercase letters, special symbols). * 1.1.1.3 Users shall be able to log in using their registered credentials. * 1.1.1.4 Users should have the option to reset their password via e-mail verification. * 1.1.1.5 Users shall be able to log out from the system. #### 1.1.2 User Types ##### 1.1.2.1 Global User * 1.1.2.1.1 Global user shall be able to view posts. * 1.1.2.1.2 Global user shall be able to view exchange rates. * 1.1.2.1.3 Global user shall be able to view user profiles. * 1.1.2.1.4 Global user shall be able to search for users by their usernames. * 1.1.2.1.5 Global user shall be able to semantic search for posts. * 1.1.2.1.6 Global user shall accept the Terms of Use and Privacy Policy in order to register. * 1.1.2.1.7 Global user shall enter their e-mail, username and a password in order to register. * 1.1.2.1.8 Global user shall be able to view recent news about financial markets. ##### 1.1.2.1.1 Registered User * 1.1.2.1.1.1 Registered users shall be able to create posts. * 1.1.2.1.1.2 Registered users shall be able to like posts. * 1.1.2.1.1.3 Registered users shall be able to write comments to posts. * 1.1.2.1.1.4 Registered users shall be able to bookmark a post. * 1.1.2.1.1.5 Registered users shall be able to follow other users on the platform. * 1.1.2.1.1.6 Registered users shall be able to view her/his followers. * 1.1.2.1.1.7 Registered users shall be able to remove her/his followers. * 1.1.2.1.1.8 Registered users shall be able to view the content posted by followed accounts. * 1.1.2.1.1.9 Registered users shall be able to view his/her bookmarked posts. * 1.1.2.1.1.10 Registered users should be able to add graphs to their posts. ##### 1.1.2.1.1.1 Admin * 1.1.2.1.1.1.1 An admin shall be able to ban user accounts. * 1.1.2.1.1.1.2 An admin shall be able to remove(ban) posts. * 1.1.2.1.1.1.3 An admin shall be able to remove(hide) comments on posts. #### 1.1.3 Profile Preferences * 1.1.3.1 Users shall be able to view profile information. * 1.1.3.2 Users shall be able to update her/his profile information. * 1.1.3.3 Users shall be able to view films watched by him/her. * 1.1.3.4 Users should be able to add/remove a profile photo. * 1.1.3.5 Users should be able to change their username. * 1.1.3.6 Users should be able to have a badge.