You are on page 1of 35

Campus Bridge (chat application)

A Minor Project Report Submitted to

Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal


Towards partial fulfillment for the award of
Bachelor of Technology
Computer Science & Engineering

Submitted by
1. Atharv Atre (0818CS211044)
2. Dipesh Kushwah (0818CS211060)
3. Gourav Panchal (0818CS211063)
4. Harsh Hotwani (0818CS211067)

Under the supervision of


Mr. Puneet Singh Duggal
Assistant Professor

Department of Computer Science & Engineering


Indore Institute of Science and Technology, Indore
Session 2023-2024
Indore Institute of Science and Technology, Indore (M.P.)

Department of Computer Science & Engineering

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.

Mr. Puneet Singh Duggal HOD CSE

(Assistant Professor) Dr. Richa Gupta

Project Guide

Forwarded by:

Dr. Keshav Patidar

Principal, IIST, Indore


Indore Institute of Science and Technology, Indore (M.P.)

Department of Computer Science & Engineering

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.

(Internal Examiner) (External Examiner)


Date:
Date:
Indore Institute of Science and Technology, Indore (M.P.)

Department of Computer Science & Engineering

DECLARATION

I, Harsh Hotwani (0818CS211067), student of Bachelor of Technology in Computer Science


& Engineering discipline, Indore Institute of Science and Technology, Indore (M.P.), hereby
declare that the work presented in this project entitled “Campus Bridge” is the outcome of my
own work, is bonafide and correct to the best of my knowledge and this work has been carried
out taking care of Engineering Ethics. The work presented here does not infringe any patented
work and has not been submitted to any other university or anywhere else for the award of any
degree or any professional diploma.

1. Atharv Atre (0818CS211044)

2. Dipesh Kushwah (0818CS211060)

3. Gourav Panchal (0818CS211063)

4. Harsh Hotwani (0818CS211067)

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.

The successful completion of a project is generally not an individual effort. It is an outcome of


the cumulative effort of many people, each having their own importance to the objective. This
section is a vote of thanks and gratitude towards all those persons who have directly or indirectly
contributed in their own special way towards the completion of this project.

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

TITLE PAGE NO.

Recommendation I

Certificate II

Declaration III

IV
Acknowledgement
V
Abstract
VI

Table of Contents VII

List of Acronyms

1. INTRODUCTION 1

1.1 Introduction 1

1.2 Motivation 16

1.3 Organization of Project Work 18

1.4 Summary 19

2. LITERATURE SURVEY 22

2.1 Problem Statement

2.2 Objective of Research Work


2.3 Innovative Ideas of Project

2.4 Scope of the Project

3. SYSTEM REQUIREMENT SPECIFICATIONS 28

3.1 Existing System

3.1.1 Whatsapp Clone


3.1.2 Telegram Clone

3.2 Proposed System 29

3.2.1 Client Application


3.2.2 Server
3.2.3 Session Management
3.2.4 Database
3.2.5 Accounts, Chat Data, and Messages

3.3 The Scope of proposed System 32

3.4 Process Model 32

5. SYSTEM ANALYSIS, DESIGN AND IMPLEMENTATION 36

5.1 System Analysis 43

5.1.1 System flow diagram 44

5.1.2 Unified Modelling Language 46

● Activity Diagram for Chat Application

● Class Diagram

● Use case Diagram

● Sequence Diagram

● ER Diagram
● Data Flow Diagram

● Block Diagram

5.2 System Design 48

5.2.1 Database Design 48

● User

● Authentication

● Profile pic

● Chats

5.2.2 Screenshots and Design 49

6. Testing 59

6.1 Testplan 60

6.2 Testing Methods 61

● White Box Testing

● Black Box Testing

6.3 Test Cases 62

7. CONCLUSION 63

7.1 Conclusion 64

7.2 Future Enhancement 65

REFERENCES 66
LIST OF ACRONYMS

OOP Object Oriented Programming

TCC Tight Class Cohesion

LCC Loose Class Cohesion

CK Chidamber and Kemerer

CBO Coupling Between Object

NOC Number of Children’s

DIT Depth of Inheritance Tree

NOASSocC Number of Association per Class

NDepIN Number of Dependencies In Metric

NDepOUT Number of Dependencies Out Metric

NP(C) Number of Total Pair of Method in a Class


NDC Number of Direct Method in a Class

NIC Number of Indirect Method in a Class


INTRODUCTION

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

practice various programming languages, tools, and technologies. It provides hands-on


experience with software development, networking, and user interface design.

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.

● Collaboration: Building a chat application can be a collaborative effort. Working with a

team or involving friends can be a motivating factor, as it fosters teamwork,


communication, and a sense of accomplishment when the project is completed.

● 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

understand the technical challenges and complexities involved in larger-scale chat


applications. This knowledge can be valuable for future projects.

Organization of Project work.

1. Define Objectives and Scope:

● Clearly outline the project's objectives, including the purpose, features, and target

audience of your chat application.

● 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:

● Develop wireframes, mockups, or prototypes of the application's user interface.

● Plan the architecture and database design.

● Choose the technology stack and development tools.

5. Development:

● Write code according to the project plan and design specifications.

● Implement features, perform testing, and fix bugs.

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.

Innovative Ideas of Project

● GUI: Easy to use GUI (Graphical User Interface), hence any user with minimal

knowledge of operating a system can use the software.

● Platform independence: The messenger operates on any system irrelevant of the

underlying operating system.

● Unlimited clients: “N” number of users can be connected without any performance

degradation of the server.

Scope of The Project

