Professional Documents
Culture Documents
BENGALURU – 560059
(Autonomous Institution Affiliated to VTU, Belagavi)
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
PROJECT REPORT
WEB TECHNOLOGY(18IS6D1)
V SEMESTER
2020-2021
Submitted by
NETHRAVATHI T USN:1RV19CS407
RAM KUMAR USN:1RV19CS411
SAHITHYA N D USN:1RV19CS412
CERTIFICATE
Certified that the SELF-STUDY Project work titled “Chat Application using React JS” has
been carried out by Netravathi T(1RV19CS407),Ram Kumar (1RV19CS411) ,sahithya N
D(1RV19CS412),bonafide students ofRV College of Engineering, Bengaluru, have
submitted in partial fulfillment for the Self study Course: WEB TECHNOLOGY
(18IS6D1)during the year 2020-2021. It is certified that all corrections/suggestions
indicated for the internal assessment have been incorporated in the report.
DECLARATION
ACKNOWLEDGEMENT
Any achievement, be it scholastic or otherwise does not depend solely on the individual efforts
but on the guidance, encouragement and cooperation of intellectuals, elders and friends. A
number of personalities, in their own capacities have helped me in carrying out this project work.
I would like to take this opportunity to thank them all.
I would like to thank Dr.Ramakanth Kumar P, Head of Department, Computer Science &
Engineering, R.V.C.E, Bengaluru, for his valuable suggestions and expert advice.
First and foremost I would like to thank Dr. Subramanya K N, Principal, R.V.C.E, Bengaluru,
for his moral support towards completing my project work.
I thank my Parents, and all the Faculty members of Department of Computer Science &
Engineering for their constant support and encouragement.
Last, but not the least, I would like to thank my peers and friends who provided me with valuable
suggestions to improve my project.
RVCE,CSE Page 1
Chat Application with video call using reactjs
Abstract
The objective of this project iss to build Chat App with React JS in order to chat among friends,
colleagues, family and teachers. Also, the motivation of this project was to design and develop a
Chat App for the company Solution Online that uses it for demonstration to students in
schools,college and company in a developing country.
The Chat Application was implemented to be used with the help of popular front-end technology,
React JS and Firebase hosting services, which offers cost free backend for the chat message and
data. The study showed that Firebase backend is a powerful real-time database with high
security. The whole application was built in Microsoft ́s well known IDE Visual Studio Code and
the command line prompts and power shell in Windows 10. All the tools showed the accuracy of
the project.
This project work was completed with the complete Chat App, meeting all the set requirement by
the company Solution Online. Chat App was tested in different web browsers, which showed the
expected results.
RVCE,CSE Page 2
Chat Application with video call using reactjs
Table of Contents
Acknowledgement i
Abstract ii
List of Figures iv
List of Tables v
Glossary vi
1 INTRODUCTION 5
2 USED TECHNOLOGIES 6
2.1 Chat Background 6
2.1.1 SMS 6
2.1.2 Instant Messaging 6
2.1.3 Chat App 7
2.1.3.1 Benefits of Chat 7
2.1.3.2 Disadvantages of Chat 8
2.2 HTML 8
2.2.1 Advantages of HTML 8
2.2.2 Disadvantages of HTML 8
2.3 CSS 8
2.3.1 Benefits of CSS 8
2.3.2 Disadvantages of CSS 8
2.4 React JS 9
2.4.1 Key Features of React JS 9
2.4.2 Virtual DOM and Real DOM 9
2.4.3 Life Cycle of React Components 9
2.4.4 User Interface 9
2.4.5 ES6 9
2.5 Flux
2.5.1 Features of Flux 10
RVCE,CSE Page 3
Chat Application with video call using reactjs
RVCE,CSE Page 4
Chat Application with video call using reactjs
CHAPTER 1
Introduction
The Chat Application was implemented to be used with the help of popular front-end
technology, React JS and chatengine hosting services, which offers cost free backend for the
chat message and data. The study showed that chatengine backend is a powerful real-time
database with high security. The whole application was built in Microsoft ́s well known IDE
Visual Studio Code and the command line prompts and power shell in Windows 10. All the
tools showed the accuracy of the project.
RVCE,CSE Page 5
Chat Application with video call using reactjs
CHAPTER 2
Used Technology
In this chapter, all technologies of the Chat App are mentioned with the background.
2.1.1 SMS
Text message is the short electronic message which is called as SMS. It allows user to send and
receive small text messages with little cost. It is a more secure and way to send and receive
short message that consists of around 160 characters. For SMS does not require an App and the
internet and it is available on all mobiles while MMS (multimedia services) require the internet
or a WIFI service.MMS is the enhanced form of the SMS, which enables users to send and
receive video and pictures images.
SMS is being used for the last 20 years on GSM standard as communication technology
enhanced to 3G, 4G and 5G SMS developed to MMS which allows the user to send and receive
video and pictures messages. While Chat App is a free of cost, it occurs via a desktop or a
mobile app.
RVCE,CSE Page 6
Chat Application with video call using reactjs
1. Faster support: It is easy to approach students, colleagues and customers by live chat.
Generally, it takes less time to solve the customer issue when using live chat.
2. Real-time text examine: It is one of the benefits between customer and agent. A customer
sends the request for a solution and an agent views and thinks about the solution of the
issue and replies to the customer immediately.
3. Instant customer feedback: Customers can rate the company service right after using the
chat service.
4. No waiting queues: Customers can reach the company agent immediately.
5. On a browser site: The customer and agent conversation take place on the website.
During a chat, the agent can see where the customer is currently looking at the issue so
the agent can easily guide the user by copying the link or screenshot image.
RVCE,CSE Page 7
Chat Application with video call using reactjs
6. Purchasing solution: From an online shopping point of view, is one of the important
advantages of live chat. A customer can ask the agent about the product cost in the middle
of online shopping.
7. File transfer: A customer can provide file, document and images of the questioned issue
upon asking by the company agent.
8. Mobile Messaging Integrations: Now, companies add Live Chat messenger like Viber,
WhatsApp and Facebook to a company website. Customers are connected with the
company´s central live chat system via advance live software programs.
9. 24/7 Support Service: A company is available for the customers 24/7 without any time
zone restrictions. Customers can talk to a chatbot even out of office hours.
10. Less costs: Live chat is cheaper than the traditional phone call for the customer to access
the company agent for questioning and solving issues.
2.2 HTML
HTML stands for Hyper Text Markup Language. It is one of the most popular languages
on the planet used for developing web pages and websites. HTML is used for the structure of
web documents i.e. headlines, paragraphs and images etc. HTML is known as the basis of all
programming languages in the globe. HTML is highly used in other programming languages
such as Javascript and CSS for its display attributes. It consists of opening and closing tags as
with the file extension .html
2.3 CSS
CSS stands for Cascading Style Sheets. It is the advanced form of HTML language and
little easier to use than HTML, and it is also compatible with HTML. CSS is used for the
presentation of web pages i.e. design, colors, layout and fonts etc. CSS has a special standard of
a sector and declaration such as selector, property, declaration block and values. CSS has three
ways of inserting stylesheet into HTML code i.e. External CSS, Internal CSS and Inline CSS.
CSS file extension is file.css
RVCE,CSE Page 8
Chat Application with video call using reactjs
2.4 React JS
React JS was created by Jordan Walke and deployed first at Facebook in May 2013. It is
based on an open-source JavaScript library. In other words, ReactJS is a great platform which is
developed for the front-end mobile and web apps. It is also known as ReactJavaScript library,
which is used for the development of User Interfaces (UI)
.
It consists of independent, isolated and reusable components which are pieces of UI.
Every React JS project has a main root component called an Application (App). Application
root component contains other related child components. React JS application consists of React
element and React component. React component is the function or class which renders React
element or HTML element
DOM stands for Document Object Model, which is programming languageplatform interface for
HTML and XML documents. It is a tree-like structure whichenables dynamically accessing and
managing the elements. It has three main types:
Real DOM
1. Its manipulation or updates is slower and costly.
2. It is heavy weight code.
3. It can update the HTML in the browser.
Virtual DOM
1. It is not created by React, but it is used as for free. 21
2. It is a copy of Real DOM.
3. Its manipulation or updates is faster and easier.
4. It is light weight code
5. It cannot update the HTML directly in the browser
RVCE,CSE Page 9
Chat Application with video call using reactjs
2.6.5 ES6
2.7 Flux
Chat Engine
Chat Engine is an API which makes it easy to build chat services. Building a chat from scratch
takes a lot of time, code, and is expensive. We provide a Rest API to host your chats, and NPM
components to help with your Chat UI.
RVCE,CSE Page 10
Chat Application with video call using reactjs
CHAPTER 3
Chat App System analysis
This chapter explains the system analysis of the Chat App in detail.
RVCE,CSE Page 11
Chat Application with video call using reactjs
Use Case Diagram is one of the diagrams of UML (Unified Model Language) which
demonstrates the interaction of the users (called Actors) with each other within the system. In
other words, a use case diagram represents the activity of a system between actors, elements and
their roles. The use case diagram consists of a system which is a whole scenario in which all
events and flows of the different elements are interacted with each other. Actors can be users or
RVCE,CSE Page 12
Chat Application with video call using reactjs
internal elements in the system and the used cases that made connections with elements in the
system that are always represented by an oval shape in Figure.
RVCE,CSE Page 13
Chat Application with video call using reactjs
CHAPTER 4
Implementation
The implementations of the Chat App are discussed with the codes in this chapter.
In order to reach this goal, two constructors are built namely as const MessageList and const
Message as in the above screenshot in Figure 29 of Chat App also onChange (e) event argument
is modified in the render () function of SendMessageForm. At first, a constructor is built as
MessageList, in which message is sent by a user as an object like a Key string attribute value and
applying map () method on every messageKey then spread Key string attribute (…) is applied on
every messageKey and id. Again, map () method is applied over the messages such as id of the
message and message text.
Another constructor is built as Message by which message is returned with email id, what time
message is created with the proper time format. Time format is accomplished with moment.js,
which must be installed first in npm.
Now, onChange (e) the event handler is modified in SendMessageForm. Whenever the change in
input field as text is changed, the event of target value is changed which is updated the state by
this. setState as shown in the below screenshot in Figure 30 below.
RVCE,CSE Page 14
Chat Application with video call using reactjs
Finally, onMessageSend (e) an event handler is built, which is prevented from refreshing the
whole browser by simply pressing Send Message From. Const message is created as a
constructor, showing the user´s message created time, text state, author property of uid, the
roomId where chat is occurred, the property of email by this function, the property of
sendMessage as message and text is updated by setState as shown in the screenshot in Figure 31.
RVCE,CSE Page 15
Chat Application with video call using reactjs
The second step is configuring the messageRef. It is accomplished by adding Firebase´s “on”
listener, which takes child_added method and snapshot, snapshot of val () is taken by message
constructor while a snapshot of the key can be a value or a message of the user which is taken by
the key method constructor.
RVCE,CSE Page 16
Chat Application with video call using reactjs
CHAPTER 5
Testing
RVCE,CSE Page 17
Chat Application with video call using reactjs
RVCE,CSE Page 18
Chat Application with video call using reactjs
CONCLUSION
React JS is one of the most popular and powerful front-end technologies around the world
today. It offers excellent performance in any application. In addition to this, React JS offers good
compatibility on different platforms, browsers and devices. After developing the Chat App, it is
clear that React JS is easy to learn and convenient to implement. Firebase played a crucial role in
providing real-time database backend service. It is easy to use because extra code writing for the
server is not required while it is a ready-made API. Visual Studio Code was an excellent IDE in
this project
RVCE,CSE Page 19
Chat Application with video call using reactjs
References
RVCE,CSE Page 20
Chat Application with video call using reactjs
SCREENSHOT
RVCE,CSE Page 21
Chat Application with video call using reactjs
RVCE,CSE Page 22
Chat Application with video call using reactjs
RVCE,CSE Page 23