Chat Application
Chat Application
Chat Application
By
Shivansh (RA2011003010988)
Naman Kaushik (RA2011003010993)
Arhsdeep Singh Sodhi
(RA2011003010983)
Modoguru Vishal0 (RA2011003010986)
Dr. L. Kavisankar
of
in C.Tech
NOVEMBER 2022
SRM INSTITUTE OF SCIENCE AND TECHNOLOGY
BONAFIDE CERTIFICATE
Certified that this mini project report "CHAT APPLICATION " is the bonafide
work of Shivansh (RA2011003010988), Naman Kaushik
(RA2011003010993), Arshdeep Singh Sodhi (RA2011003010983) and
Modoguru Vishal (RA2011003010986) who carried out the project work under
my supervision.
SIGNATURE
Dr. L Kavisankar
Assistant Professor
CTech
SRM Institute of Science and Technology
II
ABSTRACT
The " Chat Application" has been developed to override the problems prevailing in the
practicing manual system. This software is supported to eliminate and in some cases
reduce the hardships faced by this existing system. Moreover this system is designed for
the particular need of the company to carry out operations in a smooth and effective
manner.
The application is reduced as much as possible to avoid errors while entering the data. It
also provides error message while entering invalid data. No formal knowledge is needed
for the user to use this system. Thus by this all it proves it is user-friendly. Online Chat
Application, as described above, can lead to error free, secure, reliable and fast
management system. It can assist the user to concentrate on their other activities rather
utilization of resources.
III
ACKNOWLEDGEMENT
Finally, we thank our parents and friends near and dear ones who
directly and indirectly contributed to the successful completion of our project.
Above all, I thank the almighty for showering his blessings on me to complete my
Course project.
6
TABLE OF CONTENTS
CHAPTERS CONTENTS
1. ABSTRACT
2. INTRODUCTION
3. LITERATURE SURVEY
4. REQUIREMENT ANALYSIS
5. ARCHITECTURE & DESIGN
6. APPLICATION OOP DESIGN
7. EXPERIMENT RESULTS & ANALYSIS
7.1. RESULTS
7.2. RESULT ANALYSIS
8. CONCLUSION & FUTURE ENHANCEMENT
9. REFERENCES
7
1. INTRODUCTION
Scenario Description:
We aim to design a server-client-based chat application that allows users to
with an end to end encryption from the database. The user will send a
request from theclient side asking for with and encryption to send message
,audio, video and the server code will accept the request and send the file.
It provides a general architecture for chat applications, and anyone or organization can use it
as the basis for providing instant messaging capabilities. The application is written in an
object-oriented language called Java. . Function flow, lambda, and NIO play a very important
role in the
implementation. The application is divided into two parts, server and client
8
2. LITERATURE SURVEY
The purpose of Chat Application is to automate the existing manual system by the help of
computerized equipments and full-fledged computer software, fulfilling their requirements,
so that their valuable data/information can be stored for a longer period with easy accessing
and manipulation of the same. The required software and hardware are easily available and
easy to work with.
The Software Requirements Specification is produced at the culmination of the analysis task. The
function and performance allocated to software as part of system engineering are refined by
establishing a complete information description, a detailed functional and behavioral description, an
indication of performance requirements and design constraints, appropriate validation criteria, and
other data pertinent to requirements.
9
3. REQUIREMENTS
Functional Requirements
The following are the functional requirements of the system:
• The system shall provide the user the ability to create a new account.
• The system shall provide the user the ability to login with the username and
password
chosen at the time the account was created.
• The system shall deliver sender’s message to receiver instantly if the receiver is
online.
• The system shall deliver sender’s message to receiver once the receiver is back
online if
the message was sent when receiver’s offline.
• The system shall present the sender’s message to all other users in the group if
the
message is sent to a group.
• The system shall allow multiple users chat in one single room.
• The system shall allow user to talk via video
• The system shall allow user to talk via audio
Non-Functional Requirements
The following are the non-functional requirements of the system:
• The system shall be a web-based application that can provide all the
functions over
the internet.
• The system shall deliver messages in the same order it gets sent out.
• The system shall guarantee the delivery. And shall notice sender if
message is not
delivered successfully.
• The system shall be scalable and robust.
• The system shall be cost efficiently. It shall not cost a lot if there is not
many users.
• The system shall deliver the message relatively quickly.
1
2.1 Database Requirements
MySQL is used to store all the information we want to keep, especially data that
such as user friend relationships. Connecting and reading the database is time
consuming because the database needs to read and write from disk. Therefore, the
project uses the in-memory database REDIS to use both storage and caching.
REDIS provides storage for key-value pairs. It rarely reads and writes to the
database, and most of the time it performs data operations in memory, which saves
a lot of time and greatly reduces the response time of the application. Key-value
3. Software Specification
This application is written in Java, thus there is not much requirement for clients’
machine. The following specification is the software and hardware we used while
developing the application.
1
Frontend Technology Angular
Hardware
Processor Intel i3
Software
IDE IntelliJ
1
4. ARCHITECTURE AND DESIGN
4.1 Architecture
1
The application architecture is designed with 3 main layers, presentation layer, business layer and
persistence layer. And based on the client-server nature of this application, presentation layer is located at
client side, and for better performance, there is also a cache layer
at client side. And the business layer and persistence layer is located at server side. And the detail of each
layer is designed as below:
1
Presentation Layer: The presentation layer is basically the user interface in this application.
It’s written with Angular. Angular is a TypeScript-based open-source web application
framework. At the end, it’s based on javascript. And in this application the UI is designed as
below:
• Landing page. Provide a form for user to put in user name and password to
• Once logged in, there will be 3 panels. First one shows all the conversations.
Second one show all the friend list. The last one is the chatting page
• In the conversations list, user can click any conversation to enter the conversation
page.
Cache Layer: we store the chat history in the cache layer in user’s machine
1
4. Application OOP Design
1
5. Database Designer
User
User_activity
Conversation
1
Send timestamp The time stamp receiver receives
the msg
Friendship
ServerSide
-ms-account-management
-src.main.java.com.chat.msaccountmanagement
-Controller.java
-MsAccountManagementApplication.java
-model
-FriendShip.java
-User.java
-repository
-UserRepository.java
-UserDbRepository.java
-service
-AccountService.java
-pom.xml
-ms-chat-application
-src.main.java
-MsChatApplicationMain.java
-model
-ChatMessage.java
-controller
-ChatController.java
-WebSocketEventListener.java
-config
-WebSocketConfig.java
1
-
pom.xml
ClientSide
-app
-app.component.css
-app.component.html
-app.component.ts
-app.module.ts
-chatList
-chatlist.component.css
-chatlist.component.html
-chatlist.component.ts
-chatPage
- chat.component.css
- chat.component.html
- chat.component.ts
-confirmation-dialog
-confirmationDialog.component.css
- confirmationDialog.component.html
- confirmationDialog.component.ts
-friendList
-friendlist.component.css
- friendlist.component.html
- friendlist.component.ts
-landingPage
- landingPage.component.css
- landingPage.component.html
- landingPage.component.ts
- mainPage
- mainPage.component.css
- mainPage.component.html
- mainPage.component.ts
-models
-account.interface.ts
-message.interface.ts
-service
-app.service.ts
-
store -app.reducer.ts
-app.state.ts 1
-actions
-account.actions.ts
-messages.actions.ts
-effects
-account.effects.ts
-messages.effects.ts
-reducers
-account.reducers.ts
-messages.reducers.ts
-selectors
-account.selectors.ts
-messages.selectors.ts
1
6. CONCLUSION AND FUTURE ENHANCEMENT:
2
REFERENCES:
http://www.w3schools.com/html/html_intro.asp
http://www.udemy.com/css/css_background.asp
http://www.w3schools.com/js/js_datatypes.asp