SRS resources:
- https://www.linkedin.com/pulse/how-write-software-requirements-specification-srs-document-amr-saafan
- https://www.bmc.com/blogs/software-requirements-specification-how-to-write-srs-with-examples/
1.3.1. User: An individual who has registered and uses this chat application
1.3.2. Username: A unique identifier chosen by a user for their profile
1.3.3. Sender: A user who sends messages in a conversation
1.3.4. Recipient: A user who receives messages in a conversation
1.3.5. Conversation: The ongoing exchange of messages between two or more users within the chat application
Provide an overview of the major features and functionalities of the software. This section sets the stage for more detailed requirements later in the document.
Define the different user groups and their characteristics, including their roles and responsibilities.
Specify the hardware, software, and network environments in which the software will operate.
Describe any constraints that may impact the design or implementation of the software, such as technology choices, regulatory requirements, or third-party dependencies.
Here I use the MoSCoW prioritization method
3.1.1.1. [must-have] Users can view a list of other users so that they can initiate a conversation with them
3.1.1.2. [must-have] Users can find others by searching for usernames
3.1.2.1. [must-have] Users can initiate a 1-on-1 conversation by choosing another user from the user list or user search result, and then send a message
3.1.2.2. [must-have] Users can view a list of conversation, sorted by most recent activity
3.1.2.3. [must-have] Conversation's participants can send/receive messages in the conversation in real-time
3.1.2.4. [must-have] Sender can see their messages as being read by the recipient
3.1.3.1. [must-have] Users can search for others and the system displays matching results
3.1.3.2. [must-have] Users can search for messages from conversations and the system displays matching results