● Broadcasting Chat Server Application is going to be a text communication software, it

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

limitation, we are concurrently working on developing better technologies.

● Companies would like to have a communication software wherein they can communicate

instantly within their organization.

5 | Page
● The fact that the software uses an internal network setup within the organization makes it

very secure from outside attacks.

Software Requirement Specification

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

● receiving messages, and viewing chat histories.

Server

● The server would be developed using socket.io.

● The server would handle user authentication, authorization, and

Session management.

● The server would handle the storage and retrieval of chat data, such

● as messages, user accounts, and chat histories.

Database

● The chat app would use a database to store and manage user

Accounts, chat data, and messages.

● The database could be a mongoDB database, which is commonly used in web chat

application systems.

The scope of the proposed system

● 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 name, profile picture, and status message.


7 | Page
Process Model:-
Incremental model:

● As new requirements can arise in future incremental models are used. With the help of it

we can fulfil maximum user requirements.

● 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

model is very useful to complete the project before the deadline.

● This model is more flexible – less costly to change scope and requirements.

● It is easier to test and debug during a smaller iteration

● In this model customer can respond to each built.

● Lowers initial delivery cost.

● Easy to manage risk because risky pieces are identified and handled during it’d iteration.

● Incremental model is used because requirement of the complete system is clearly

defined and understood.

8 | Page
System Analysis
System Flow Diagram :-

9 | Page
UML (Unified Modelling Language):-

10 | Page
Activity Diagram for chat application

Class Diagram for chat application

Use Case Diagram for chat application


11 | Page
Sequence 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

friend Profile chat

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

Client1 Other Clients


connected to same
(Message Sender) room

Design

table_name: user

Description: this table will have all the detail of user entity

15 | Page
Attribute Data Type Description Example
name

User_id text unique identifier for the user CdqS3PFBW3aWZemKZ1 hPSw7wvw82

Name text name of the user Harsh Hotwani

E-mail text/Integer email address of the user harshhotwanics2021@indoreinstitute.com

Password text/Integer password for the user s1h912

Status text current status for the user sleeping, Working

Profilepic Image profile picture for the user image.png

table_name: Authentication

Description: this table will have all the detail of currently use a user
Attribute name Data Type Description Example

identifier_email text/Integer how many user login in app harshhotwanics2021@indoreinstitute.com

Created date Date of when user create a 8 oct 2023


account

Sign_in date Date of when user sign in 14 oct 2023


app

User_UID text unique identifier for the CdqS3PFBW3aWZemKZ1h PSw7wvw82


user

table_name: Profile_pic

Description: this table will have all the detail of user profile images

16 | Page
Attribute name Data Type Description Example

Name image Name of user image car.png

Size integer user image size 91.24 KB

Type text what is type of user images .png , .jpeg

last_modified Date when you change your profile 8 oct 2023


image

table_name: chat

Description: this table will have all the detail of user chats
Attribute name Data Type Description Example

messages text user type your message to another Hello

Sender_id text which ID through send a message CdqS3PFBW3aWZem


KZ1hPSw7wvw82

TimeStamp text what is type of user images .png , .jpeg

last_modified Date when you change your profile 8 oct 2023


image

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

• Integration Testing: Integration testing involves testing the interactions between


different components of the application. In the context of a chat app, integration tests

18 | Page
might involve testing the integration between the messaging functionality and the
user authentication system, or between the messaging functionality and the database.

• Acceptance Testing: Acceptance testing involves testing the application's ability to


meet the user's requirements and expectations. In the context of a chat app,
acceptance tests might involve testing the user interface, the ability to send and
receive messages, the ability to create conversations.

• Performance Testing: Performance testing involves testing the application's ability to


handle a large volume of users and messages. In the context of a chat app,
performance tests might involve testing the application's ability to handle a large
number of users sending and receiving messages simultaneously, or the application's
ability to scale up to handle a rapidly increasing user base.

• Security Testing: Security testing involves testing the application's ability to protect
user data and prevent unauthorized access.

Testing Methods :-

White Box Testing:

• Source Code Analysis:

• Obtain access to the source code of the chat application.

• 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.

• Authentication and Authorization:

• 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 how the application handles messages:

• Message sending and receiving.

• Message storage and retrieval.

• Message formatting (e.g., text, images).

• Message encryption and security.

• User Interface Testing:

• 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:

• Test the application's performance under various conditions, including different


levels of concurrent users and message loads.
• Assess response times and the application's ability to scale.

• Code Reviews:

• Conduct code reviews to identify and fix any issues or vulnerabilities in the source
code.

Black Box Testing:

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.

• Boundary Value Analysis:Testers examine how the application behaves at the


boundaries of input ranges. For example, if an input field accepts values from 1 to
100, testers check how the application handles values like 0, 1, 100, and 101.

• Usability Testing:Assess the user-friendliness of the application, including the user


interface and user experience.

• Performance Testing:Evaluate the application's performance under various


conditions, including load testing, stress testing, and scalability testing.

• Compliance Testing:Verify that the application complies with relevant industry


standards, regulations, or specific requirements (e.g., accessibility standards, GDPR
compliance).

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

the chat application.

● voice call: This will enhance the application to a higher level where communication

will be possible by a voice calling as in telephone.

● file transfer: This will enable the user to send files of different format to another via

the chat application.

● Encryption & Decryption: This is the main feature of chat app because of user’s

privacy and we know that so we will add this feature.

● Voice chat: This will enhance the application to higher level because of this feature

user will be send voice message.

● Data protection:This feature will save the user’s data in cloud storage for future

purpose.

23 | Page

You might also like