You are on page 1of 31

A Project Report

on

Chat Application

Submitted By:
Kumar Gaurav (MRT09UGBCS013)

Faculty of Electronics, Informatics & Computer


Engineering
2012-13

CERTIFICATE
This is to certify that the project work under
titled as

Chat Application
Is the bonfire work of

Kumar Gaurav (MRT09UGBCS013)


during this project submission as a partial fulfillment of the
requirement for the System Design Project of Bachelor in
Technology VII Semester, of the Shobhit University, Meerut.

Project Supervisor (C.E. Branch)

H.O.D of Computer Dept.

ACKNOWLEDGEMENT

If words are considered as a symbol of approval and token of


appreciation then let the words play the heralding role expressing
my gratitude.
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
are grateful to our project guide Ms. Sangeeta Solanki for the
guidance, inspiration and constructive suggestions that helpful us
in the preparation of this project. We also thank our colleagues
who have helped in successful completion of the project.

Kumar Gaurav

Table of contents
Sr. No

Topic

Page Number

Introduction

05

System Analysis

07

2.1 Definition

07

2.2 Description of Present System

07

2.3 Limitation of Present System

07

2.4 Proposed System

08

2.5 Feasibility Study

08

2.6 Project Planning & Scheduling

11

2.7 Software Engineering Paradigm Applied

13

System Specification

14

3.1 H/W Specification

14

3.2 S/W Specification

15

Organization Profile

16

Specification of Language

17

System Design

24

6.1 Output Design

24

6.2 Input Design

25

6.3 Logical Design

25

6.4 Data Flow Diagram

26

6.5 Data Directory

32

6.6 ER Diagram

34

6.7 Process Modal

36

Coding

37

Testing

40

Security

42

10

Screen Shots

43

11

Future Enhancement

49

12

Conclusion

50

13

Bibliography

51

INTRODUCTION
1. INTRODUCTION
Teleconferencing or 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 it was quit recent. Our project is an
example of a chat server. It is made up of 2 applications the client
application, which runs on the users Pc and server application, which runs on
any Pc on the network. To start chatting client should get connected to server
where they can practice two kinds of chatting, public one (message is
broadcasted to all connected users) and private one (between any 2 users
only) and during the last one security measures were taken.

SYSTEM ANALYSIS
2.1 System Objectives
Communication over a network is one field where this tool finds wide
ranging application. Chat application establishes a connection between 2 or
more systems connected over an intra-net or ad-hoc. This tool can be used for
large scale communication and conferencing in an organization or campus of
vast size, thus increasing the standard of co-operation. In addition it converts
the complex concept of sockets to a user friendly environment. This software
can have further potentials, such as file transfer and voice chatting options
that can be worked upon later.

2.2 Relation to External Environment


1tool helps in two major aspects This
Resolving
enlisting
them. the names of all the system connected in a network and
2

Used for communication between multiple systems enlisted in the resolved list.

2.3 Design Considerations


Approach:
The tool has been designed using C# (Windows Form Application).

Methodology:
The user interacts with the tool using a GUI.
1
The GUI operates in two forms, the List form & the chat form.
2
The List form contains the names of all the systems connected to
a network.
3
The chat form makes the actual communication possible in the
form of text.

2.4 System Architecture


The chat application works in two forms.
1

List form:

In this form, all the names of the systems connected to a network are
enlisted. These names can later be used for communication with the help
of mouse event, or in simple language: a click or a double click.
2

Chat form

This form is called only when an element is selected from the List form.
In this form, a connection is created between the host system and the
selected system with the help of a socket.

Flow Chart

START

