Project Report
Project Report
Faculty of Engineering
Department of Computer Science and
Engineering
Course Title: Software Development Project-II and Industrial Tour
Course Code: CSE-3116
Project Report
1 Introduction 2
i. Technical Information and Background.................................................2
ii. Objective of The Project.........................................................................2
iii. Scope of the Project................................................................................2
iv. Benefit or Significance of the Project....................................................2
2 Requirement Analysis 3
i. Feasibility Studies..................................................................................3
ii. System Requirement..............................................................................3
iii. User Requirements................................................................................3
a. Functional Requirements..................................................................3
b. Nonfunctional Requirements.............................................................4
3 System Model 4
i. Use Case Diagram..................................................................................4
ii. Class Diagram........................................................................................5
5 Conclusion 10
1
Title of the Project: Chatting Application
1. Introduction
The Chatting Application project aims to provide a robust, user-friendly platform for real-time
communication. The application is designed to support text-based messaging, multimedia
sharing, and group chats, catering to the growing demand for seamless digital interaction in
personal and professional spheres.
The Chatting Application project aims to create a real-time communication platform that supports
seamless text-based messaging, multimedia sharing, and group chats. Developed using Java and
Android Studio, the application leverages modern technologies like Firebase and Socket Programming
to ensure fast and reliable communication.
Key Technologies:
1. Java:
The core programming language used to build the application’s backend logic and Android-
specific functionalities. Java ensures platform compatibility, reliability, and efficient memory
management.
2. Android Studio:
The integrated development environment (IDE) for building Android applications. Android
Studio offers tools like a visual layout editor, debugging support, and performance profilers to
streamline the development process.
3. Firebase:
Firebase is used as the cloud-based backend to handle real-time database management,
authentication, and notifications. It provides robust services for user authentication and data
synchronization.
4. Socket Programming:
Sockets facilitate real-time communication by enabling direct data exchange between devices
over a network. This approach ensures low-latency messaging for a smoother user experience.
The primary objective of the Chatting Application project is to develop a reliable, real-time
communication platform that allows users to exchange messages and multimedia in a secure and user-
friendly environment. The application aims to meet the growing demand for fast, accessible, and
modern communication tools on mobile devices.
Specific Objectives:
1. Seamless Real-Time Messaging.
2. User Authentication and Security.
3. Customizable User Interface.
2
iii. Scope of the Project
The Chatting Application offers significant advantages to its users by providing a secure, efficient,
and user-friendly platform for real-time communication. Its impact spans personal, professional, and
organizational domains, addressing key challenges in digital communication.
Key Benefits and Significance:
1. Enhanced Communication.
2. Improved Accessibility.
3. Data Security and Privacy.
4. User-Centric Design.
5. Time and Cost Efficiency.
Significance to Stakeholders:
For Users: Offers a secure, efficient, and convenient way to communicate.
For Developers: Demonstrates expertise in Android development, Firebase integration, and
socket programming, showcasing technical skills.
For Businesses: Provides a platform for team collaboration, enhancing productivity and
efficiency.
2. Requirement Analysis
i. Feasibility Studies
1. Technical Feasibility:
Development Tools
Backend Services
Real-Time Communication
Platform Compatibility
2. Operational Feasibility:
User Demand
3
Ease of Use
Deployment
3. Legal Feasibility:
Data Privacy
Content Policy
Open-Source Licenses
1. Hardware Requirements
a. For Development
Processor: Intel i5 or higher (or equivalent AMD processor)
RAM: 8 GB or higher
Storage: 500 GB HDD or SSD with at least 20 GB free space
Graphics: Integrated or dedicated GPU for Android Studio rendering
Peripherals: Standard keyboard, mouse, and a high-resolution monitor
b. For End-Users
Device Type: Android smartphone or tablet
Processor: 1.4 GHz quad-core or higher
RAM: Minimum 2 GB
Storage: 50 MB of free space for the app installation, plus additional space for cached media
and messages
Network: Active internet connection (Wi-Fi or mobile data)
2. Software Requirements
a. For Development
Operating System: Windows 10/11, macOS, or Linux
Development Tools:
o Android Studio (latest version)
o Java Development Kit (JDK) 8 or higher
o Gradle (integrated with Android Studio)
Database: Firebase Real-Time Database
Version Control: Git and GitHub/Bitbucket for source code management
b. For End-Users
Operating System: Android OS version 5.0 (Lollipop) or higher
App Store: Google Play Store for application download
3. Functional Requirements
User Authentication:
o Secure login and registration using Firebase Authentication.
o Password recovery and social media login (optional).
4
Messaging Features:
o Real-time text messaging using socket programming.
o Delivery/read receipts and typing indicators.
o Support for multimedia sharing (images, videos, documents).
Data Storage and Syncing:
o Real-time data synchronization via Firebase.
o Storage of chat history and multimedia on Firebase Cloud Storage.
4. Performance Requirements
Low Latency: Ensure real-time message delivery within 1 second for active internet connections.
Scalability: Ability to handle up to 100 active users in the initial phase, with room for scaling.
Battery Optimization: Minimal battery consumption on Android devices.
5. Security Requirements
End-to-end encryption for secure messaging.
Secure storage of user credentials and chat history in Firebase.
Protection against unauthorized access and data breaches.
Functional Requirements:
1. General User Requirements
Account Management
Real-Time Messaging
2. Usability Requirements
User Interface (UI)
User Experience (UX)
Non-functional Requirements:
1. Performance Requirements
Response Time
Scalability
Efficiency
2. Security Requirements
Data Protection
Authentication
Data Privacy
5
3. System Model
6
ii. Class Diagram
7
iii. Flow-chart
8
4. Design, Implementation and Testing
High-Level Architecture
The system architecture comprises the following key components:
1. Client-Side (Front-End)
2. Backend (Server-Side)
3. Networking Layer
4. Data Layer
3. Back-End Implementation
Firebase Integration:
o Authentication:
o Realtime Database:
o Cloud Storage:
iii. Testing
1. Unit Testing
Objective:
Test individual components or modules in isolation to ensure they perform as expected.
Examples:
o Test the login functionality with valid and invalid credentials.
o Verify that messages are correctly sent, received, and stored in the Firebase Realtime
Database.
o Validate multimedia uploads and retrieval from Firebase Cloud Storage.
2. Integration Testing
Objective:
9
Ensure that different components of the system work together seamlessly.
Examples:
o Verify the interaction between the front-end and Firebase backend.
o Test real-time updates using socket communication between two users.
o Check data consistency between the local cache and the Firebase Realtime Database.
Tools:
o Firebase Test Lab for simulating multiple devices and network conditions.
3. Functional Testing
Objective:
Validate that the application meets all specified functional requirements.
Examples:
o Test user registration, login, and profile updates.
o Ensure group chat features like adding/removing members and message
synchronization work correctly.
o Verify the functionality of push notifications for new messages.
4. Performance Testing
Objective:
Assess the application’s performance under different loads and stress levels.
Examples:
o Simulate 100 concurrent users sending messages to ensure the server can handle the
load.
o Measure the application’s response time for delivering messages.
Tools:
o Android Profiler for analyzing resource usage (CPU, memory, and battery)
5. Conclusion
Key Highlights:
1. Technical Achievements:
2. User-Centric Features:
3. Scalability and Performance:
4. Learning Outcomes:
Future Enhancements:
The current implementation provides a strong foundation for future improvements, including:
Adding voice and video calling features.
Extending platform compatibility to iOS and web browsers.
Incorporating AI-based chatbots for automated responses and assistance.
Enhancing accessibility with support for multiple languages and improved accessibility
features.
1
0
Appendix:
1
1
GitHub Link: https://github.com/ce20034/Boithok.git
1
2