Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chat Application

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20
At a glance
Powered by AI
The project report describes the development of a chat application using Angular and Spring Boot. It discusses the requirements, design, implementation and results of the application.

The project is about developing a chat application to allow users to communicate with each other in real-time. It aims to override problems in existing manual chat systems by providing an online, automated chat platform.

The main components of the application include the presentation layer (Angular UI), cache layer (for storing chat history locally), database design, server-side implementation using Spring Boot, and client-side implementation using Angular.

CHAT APPLICATION

A COURSE PROJECT REPORT

By

Shivansh (RA2011003010988)
Naman Kaushik (RA2011003010993)
Arhsdeep Singh Sodhi
(RA2011003010983)
Modoguru Vishal0 (RA2011003010986)

Under the guidance of

Dr. L. Kavisankar

In partial fulfilment for the Course

of

18CSC302J - COMPUTER NETWORKS

in C.Tech

FACULTY OF ENGINEERING AND TECHNOLOGY

SRM INSTITUTE OF SCIENCE AND TECHNOLOGY

Kattankulathur, Chenpalpattu District

NOVEMBER 2022
SRM INSTITUTE OF SCIENCE AND TECHNOLOGY

(Under Section 3 of UGC Act, 1956)

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

to concentrate on the record keeping. Thus it will help organization in better

utilization of resources.

III
ACKNOWLEDGEMENT

We express our heartfelt thanks to our honorable Vice Chancellor Dr.


C. MUTHAMIZHCHELVAN, for being the beacon in all our endeavors.

We would like to express my warmth of gratitude to our Registrar


Dr. S. Ponnusamy, for his encouragement
We express our profound gratitude to our Dean (College of
Engineering and Technology) Dr. T. V.Gopal, for bringing out novelty in all
executions.
We would like to express my heartfelt thanks to Chairperson, School
of Computing Dr. Revathi Venkataraman, for imparting confidence to complete
my course project
We wish to express my sincere thanks to Course Audit Professor
Dr.Annapurani Panaiyappan, Professor and Head, Department of
Networking and Communications and Course Coordinators for their constant
encouragement and support.

We are highly thankful to our my Course project Faculty Dr. L


Kavisankar, Assistant Professor, C. tech for his/her assistance, timely
suggestion and guidance throughout the duration of this course project.
We extend my gratitude to our HoD Dr.Annapurani Panaiyappan,
Professor and Head, Department of Networking and Communications and
Course Coordinators and my Departmental colleagues for their Support.

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

3.1 Requirement Analysis

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

does not need to be changed frequently, such as user authentication and

authorization information, such as username, password. There is also information

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

pair structures can also speed up data lookups.

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

Database MySQL, REDIS

Application Server Apache Tomcat

Hardware

Architecture 64 Bit windows architecture

Processor Intel i3

RAM 5GB per server instance

Software

Operating System Windows 10

Programming Language Java 8

IDE IntelliJ

1
4. ARCHITECTURE AND DESIGN
4.1 Architecture

The network architecture is as follows:

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

either log in or log on.

• 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

unless user choose to upload it to server(to be implemented).

1
4. Application OOP Design

1
5. Database Designer

User

User id Unique identifier


User Name User choice
User password Encrypted password

User_activity

User id Unique identifier


Last active time The last time

Conversation

sender Sender’s user id


receiver Receiver’s user id
timestamp The time sender send the msg

1
Send timestamp The time stamp receiver receives
the msg

Friendship

User 1 Unique identifier for user1


User 2 Unique identifier for user2

6. Project Structure and Code

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

5. RESULTS AND DISCUSSION

1
6. CONCLUSION AND FUTURE ENHANCEMENT:

There is always a room for improvements in any apps. Right


now, we are just dealing with text communication. There are
several chat apps which serve similar purpose as this project,
but these apps were rather difficult to use and provide
confusing interfaces. A positive first impression is essential in
human relationship as well as in human computer interaction.
This project hopes to develop a chat service Web app with high
quality user interface. In future we may be extended to include
features such as:
• File Transfer
• Voice Message
• Video Message
• Audio Call
• Video Call
• Group Call

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

You might also like