2. Requirements - korayozgurbuz/SWE573TermProject GitHub Wiki
2.1 Functional Requirements
2.1.1 System
Below are the requirements which specifies what the system should do.
2.1.1.1 The system shall be able to take the authorization request if a user wants to sign up.
2.1.1.2 The system shall be able to get a keyword.
2.1.1.3 The system shall be able to list the last 20 twitter accounts who used this keyword while posting a tweet.
2.1.1.4 The system shall be able to count the number of tweets posted in a day by these accounts.
2.1.1.5 The system shall be able to collect the last 100 tweets tweeted by these accounts.
2.1.1.6 The system shall be able check the number of retweets among the last 100 tweets of these accounts.
2.1.2 User
Below are the requirements which specifies what the user should do.
2.1.2.1 The user shall be able sign up and give authorization to system.
2.1.2.2 The user shall be able to log in to and log out from the system.
2.1.2.3 The user shall be able to search for various keywords in the system.
2.1.2.4 The user shall be able to see at most 20 accounts tweeted with the entered keyword.
2.1.2.4 The user shall be able to see the bots among these accounts.
2.2 Non-Functional Requirements
These are the requirements which describe how a system should behave and what limits there are on its functionality.
2.2.1 The system shall be available, and usable to end users on a browser. Users should not be required to have a software development background to use the system.
2.2.2 The system shall be both resource-efficient and scalable The system shall have responsive user interfaces so that it can be more accessible. It shall support modern web browsers such as Chrome or Firefox and their corresponding mobile versions.
2.2.3 The system shall use and contain only open source technologies, libraries, and tools.
2.2.4 The system shall be fast enough not to bother its users. Any user interaction should not take longer than 3 seconds in a local development environment, except 3rd party API transactions.
2.2.5 The system shall expose an HTTP RESTful API which supports every user interactions which can also be done via the user interfaces of the system. This API shall have complete documentation.
2.2.6 The system shall be able to be deployed in a virtual environment which is completely isolated from operating systems.