List Form
(List of names of systems

Is name
selecte

List

Form

No

No

Yes

Yes

Establish connection between


Stop

Chat form
(Text messages sent and received as packets

Form

Yes

closed

2.5 Operational Concepts and Scenarios


Operation of the application based on the inputs given by the user:
List Form:
When initialized, returns a list containing the names of all the
system connected in a network.
2
Contains two buttons: Refresh and Connect.
3
When Refresh button is clicked refreshes the list of names.
1

When the Connect button is clicked or a name is double clicked,


the chat form is initialized with a connection between the host and the
client machine.
5
Note: If no name is selected, and connect button is clicked an
error box is displayed.
Chat form:
4

Contains a rich textbox which cannot be edited but only displays


the messages from one user to another, including the self sent
message, as in any chat application.
7
Contains a textbox for messages to be written that is sent across
the network.
8
Contains a Send button.
6

When the sent button is clicked, in the background, the text in the
textbox is encoded and sent as a packet over the network to the client
machine. Here this message is decoded and is shown in the rich
textbox.
10
To make it more realistic, the self sent message is shown in the
rich textbox as well. Both
9

the messages is differentiated by the help of the identifier name at the


beginning of each message in the rich text box.
EXIT:
The user exits the software in two scenarios:
Exits the chat form, the list form remains
intact. Exits the list form, this is when the
application is closed.

SYSTEM SPECIFICATION
3.1 Hardware requirements
In hardware requirement we require all those components which will provide
us the platform for the development of the project. The minimum hardware
required for the development of this project is as follows
Ram- minimum 128 MB
Hard diskminimum 5 GB
Processor- Pentium 3
Floppy drive 1.44 inch
CD drive
These all are the minimum hardware requirement required for our project. We
want to make our project to be used in any. Type of computer therefore we
have taken minimum configuration to a large extent.128 MB ram is used so
that we can execute our project in a least possible RAM.5 GB hard disk is used
because project takes less space to be executed or stored. Therefore
minimum hard disk is used. Others enhancements are according to the needs.

3.2 Software requirements


Softwares can be defined as programs which run on our computer .it act as
petrol in the vehicle.
It provides the relationship between the human and a computer. It is very
important to run software to function the computer. Various softwares are
needed in this project for its development.
Which are as follows?
Operating systemWindows 7
OthersVisual Studio

We will be using visual basic as our front hand because it is easier to use and provides features to
the users which is used for the development of the project.

SOFTWARE ARCHITECTURE
4.1.1 Socket Overview
A socket is an object that represents a low level access point to the IP stack.
This socket can be opened or closed or one of a set number of intermediate
states. A socket can send and receive data down disconnection. Data is
generally sent in blocks of few kilobytes at a time for efficiency; each of these
block are called a packet.
All packets that travel on the internet must use the Internet Protocol. This
means that the source IP address, destination address must be included in
the packet. Most packets also contain a port number. A port is simply a
number between 1 and 65,535 that is used to differentiate higher protocols.
Ports are important when it comes to programming your own network
applications because no two applications can use the same port.
Packets that contain port numbers come in two flavors: UDP and TCP/IP. UDP
has lower latency than TCP/IP, especially on startup. Where data integrity is
not of the utmost concerned, UDP can prove easier to use than TCP, but it
should never be used where data integrity is more important than
performance; however, data sent by UDP can sometimes arrive in the wrong
order and be effectively useless to the receiver. TCP/IP is more complex than
UDP and has generally longer latencies, but it does guarantee that data does
not become corrupted when travelling over the internet. TCP is ideal for file
transfer, where a corrupt file is more unacceptable than a slow download;
however, it is unsuited to internet radio, where the odd sound out of place is
more acceptable than long gaps of silence.

4.1.2 UDP Ports


The User Datagram Protocol is an unreliable, connectionless oriented protocol
that uses an IP address for the destination host and a port number to identify
the destination application.
The UDP port number is distinct from any physical port on a computer such as
a COM port or an I/O port address. The UDP port is a 16-bit address that exists
only for the purpose of passing certain types of datagram information to the
correct location above the transport layer of the protocol stack.
A UDP datagram header consists of four (4) fields of two bytes each:
1. source port number

2. destination port number


3. datagram size
4. checksum

4.1.3 Using UDP Sockets


In order to use a UDP socket for network programming one has to follow the
following steps as shown in figure given below:

Create a
UDP
socket

End point is a combination of IP address and port number.

Endpoint objects allow you to

easily establish and communicate over TCP/IP network connections between client
and server processes, possibly residing on different hosts. The Endpoint class
follows a telephone-like model of networking: clients "call" servers and servers
"answer" clients. Once a network connection is established between a client and a
server, the two can "talk" to each other by reading from and writing to the
connection.

4.2 Software Process Model

The Software Process Model used is the Spiral Model. The choice for this model is in
the light of the
enhancements that we foresee for the future. The enhancements would be in the
area of Networks being
introduced into the software.

4.3 Process Modules

The functionalities and responsibilities of the system were partitioned and then
assigned

to subsystems or components as described below.

4.3.1 Graphical User Interface

The user interface that the software provides to the user is interactive. It provides
two different forms, one for list of systems and the other for the actual text chatting.

4.3.2 Resolving Names

This module handles the code that is necessary to view the different aspewcts of the
network connections in a system. It uses net.exe to resolve the names of the
system connected to a network to which the host system is also connected. It then
enlists these names into the first form of the application.

4.3.3 Connection

This module deals with the establishment of a connection between the host system
and the system selected from the list. The connection is made by the help of sockets
that uses ports to send and receive packets from one system to another. The
message sent or received is coded and is encoded or decode respectively.

4.4 Conclusion

This chapter has given a broad picture of the design of the software in terms of the
different modules used. It also gives us an idea about the degree to which each
module performs related tasks. We also get an idea about the interdependence
among the modules.

You might also like