SRS_flutter
SRS_flutter
Software Requirements
Specification (SRS)
Of
By
Kumar Harsh(22SOEIT11047)
Disha Singh(22SOECE11199)
RK University Rajkot Gujarat
Dated: 13/08/2024
Page 2
INDEX
1. Introduction
1.1 Purpose
Page 2
1.2 Scope
1.3 Definitions, Acronyms, and Abbreviations
1.4 References
1.5 Overview
2. System Overview
3. System Requirements
4. Non-Functional Requirements
5. System Architecture
6. User Interface
7. System Models
8. Quality Assurance
9. Deployment
10. Documentation
13. Appendices
13.1 Glossary
13.2 Acronyms
13.3 Index
13.4 References
Page 2
1. Introduction
1.1 Purpose
The purpose of this SRS document is to define the requirements and specifications
for "ChatCom," a chat application developed using Flutter. It outlines the functional
and non-functional requirements, design constraints, and other key aspects
necessary for the development of the application.
1.2 Scope
1.4 References
1.5 Overview
2. System Overview
● Real-time messaging
● Multimedia sharing
● Group chats
● Message encryption
● End Users: General users who will use the app for communication.
● External APIs used (e.g., for push notifications) will remain stable.
3. System Requirements
Users must be able to register using their phone number, email, or social
media accounts. Authentication mechanisms will include password-based
logins and Two-Factor Authentication (2FA).
Users can create and update their profiles, including name, status
message, profile picture, and other personal information.
Users can add, edit, and delete contacts. The app should sync contacts
from the device’s address book and allow manual addition.
Page 2
Users can initiate one-on-one chats and group chats. They can also delete
and archive chats.
The core feature of the app, allowing users to send and receive messages
in real time.
Messages will show indicators for sent, delivered, and read statuses,
providing transparency on the message delivery process.
Users can send multimedia content like images, videos, and audio files
within chats.
Allows users to share various file types (e.g., PDFs, DOCs) within chats.
Users can create group chats, add or remove participants, and assign roles
(e.g., admin).
Users can search through their chat history using keywords, date filters, etc.
Sends real-time push notifications for incoming messages, calls, and other
important events.
Allows users to send messages even when offline, which will be delivered
when the user comes online.
Users can view chat history and back up chats to cloud storage for future
retrieval.
All messages and calls are encrypted end-to-end, ensuring privacy and
security.
Users can initiate and receive voice and video calls through the app.
Maintains a log of all voice and video calls made through the app.
Users can post status updates (text, images, videos) that disappear after
24 hours, similar to Instagram Stories.
Allows users to pin important chats to the top of their chat list for easy
access.
Users can customize the chat interface with themes and wallpapers.
Supports a dark mode option to reduce eye strain and save battery life on
OLED screens.
Users can format their messages with bold, italic, strikethrough, and other
text styles.
Allows users to share and add contacts via QR codes for ease of use.
Messages and settings will sync across multiple devices for users who
access the app on different platforms.
Users can manage data usage and storage settings, including the ability to
limit downloads to Wi-Fi.
Allows users to export their chat history for external use or backup.
4. Non-Functional Requirements
● The app must handle high volumes of traffic without latency issues.
● The application must comply with GDPR and other data protection
regulations.
● The app should support regular updates without disrupting the user
experience.
● The app must be fully functional on iOS, Android, and Web platforms
with consistent user experience across all.
5. System Architecture
● The mobile app (client) sends requests to the server for operations
like sending messages, which the server processes and forwards to
the intended recipient.
● Diagrams will illustrate how data moves between the app, server,
and database, including login flows, message transmission, and
synchronization.
● The app may integrate with third-party services like Firebase for
push notifications, and cloud storage services for media backups.
6. User Interface
● The app will use a bottom navigation bar for quick access to primary
sections like Chats, Contacts, Calls, and Settings.
6.3 UI Mockups
including key screens like chat windows, contact lists, and user profiles.
7. System Models
● Diagrams depicting the states of the app and its components during
different operations, like sending a message, connecting to the
server, etc.
8. Quality Assurance
(UAT).
● Tests will ensure that different modules of the app work together as
expected.
● The entire app will be tested as a whole to ensure all features work
together seamlessly and meet the requirements.
● The app’s user interface and overall user experience will be tested
to ensure it is intuitive and easy to use.
Page 2
9. Deployment
10. Documentation
● A list of features that are planned for future versions of the app,
such as AI-powered chatbots, advanced analytics, etc.
Page 2