Professional Documents
Culture Documents
Submitted by
1. Atharv Atre (0818CS211044)
2. Dipesh Kushwah (0818CS211060)
3. Gourav Panchal (0818CS211063)
4. Harsh Hotwani (0818CS211067)
RECOMMENDATION
This is to certify that the work embodied in this project work entitled “Campus Bridge”, being
submitted by Harsh Hotwani (0818CS211067) in partial fulfillment of the requirement for the
award of Bachelor of Technology in Computer Science & Engineering discipline, to Rajiv
Gandhi Proudyogiki Vishwavidyalaya, Bhopal (M.P.) during the academic year 2023-24 is a
record of bonafide piece of work, carried out by his/her under my supervision and guidance.
Project Guide
Forwarded by:
CERTIFICATE
The Project entitled “Campus Bridge” being submitted by Harsh Hotwani (0818CS211067)
has been examined by us and is hereby approved for the award of degree Bachelor of
Technology in Computer Science & Engineering discipline, for which it has been submitted. It
is understood that by this approval the undersigned do not necessarily endorse or approve any
statement made, opinion expressed or conclusion drawn therein, but approve the dissertation
only for the purpose for which it has been submitted.
DECLARATION
Date:- 05/11/2023
ACKNOWLEDGEMENT
After the completion of this project, words are not enough to express my feelings about all
those who helped me to reach my goal; feeling above this is my indebtedness to the Almighty
for providing me this moment in life.
In this project we have received constant support from Dean Academics & Head of Department
Dr. Richa Gupta . Also, I am heartily indebted to the constant support and guidance of Mr./Ms.
Puneet Singh Duggal. Without his/her guidance and scholarly suggestion an urge to bring out the
best would not have been possible. I hope to propagate his scientific, industrial, and professional
fervors to the best of my abilities. His/her clear view and knowledge provided help during every
phase of Project Development. His perpetual motivation, patience, and excellent expertise in
discussion during progress of the project work have benefited us to an extent, which is beyond
expression. His/her in-depth and breadth of knowledge of Computer Engineering field made me
realize that theoretical knowledge always helps to develop efficient operational software, which
is a blend of all core subjects of the field. He/she was major support to me throughout my
project, being available with his/her odd ideas, inspiration, and encouragement. It is a through his
masterful guidance that I have been able to complete my Project.
I am also thankful to all the teaching and non-teaching staff from Department of Computer
Science and Engineering and friends and people who helped me directly or indirectly for the
completion of this project, with success.
Date:
1. Atharv Atre(0818CS211044)
2. Dipesh Kushwah(0818CS211060)
3. Gourav Panchal(0818CS211063)
4. Harsh Hotwani(0818CS211067)
ABSTRACT
Chatting is a method of using technology to bring people and ideas together despite of the geographical
barriers. The technology has been available for years but the acceptance was quite recent. Our project is
an example of a chat server. It is made up of two applications - the client application, which runs on the
user’s web browser and server application, runs on any hosting servers on the network. To start chatting
client should get connected to server where they can do private and group chat. Security measures were
taken during the last one.
TABLE OF CONTENTS
Recommendation I
Certificate II
Declaration III
IV
Acknowledgement
V
Abstract
VI
List of Acronyms
1. INTRODUCTION 1
1.1 Introduction 1
1.2 Motivation 16
1.4 Summary 19
2. LITERATURE SURVEY 22
● Class Diagram
● Sequence Diagram
● ER Diagram
● Data Flow Diagram
● Block Diagram
● User
● Authentication
● Profile pic
● Chats
6. Testing 59
6.1 Testplan 60
7. CONCLUSION 63
7.1 Conclusion 64
REFERENCES 66
LIST OF ACRONYMS
As the time going on, the development of information and communication technology is growing
so faster and playing very important role in the society. As with the help of the information and
communication technologies we can facilitate the people to receive the information and
communicate with each other from anywhere, anytime and faster than before. If we see the
today’s scenario after the technology have been arrived most of the people don’t use newspaper
for getting the information and even not much uses the news channel now a days for getting
information, Majority is using the smart technology for receiving any type of information with
the help of smart phones or other devices and if we talk about the chat application, in the chat
application everyone is sharing many news there itself only about what’s going on around them
or in any place in the world, as with the help of the chat application information is spreading so
faster than before. Currently, the chat application has been developed by many developers and it
has its own advantages and disadvantages as every other thing have, and it’s giving us more
options to decide which thing is better for us and what features are really required in the
application and what not, as the review of the users using the application tells a lot about the
application and their experience towards the application. The Chat application is fully responsive
as it means totally user friendly for every web-based or mobile or any other device users. It is
built using Node.js, Socket.io, MongoDB, Passport.js, Auth2.0 and other JavaScript libraries.
Node.js is a software platform that is used to build server side more flexible for applications in a
network application. Socket.IO is a JavaScript library and it is an implementation of web sockets
protocol and various other required improvisation for real-time chat application. JavaScript is a
scripting language that is used to create a program so the HTML document displayed in the
browser becomes more interactive and impressive for users. MongoDB is an open source
NOSQL database based on Document-Oriented Database program, which was originally created
in C ++. Therefore, It’s expected that this chat application can run easily on real time.
Motivation
● Learning Experience: Developing a chat application can be an excellent way to learn and
1 | Page
● Problem Solving: Building a chat application allows you to tackle real-world problems,
such as handling user authentication, managing message delivery, and dealing with data
storage and security. It's an opportunity to apply your problem-solving skills.
● Creativity and Innovation: Designing and developing a chat application gives you the
freedom to be creative and innovative. You can experiment with unique features, user
interfaces, and functionalities, which can be inspiring and enjoyable.
● Personal Portfolio: Developing a chat application, even a minor one, can serve as an
impressive addition to your personal portfolio. It showcases your skills and commitment
to potential employers or clients.
● Problem Identification: Creating a minor chat application can help you identify and
● Clearly outline the project's objectives, including the purpose, features, and target
● Define the scope by listing the functionalities and limitations of the application.
2. Project Planning:
● Create a project plan or roadmap that outlines the tasks, milestones, and timelines.
● Identify the roles and responsibilities of team members if it's a collaborative project.
2 | Page
● Allocate resources, including time, budget, and technology stack.
3. Requirements Gathering:
● Collect detailed requirements for the chat application, such as user stories, use cases, and
technical specifications.
4. Design Phase:
5. Development:
Summary
Organizing a project work, such as the development of a chat application, involves a systematic
approach to ensure its success. It begins with defining clear project objectives and scope,
followed by comprehensive planning that includes tasks, timelines, resource allocation, and roles
and responsibilities for team members. The next step is gathering detailed requirements to
understand the project's specific needs. In the design phase, you create wireframes or prototypes
for the user interface, plan the application's architecture, and select the technology stack. Actual
development is where you write the code, perform testing, and fix any issues. Documentation is
crucial for future reference, including user guides and technical documentation. Deployment
involves preparing the application for use on the chosen platform, and ongoing maintenance,
updates, and user support must be considered. Regular communication and collaboration within
the team, along with risk management and adherence to quality and legal compliance, ensure a
smooth project flow. Collecting and incorporating user feedback for future iterations is also vital
3 | Page
for continuous improvement. This organized approach enhances efficiency and the likelihood of
a successful project outcome.
Literature Survey
Problem Defination
● A chat app is an application that allows users to communicate with each other in real-
time through text messages. In recent years, the demand for chat apps has increased
exponentially, and many businesses and individuals have recognized the importance of
having a chat app.
● Chatting apps allow for real-time communication with customers through web chat
rooms. They are simple, fast, and easy to use. LiveAgent offers a great live chat tool for
businesses. Chat applications typically run on centralized networks and there are many
free options available in the market. Chat tools are cost-effective for converting website
visitors into customers and providing better customer service.
● Chat applications allow you to stay connected with other people who may be using the
application even on the other side of the world. In customer service, such applications are
one of the most important communication channels.
Objectives
1. Real-time Communication: The primary objective of a chat app is to provide real-time
communication between users. Java can be used to implement a server that manages
communication between clients, allowing users to send and receive messages in real-
time.
4 | Page
2. Scalability: Chat apps must be scalable to handle a large number of users and messages.
Java's multi-threading capabilities and extensive libraries can be used to create a scalable
system that can handle many simultaneous connections.
3. User Experience: Chat apps should be user-friendly and easy to use. Java can be used to
implement a user interface that is simple, intuitive, and attractive.
4. Security: Chat apps must be secure to ensure the privacy and security of user
communications. Java's libraries and frameworks can be used to implement security
features like authentication, and authorization.
5. Cross-Platform Compatibility: Chat apps should be cross- platform compatible to allow
users to communicate from different devices and operating systems. Java's platform
independence makes it an ideal choice for building cross- platform chat applications.
● GUI: Easy to use GUI (Graphical User Interface), hence any user with minimal
● Unlimited clients: “N” number of users can be connected without any performance
will be able to communicate between two computers using point to point communication.
● The limitation of Live Chat is it does not support audio conversations. To overcome this
● Companies would like to have a communication software wherein they can communicate
5 | Page
● The fact that the software uses an internal network setup within the organization makes it
Existing System
1. WhatsApp Clone: This is a popular chat app system built in Kotlin that is designed to mimic
the functionality of the WhatsApp messaging app. It includes features like chat conversations,
group chats, message notifications, and more.
2. Telegram Clone: Another popular chat app system built in Kotlin is the Telegram Clone. This
app is designed to mimic the functionality of the Telegram messaging app and includes features
like messaging, voice and video calls, group chats, and more.
Proposed System
6 | Page
Client Application
● The client application would be developed using node.js and the socket.io.
● The web application would include a user interface for sending and
Server
Session management.
● The server would handle the storage and retrieval of chat data, such
Database
● The chat app would use a database to store and manage user
● The database could be a mongoDB database, which is commonly used in web chat
application systems.
● User Registration and Authentication: Users can register for the app using
their email address. The app would authenticate users using a username and
password.
● Chatting and Messaging: Users can send and receive text messages
● User Profile Management: Users can manage their profile information, such
● As new requirements can arise in future incremental models are used. With the help of it
● Many features can be added after the development of the system that serves the main
purpose.
● If there are less number of employees to work on the project Incremental development
● This model is more flexible – less costly to change scope and requirements.
● Easy to manage risk because risky pieces are identified and handled during it’d iteration.
8 | Page
System Analysis
System Flow Diagram :-
9 | Page
UML (Unified Modelling Language):-
10 | Page
Activity Diagram for chat application
12 | Page
13 | Page
E-R Diagram :-
user_password
Login_email User_name
email
#login_id User_password
Sign in
Login
1 User_Re
-password
Has
user_name
1
user_Email user
M #user_id
Manage
friend_Email
#friend_id M M
M
name Discription
chat_desc
chat_id
Profile_picture
friend_name
chat_type
friend_password
14 | Page
Data Flow Diagram :-
Here is a data flow diagram to describe overall process of chat application data.
Block Diagram :-
Server
Client1
sending Server
message in sending
chat and client1
that message
message into chat
going to
server
Design
table_name: user
Description: this table will have all the detail of user entity
15 | Page
Attribute Data Type Description Example
name
table_name: Authentication
Description: this table will have all the detail of currently use a user
Attribute name Data Type Description Example
table_name: Profile_pic
Description: this table will have all the detail of user profile images
16 | Page
Attribute name Data Type Description Example
table_name: chat
Description: this table will have all the detail of user chats
Attribute name Data Type Description Example
screen shots :-
17 | Page
Testing
TestPlan :-
• Unit Testing: Unit testing involves testing individual units of code, such as methods
and classes, in isolation from the rest of the application. Unit tests are typically
automated and can be run quickly and frequently. Examples of unit tests for a chat
app might include tests for the message sending and receiving functionality, the user
authentication process
18 | Page
might involve testing the integration between the messaging functionality and the
user authentication system, or between the messaging functionality and the database.
• Security Testing: Security testing involves testing the application's ability to protect
user data and prevent unauthorized access.
Testing Methods :-
• Analyze the code to understand its structure, data flow, and control flow.
• Code Coverage:
• Use code coverage tools to ensure that the majority of the code is tested. This
includes statement coverage, branch coverage, and path coverage.
• Verify that user authentication and authorization mechanisms are in place and
function correctly to ensure that users can only access appropriate chats and features.
19 | Page
• Message Handling:
• Test the user interface (UI) to verify that it correctly displays chat messages and
supports user interactions.
• Check for consistency in UI elements, including buttons, input fields, and chat
bubbles.
• Database Testing:
• Examine how the application interacts with the database. Test database connections,
data retrieval, and data storage.
• Ensure that the application manages user data securely and follows best practices for
database security.
• Performance Testing:
• Code Reviews:
• Conduct code reviews to identify and fix any issues or vulnerabilities in the source
code.
20 | Page
• Input Testing:Testers provide various inputs to the application to see how it responds.
This includes valid inputs, invalid inputs, and boundary values.Inputs can come from
user interfaces, API calls, or other entry points.
• Functional Testing:Functional black box testing checks if the application performs its
intended functions correctly. Testers validate that the application meets the specified
requirements.
TestCases
• User Authentication Test Cases: Verify that a user can create an account with a unique
username and password. Verify that a user can log in with their E- mail and password.
Verify that a user cannot log in with an incorrect E-mail or password. Verify that a user
cannot create an account with an existing E-mail.
• Message Sending and Receiving Test Cases:Verify that a user can send a message to
another user. Verify that a user can receive a message sent to them. Verify that
messages are delivered in the correct order.
• Conversation Creation Test Cases: Verify that a user can create a new conversation
with one or more other users.
• User Interface Test Cases:Verify that the user interface is easy to use and intuitive.
Verify that all buttons, links, and other interface elements are functional and respond to
21 | Page
user input correctly. Verify that the application looks and functions correctly on
different screen sizes and resolutions.
• users and messages without slowing down or crashing. Verify that the application can
scale up to handle a rapidly increasing user base.
• Verify that the application can handle network disruptions or interruptions without
losing data.
Conclusion
• By working on this project, we came to know a lot about programming and knowledge
about various languages which we have worked on. Being students from programming
background, we shad a huge challenge in front of us, but the technology helped us pave
our way through it.
• We learned how to apply logic at the correct point, at correct time.Where do we have to
mainly focus and at what point we have to receive help of technology. Many concepts
regarding programming and languages were cleared, and how does it apply while
coding, could be known. With the help of our teachers, technology and our base of
programming helped us to complete our project on time successfully.
• In today’s world, the person has to think deep, quick and be focused to the goal which is
to be achieved. But it should also include the future result of its decision. Teamwork is
important in each and every task which is to be completed, with the help of our team
members.
• Thanks to all the members for their full cooperation during the project, till the end.
Future Enhancement
● There is always a room for improvements in any software package however good and
efficient it may be done but the most important thing should be flexible except further
22 | Page
modification right now we are just dealing with text communication in future this
software may be extended to include features such as:
● file transfer: This will enable the user to send files of different format to another via
● voice call: This will enhance the application to a higher level where communication
● file transfer: This will enable the user to send files of different format to another via
● Encryption & Decryption: This is the main feature of chat app because of user’s
● Voice chat: This will enhance the application to higher level because of this feature
● Data protection:This feature will save the user’s data in cloud storage for future
purpose.
23 | Page