PROJECT REPORT shubham and dinesh
PROJECT REPORT shubham and dinesh
UNIVERSITY
Project Report
ON
Lite Chat
(SESSION 2022-23)
CERTIFICATE
This is certified that Shubham Sharma and Dinesh Kumar student of BCA at
S.V.GOVT.COLLEGE GHUMARWIN completed their project on “LITE CHAT” under
my supervision and guidance in the academic year 2022-2023.
This project fulfilled the requirement of the degree prescribed by “HIMACHAL PRADESH
UNIVERSITY SUMMER HILL SHIMLA” for the said course.
It is further certified that the work done in this project is our candidate’s efforts has not been
submitted to any organization in any manner.
i
DECLARATION
We hereby declare that this submission is our work that , to the best of our knowledge
and belief it contain no material previously or written by other person or material which
to a substantial extent has been accepted for the award of any degree or other institution
of higher learning, except where the acknowledgement has been made in the text.
ii
ACKNOWLEDGEMENT
It gives us a great sense of pleasure to present the report of the BCA Project undertaken
during BCA Final Year. The satisfaction that accompanies that the successful completion of
any task would be incomplete without the mention of people whose ceaseless cooperation
made it possible, whose constant guidance and encouragement crown all efforts with
success.
We take this opportunity to express our deep gratitude and whole hearted thanks to our
project guide Prof. Rohit Kumar for her guidance throughout this work. We are very much
thankful to him for his constant encouragement, support and kindness.
We also wish to express our sincere thanks to Principal Sh. Ram Krishan for providing us
wide range of opportunities, facilities and inspiration to gather professional knowledge and
material without which this project could not have been completed.
We also like to thanks our HOD of BCA department Er. Amar Paul Singh for supporting
us. We are very much thankful to him for his constant encouragement, support and
kindness.
A special thanks to our parents , friends for providing us with our needs and their
stimulating support without them this project would not have been completed.
Shubham Sharma
Dinesh Kumar
Place: Ghumarwin
iii
CERTIFICATE
iv
CERTIFICATE
v
TABLE OF CONTENTS
CHAPTER CONTENT PAGE NO.
1. INTRODUCTION 1-4
3. DESIGNING 9-12
4. CODING 13-17
5. TESTING 18-25
6. IMPLEMENTATION 26-27
BIBLIOGRAPHY 29
vi
INTRODUCTION
A Lite Chat makes it easy to communicate with people anywhere in the world by sending and
receiving messages in real time. With a lite chat , users are able to receive the same engaging
and lively interactions through custom messaging features, just as they would in person. This
also keeps users conversing on your platform instead of looking elsewhere for a messaging
solution. Whether it’s private chat, group chat, or large-scale chat , adding personalized chat
features to your app can help ensure that your users have a memorable experience.
On the internet, chatting is talking to other people who are using the internet at the same time
you are. In some cases, a private chat can be arranged between two parties who meet initially
in a group chat. Lite chat is primarily meant based group chat to refer to direct one-on-one chat
or text. This chat Application facilitates real-time communication, with its superior feature set
and unprecedented reliability. This chat application increases the efficiency of communication
process. I have also added the login forms to log in into the chat application. Anyone can use
the Public Chat Room and starting talking to random person at any time from anywhere. Process
is just so simple open the Chat App signup or login to your account, wait for the redirection
page to and then click redirect so that we can set up the appropriate environment and then choose
your chat name and start talking and having some fun with your loved ones. As this website is
under processing so some functions may not work properly and some additions are going on
each day. After Signing up the user is redirected to the login page, So that he can login to his
account, He can login using Gmail, Facebook and Linkedin or his Username and Password, If
the visitor lands on the Login page directly he can navigate to the Signup page or he can directly
login to his account if he has one already. Just like sign up page login page also have validations
so cannot submit until and unless you fill out both the fields Username and Password both.
Signin and signup are both clickable buttons and when hover on them they turn cursor into
pointer. After successful login user will be redirected to the login successful page and will be
redirected to the chat app after that.
A journey of a thousand miles begins with a single step, and here you are in Lesson 1 of a
journey that will show you how to write, design, and publish pages on the World Wide Web.
But before beginning the actual journey, you should start simple, with the basics. You’ll learn
the following:
1
• How the World Wide Web really works
• What web browsers do, and which browsers your audience will be using
• What a web server is, and why you need one
• Some information about uniform resource locators (URLs)
These days, the Web is pervasive, and today’s lesson might seem like old news. If so, feel
free to skim it and skip ahead to Lesson 2, “Getting Your Tools in Order,” where you’ll
discover the first steps you need to take to learn to create web pages.
The idea behind hypertext is that instead of reading text in a rigid, linear structure (such as a
book), you can skip easily from one point to another. You can get more information, go back,
jump to other topics, and navigate through the text based on what interests you at the time.
Hypertext enables you to read and navigate text and visual information in a nonlinear way,
based on what you want to know next.
When you hear the term hypertext, think links. (In fact, some people still refer to links as
hyperlinks.) Whenever you visit a web page, you’re almost certain to see links throughout the
page. Some of the links might point to locations within that same page, others to pages on the
same site, and still others might point to pages on other sites. Hypertext was an old concept
when the Web was invented—it was found in applications such as HyperCard and various
help systems. However, the World Wide Web redefined how large a hypertext system could
be. Even large websites were hypertext systems of a scale not before seen, and when you take
into account that it’s no more difficult to link to a document on a server in Australia from a
server in the United States than it is to link to a document stored in the same directory, the
scope of the Web becomes truly staggering.
2
The Web Is Dynamic
If you want a permanent copy of some information that’s stored on the Web, you have to save
it locally because the content can change any time, even while you’re viewing the page.
If you’re browsing that information, you don’t have to install a new version of the help system,
buy another book, or call technical support to get updated information. Just launch your
browser and check out what’s there.
If you’re publishing on the Web, you can make sure that your information is up-to-date all the
time. You don’t have to spend a lot of time re-releasing updated documents. There’s no cost
of materials. You don’t have to get bids on numbers of copies or quality of output. Colour is
free. And you won’t get calls from hapless customers who have a version of the book that
was obsolete four years ago.
For some sites, the capability to update the site on-the-fly, at any moment, is precisely why
the site exists. Figure 1.2 shows the home page for the BBC News, a site that’s updated 24
hours a day to reflect up-to-the-minute news as it happens. Because the site is up and available
all the time, it has an immediacy that newspapers cannot match. Visit the BBC News at
http://www.bbc.co.uk/news/world/.
These days, you don’t even need to reload a web page to receive updated information.
Through the use of JavaScript, which I discuss starting in Lesson 17, “Introducing
JavaScript,” you can update the contents of a page in real time. The scores and statistics on
the NBA game page in Figure 1.3 are updated in place as the game progresses.
3
Web Browsers
A web browser, as mentioned earlier, is the application you use to view pages and navigate
the World Wide Web. A wide array of web browsers is available for just about every platform
you can imagine. Microsoft Internet Explorer, for example, is included with Windows, and
Safari is included with OS X. Mozilla Firefox, Google Chrome, and Opera are all available
as free downloads. Likewise, more and more people are using browsers on mobile devices
and tablets. IPhone and iPad use Mobile Safari. The Android mobile platform has its own
browser. There are also other mobile platforms, like BlackBerry and Windows Phone, and
third-party browsers for both Android and iPhone. Not too many years ago, Internet Explorer
was the dominant browser for Windows, the OS X market share was less than 5%, and mobile
browsers were so limited that they wouldn’t work with regular web pages at all. Back then,
developers sometimes chose to support Internet Explorer and ignore other browsers. That is
no longer a viable strategy.
There’s a good chance you use only one browser, or two, if you use a browser on a computer
and one on a mobile device. However, your website will probably be visited by a variety of
browsers, and to publish on the Web successfully, you’ll need to be aware of them. This
section describes some of the most popular browsers on the Web. They’re in no way the only
browsers available, and if the browser you’re using isn’t listed here, don’t feel that you have
to use one of these. Whichever browser you have is fine as long as it works for you.
4
Software Requirement Analysis & Specification
Requirements Analysis
Requirement analysis is significant and essential activity after elicitation. We analyze, refine,
and scrutinize the gathered requirements to make consistent and unambiguous requirements.
This activity reviews all requirements and may provide a graphical view of the entire system.
After the completion of the analysis, it is expected that the understand ability of the project
may improve significantly. Here, we may also use the interaction with the customer to clarify
points of confusion and to understand which requirements are more important than others.
1. Context Diagram
The context diagram is a simple model that defines the boundaries and interfaces of the
proposed systems with the external world. It identifies the entities outside the proposed
system that interact with the system.
2. Development of a Prototype
One effective way to find out what the customer wants is to construct a prototype,
something that looks and preferably acts as part of the system they say they want.
We can use their feedback to modify the prototype until the customer is satisfied
continuously. Hence, the prototype helps the client to visualize the proposed system and
increase the understanding of the requirements. When developers and users are not sure
about some of the elements, a prototype may help both the parties to take a final decision.
Some projects are developed for the general market. In such cases, the prototype should be
shown to some representative sample of the population of potential purchasers. Even
though a person who tries out a prototype may not buy the final system, but their feedback
may allow us to make the product more attractive to others.
The prototype should be built quickly and at a relatively low cost. Hence it will always have
limitations and would not be acceptable in the final system. This is an optional activity.
5
3. Model the requirements
This process usually consists of various graphical representations of the functions, data
entities, external entities, and the relationships between them. The graphical view may help
to find incorrect, inconsistent, missing, and superfluous requirements. Such models include
the Data Flow diagram, Entity-Relationship diagram, Data Dictionaries, State-transition
diagrams, etc.
Functional Requirements:
These are the requirements that the end user specifically demands as basic facilities that the
system should offer. It can be a calculation, data manipulation, business process, user
interaction, or any other specific functionality which defines what function a system is likely
to perform. All these functionalities need to be necessarily incorporated into the system as
a part of the contract. These are represented or stated in the form of input to be given to the
system, the operation performed and the output expected. They are basically the
requirements stated by the user which one can see directly in the final product, unlike the
non-functional requirements. For example, in a hospital management system, a doctor
should be able to retrieve the information of his patients. Each high-level functional
requirement may involve several interactions or dialogues between the system and the
outside world. In order to accurately describe the functional requirements, all scenarios must
be enumerated. There are many ways of expressing functional requirements e.g., natural
language, a structured or formatted language with no rigorous syntax and formal
specification language with proper syntax. Functional Requirements in Software
Engineering are also called Functional Specification.
6
Non-functional requirements:
These are basically the quality constraints that the system must satisfy according to the
project contract.Nonfunctional requirements, not related to the system functionality, rather
define how the system should perform The priority or extent to which these factors are
implemented varies from one project to other. They are also called non-behavioral
requirements. They basically deal with issues like:
• Portability
• Security
• Maintainability
• Reliability
• Scalability
• Performance
• Reusability
• Flexibility
Domain requirements:
Domain requirements are the requirements which are characteristic of a particular category
or domain of projects. Domain requirements can be functional or nonfunctional. Domain
requirements engineering is a continuous process of proactively defining the requirements
for all foreseeable applications to be developed in the software product line. The basic
functions that a system of a specific domain must necessarily exhibit come under this
category. For instance, in an academic software that maintains records of a school or college,
the functionality of being able to access the list of faculty and list of students of each grade
is a domain requirement. These requirements are therefore identified from that domain
model and are not user specific.
7
SOFTWARE REQUIREMENTS:
• FOR DEVELOPMENT:
• Node.js
• Express.js
• Mongodb
• Chrome
• Edge
• macOs
• Window
• Linux
8
DESIGN
Design
The design phase is a stage where software developers define the technical details of the
product. Depending on the project, these details can include screen designs, databases,
sketches, system interfaces, and prototypes. The Design Phase seeks to develop detailed
specifications that emphasize the physical solution to the user's information technology
needs.
System Architecture
A system architecture is the conceptual model that defines the structure, behavior, and more
views of a system. An architecture description is a formal description and representation of a
system, organized in a way that supports reasoning about the structures and behaviors of the
system. With all these in mind, we can proceed to write down the list of components in the
system.
• Sign-in
• Sign-up
• Forgot Password
• Chat Interface
9
System Design
10
11
12
CODING
4.1 FRONTEND
13
14
4.2Backend
15
16
17
TESTING
Introduction
Executing a program with the intent of finding errors is called testing.
Testing is vital to the success of any system. Testing is done at different stages within the
development phase. System testing makes a logical assumption that if all parts of the system
are correct, the goals will be achieved successfully . Inadequate testing or no testing at all leads
to errors that may come up after a long time when correction would be extremely
implementation . The testing of the system was done on both artificial and live data. In order
to test cases are developed. Following are the various methods that are employed for testing.
Unit Testing
In unit testing the module is tested independently. It is done to test that the module does
satisfy the functional specification. This is done to check syntax and logical errors in
programs. At the time of preparation of technical specifications, unit test data was also
prepared. The coding for that program was considered after verifying its output against this
test data.
Following are the unit testing methods:
• In Conditional Testing, the logical conditions that are given in the module were checked
to see whether they satisfy the functionality of the module. This is done by using the
test data was prepared.
• In Loop Testing, different loops in the module like nested loops were tested using the
data. Attempts to execute the loops to their maximum range are done.
18
19
Integration Testing
In integration testing whole system was checked when all the individual modules
were integrated together in order to test whether the system is performing as
according to the requirements specified. Interface errors if any were corrected.
Test data was prepared was fed in the system to check whether system fails to
detects an error.
20
Functional Testing
This is done for each module /sub module of the system. Functional testing system as a means
of validating whether the functionality of the system confers the original user requirement i.e.,
does he module do what it was supposed to do? Separate schedules were made for functional
testing. It involves preparation of the data, writing of test cases, testing for conformance test
cases and preparation of bugs listing for non-conformities.
21
System Testing
System testing is done when the entire system has been fully integrated. The purpose of the system
testing is to test how the different modules interact with each other and whether the entire system
provides the functionality that was expected System testing consists of the following steps:
• Program Testing
• System Testing
• System Documentation
22
In each case, validating base requirements is a critical assessment. Just as important ,
exploratory testing helps a tester or testing team uncover hard-to- predict scenarios and
situations that can lead to software errors.
Even a simple application can be subject to a large number and variety of tests. A test
management plan helps to prioritize which types of testing provide the most value – given
available time and resources. Testing effectiveness is optimized by running the fewest number
of tests to find the largest number of defects.
System Testing includes testing of a fully integrated software system. Generally, a computer
system is made with the integration of software (any software is only a single element of a
computer system). The software is developed in units and then interfaced with other software
and hardware to create a complete computer system. In other words, a computer system
consists of a group of software to perform the various tasks, but only software cannot perform
the task; for that software must be interfaced with compatible hardware. System testing is a
series of different type of tests with the purpose to exercise and examine the full working of
an integrated software computer system against requirements.
Here are mainly two widely used methods for software testing, one is White box testing which
uses internal coding to design test cases and another is black box testing which uses GUI or
user perspective to develop test cases
• White box testing
• Black box testing
System testing falls under Black box testing as it includes testing of the external working of
the software. Testing follows user’s perspective to identify minor defects.
23
6.1 Testing Methods
Software testing methods that are used in this project are black box testing and
white box testing. These two approaches are used to describe the point of view
that a test engineer takes when designing test cases.
1) Black box testing - Black box testing treats the software as a "black box,"
without any knowledge of internal implementation. Black box testing
methods include: equivalence partitioning, boundary value analysis, all-
pairs testing, fuzz testing, model-based testing, traceability matrix,
exploratory testing and specification-based testing.
2) White box testing - White box testing, by contrast to black box testing, is
when the tester has access to the internal data structures and algorithms
(and the code that implement these). White box testing methods can also
be used to evaluate the completeness of a test suite that was created with
black box testing methods. This allows the software team to examine parts
of a system that are rarely tested and ensures that the most important
function points have been tested.
3) Grey Box Testing - Grey box testing involves having access to internal data
structures and algorithms for purposes of designing the test cases, but testing at the
user, or black-box level. Manipulating input data and formatting output do not qualify
as "grey box," because the input and output are clearly outside of the "black-box" that
we are calling the system under test. This distinction is particularly important when
conducting integration testing between two modules of code written by two different
developers, where only the interfaces are exposed for test. Grey box testing may also
include reverse engineering to determine, for instance, boundary values or error
messages.
24
4) Regression Testing - Regression testing is any type of software testing that
seeks to uncover software regressions. Such regression occurs whenever
software functionality that was previously working correctly stops working as
intended. Typically, regressions occur as an unintended consequence of
program changes. Common methods of regression testing include rerunning
previously run tests and checking whether previously fixed faults have re-
emerged.
• Performance testing checks to see if the software can handle large quantities of data or
users. This is generally referred to as software scalability. This activity of Non-Functional
Software Testing is often times referred to as Load Testing.
• Stability testing checks to see if the software can continuously function well in or above
an acceptable period. This activity of Non-Functional Software Testing is often times
referred to as indurations test.
• Usability testing is needed to check if the user interface is easy to use and understand.
25
Implementation
This phase is initiated after the system has been tested and accepted by the user. In this phase,
the system is installed to support the intended business functions. System performance is
compared to performance objectives established during the planning phase. This phase is
initiated after the system has been tested and accepted by the user. In this phase, the system is
installed to support the intended business functions. System performance is compared to
performance objectives established during the planning phase. Implementation includes user
notification, user training, installation of hardware, installation of software onto production
computers, and integration of the system into daily work processes. This phase continues until
the system is operating in production in accordance with the defined user requirements.
IMPLEMENTION OF NODE.JS
Node.js is a server-side platform based on the JavaScript Engine in Google Chrome. It was
created by Ryan Dahl in 2009, and the most recent version is v0.10.36. This is a cross-platform
runtime environment for developing server-side and networking applications that are open
source. Node.js programs are written in JavaScript and run on the Node.js runtime on OS X,
Microsoft Windows, and Linux. Node.js also comes with a big library of JavaScript modules,
which makes developing Node.js web applications much easier
When developing web applications, you might need to render the HTML components inside
your server. This will help create interactive pages on the client side once a request to access
these pages is made.
There are various ways of hosting your HTML pages (website), for example:
• Rendering your client-side on its own using frameworks for such as React or,
• Rend the pages directly from the server. When the browser access a route specified in
your server, the server will load these HTML pages upon users’ requests.
26
IMPLEMENTION OF MONGO DB
MongoDB is a schema-less database, which means the database can manage data without the
need for a blueprint. Document. Data in MongoDB is stored in documents with key-value
pairs instead of rows and columns, which makes the data more flexible when compared to
SQL databases.
27
Conclusion And Future Scope
This is the final chapter of this dissertation. Objectives achieved, lessons learnt, Problems and
future enhancements will be discussed here. Lite chat is become more popular than previous
times. The Internet has become a major resource in modern business, thus the Lite chat has
gained significance. For people, Lite chat is the easiest way to communicate with and with our
Chat Applications users can chat with random people around the world.
Chat Applications are so popular nowdays, Most of the people in the world use Chat
Applications to chat with there loved ones But in our Chat Application you can talk to anyone
in the world as it is a Public Chat Application. To implement this as a web application we have
used MERN stack as the technology. MERN stack is a web development framework. It
consists of MongoDB, Express JS, React JS and Node JS as its working components. The
main advantage of MERN stack is that it enables developers to build highly efficient web
applications. In order to use MERN stack on should have a good knowledge of basic
programming languages such as HTML, CSS, JavaScript, Bootstrap.
This project helps in understanding the working of MERN stack that is, the user interacts with
the Html, CSS, JavaScript at the application front-end residing in the browser. This frontend
is served by the application backend residing in a server, through ExpressJS running on top
of NodeJS. Any interaction that causes a data change request is sent to the NodeJS based
Express server, which grabs data from the MongoDB database if required, and returns the
data to the frontend of the application, which is then presented to the user.
Our website has plenty of functionalities, but still in future some changes can be done to
improve the quality of the website. For future scope our website can have a lot of things such
as we can add the video and audio call options so that users can connect to audio or video calls
if they want to do so. We can also add some more privacy features and improve the
functionality of the website so that it can hold more users at a same time
28
Bibliography
• Tsui, Frank , Orlando Karam and Barbara Bernal (2013) Essentials of Software
Engineering, Jones & Bartlett Learning , Sudbury, MA.
• Pfleeger, Shari (2001) Sofwtare Engineering: Theory and Practice, Prentice Hall ,
Upper Saddle River, NJ.
• K.K. Aggrawal and Yogesh Singh, “Software Engineering”, 3rd Edition, New Age
International (P) Ltd, 2008.
• https://www.mongodb.com/docs/
• https://nodejs.org/en/docs
• https://www.w3schools.com/
• https://stackoverflow.com/
• https://www.javatpoint.com/
• https://www.geeksforgeeks.org/
29