You are on page 1of 65

Design and Implementation of an Online Chat System

BY

NCSF/15/00

&

NCSF/15/0068

SUPERVISED BY

A PROJECT SUBMITTED TO THE DEPARTMENT OF COMPUTER SCIENCE,


SCHOOL OF PURE AND APPLIED SCIENCE,

IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE NATIONAL


DIPLOMA (ND) IN THE DEPARTMENT OF COMPUTER SCIENCE.

OGUN STATE INSTITUTE OF TECHNOLOGY, IGBESA.

AUGUST 2018.
CERTIFICATION

This is to certify that this research work titled ONLINE CHAT SYSTEM has been
carried out & with the matric number and respectively in the Department of Computer
Science, OGUN STATE INSTITUTE OF TECHNOLOGY, IGBESA, OGUN
STATE.

______________________ __________________
Mrs oladejo Date
Supervisor Signature

______________________ __________________
Mrs Ebisin A.F Date
Head of Department (HOD)
DEDICATION

This project is solemnly dedicated to the mighty God, the giver of life, good health,
wisdom, knowledge, and understanding. Also to our ever supportive parent for their love,
care and financial support for the success of this project.
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 Mrs.
Jimoh. 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
and completion of this project.
TABLE OF CONTENT

Title Page
i
Certification
ii
Dedication
iii
Acknowledgement
iv
Table of content
v - vi
Abstract
vii

CHAPTER ONE
INTRODUCTION

 INTRODUCTION
1–3

 PROBLEM STATEMENT
2–3

 OBJECTIVES 3

 SCOPE OF THE PROJECT WORK


3

 DEFINITION OF TERMS 4
CHAPTER TWO
LITERATURE REVIEW

2.0 INTRODUCTION
5-6

 TYPES OF P2P NETWORKS


6-7

 STRUCTURED P2P (P2P) NETWORKS


7-8

 HYBRID P2P SYSTEMS


8

 FILE SHARING SYSTEM


8-11

 OVERLAY NETWORK
12-14

 THE LIMITATION OF P2P SYSTEM


14
CHAPTER THREE
RESEARCH METHODOLOGY

3.0 INTRODUCTION
15
3.1 THESIS BACKGROUND
15-16
3.2 GENERAL OVERVIEW OF THE EXISTING SYSTEM
16 – 23
3.3 SYSTEM ANALYSIS
24 - 25
3.4 SYSTEM ARCHITECHTURE
25
CHAPTER FOUR
SYSTEM DESIGN AND IMPLEMENTATION

4.0 SYSTEM IMPLEMENTATION


26
4.1 SYSTEM SPECIFICATION
26
4.2 DATABASE SCREENSHOT
27 – 29
4.3 DISPLAY OF GRAPHICAL USER INTERFACE
29 – 32

CHAPTER FIVE
SUMMARY, CONCLUSION AND RECOMMENDATION

5.0 SUMMARY
39
5.1 CONCLUSION
39
5.2 RECOMMENDATION
39 – 40
REFERENCES

APPENDIX
ABSTRACT

Chatting system is very common communication tools that have been used in human in
this modern cutting edge technology world. This chatting system has become one of the
important intermediate tools for everyone to share knowledge and materials via network.
So this Chatting, system for Computer Science Student OGITECH, The Environment is
developed in order to enhance the communication among the students via network so that
this will be easy for the discussions related to their studies. This chatting system is
developed by using peer-t-peer concept and multicast technique and also developed by
using the Rapid Application Development (RAD) methodology. This system is built by
using PHP server scripting language. The text messaging in this system does explain the
peer-peer concept and multicast technique very well. The output from this system enables
the student to chat among themselves in internal chatting System.
CHAPTER ONE

 INTRODUCTION

Chatting system is a peer-to-peer system where the users exchange text messages and
files between the system's users. The user of the system is defined as client-server.
Chatting system is a distributed programming which consist two distributed components,
chat server and chat client. Chat client supports for all communication including
requesting chat server location information from a location server and display received
chat messages. Chat server will conduct chat session and manage all chat clients.
Basically chat client starts the chat session by requesting the communication parameter
(server name and port number). There are two type of communication between client-
server which were control message (used to join and leave chat session, create chat room
and switch to chat room) and chat message (supports only public chat message). Two
transport protocols are applied for a chatting system that is Transport Control Protocol
(TCP) and User Datagram Protocol (UDP). TCP takes place for control message while
UDP takes place for chat messaging.
Chat System is a form of communication that utilizes computer programs that allow for
two-way conversations between users in real time (events that occur in cyberspace at the
same speed that they would occur in real life). Typically the users will connect to a chat
server using a chat client and meet in a chat room. Once the users are in the same chat
room, they can converse with one another by typing messages into a window where all of
the other users in the chat room can see the message. The user can also see all of the
messages entered by the other users. Conversations are then carried on by reading the
messages entered by the other users in the chat room and responding to them. How does
online chat work? The technologies that allow users to converse in real time via typed
messages are the chat servers and the chat clients. These special servers allow the
messages to be quickly received and posted so that the chat clients can receive the
messages and display them in the window on the users' computers. Fortunately, most chat
clients are relatively inexpensive shareware programs, and there are a number of chat
servers that let the user connect to them for free. Online chat could be an alternative to
meeting in a traditional classroom. While all of the participants would still be able to
freely converse with one another, they would carrying on the conversation from the
comfort of their own home, thus avoiding the expense and inconvenience of traveling to
another place. Chat server: A chat server is a specially equipped computer connected to
the internet that allows users with chat clients to converse with one another via typed
messages in real time. There are a great number of chat servers which let users connect
for free. Some of the more popular chat servers are dal.net, under.net, etc. You can find a
list of many chat servers on the chat resources
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 butthe acceptance it was quit recent. Our project is an example of a chat server.
It is made up of 2applications the client application, which runs on the user’s Pc and
server application, whichruns on any Pc on the network. To start chatting client should
get connected to server wherethey can practice two kinds of chatting, public one
(message is broadcasted to all connectedusers) and private one (between any 2 users
only) and during the last one security measureswere taken.
Web-based chat rooms can be located throughout the Internet on pages such as fan club
websites, online gaming sites and personal websites, among others. Individuals can
discuss a variety of topics, including computers, games, movies, music. Many popular
search engines have their own chat platform and can be run under most operating
systems, provided that the software that allows you to communicate with others in the
chat room has been installed. • Real-time chat: o Real-time chat, sometimes referred
“instant messaging,” offers users the ability to communicate in real time with individuals
who have been added to a “buddy” list. Generally, the chat is centered on an actual
conversation as opposed to a theme which would be found in a web-based chat room or
an Internet Relay Chat channel. o Real-time chat is messaging software that lets you
communicate with friends and colleagues in real time. Features include a quick launch
bar, music file support, and a new answering service. Some versions also work with
Internet Transmission Control Protocol (TCP)/Internet Protocol (IP) connections,
allowing communication behind firewalls (see NETWORK fact sheet for more on TCP
and IP). • Advantages of Instant Message Programs are:

 You can be alerted when your friends, family or chat partners are online.

 You can leave messages for Chat partners when they are not online.

 You can send files, share web site information, and surf the internet together.
This same application goes for internal chatting system with the definition as a corporate
client-server chatting system. This internal chatting system is build specifically for an
organization/company on official purpose only. The peer-to-peer application is widely
used in most of the current chatting system. It is because peer-to-peer enables peers to
establish direct contact to other peers and inquire about resources. Those systems offers
peers the chance to send information through network. Moreover, the client-server both
acts as provider and consumer of a service or an application. Decentralization in peer-to-
peer makes no central, coordinating authority for the organization of the network.
Consequently, in-this project was proposed to do an Internal Chatting system for
Computer Science Student, UMP Environment which applies peer-to-peer concept. The
plus point of this project refers to the contacts which already build-in the system. This
means the system will be easier for the students to communicate each other via network
by connecting to the server which is .ready for them to chat with those who are online.
This type of communication tool is very useful for the students as they all engineering
students will need to discuss among their course. Mates about projects and assignments.

1.2. PROBLEM STATEMENT

 Existing chatting system's contacts need to add manually by using email


addresses or ID name.

 Difficult to find friend's contacts as the chat client might not have exact contacts
of the user.

 Usually the contacts of the system added manually using different web host et-
nails- such as yahoo, jarring and others.

 If need to add contacts in an internal chatting system for an organization,itmight


be complicated as the name of the contacts is searched by using email.
 Searching contact by name is more preferable than email as the length of the
email address is long compared to name and also hard to remember.

 In, existing chatting system have invoked social problems that lead to unhealthy
conversation, among the chatters because they do not know their original profile
of the personal they have being friend with via the chatting system.

 OBJECTIVES
The objectives of the chat system includes are as follows:

 To develop an internal chatting system for users, UMP environment with build-in
contacts

 To develop an internal chatting system that applies peer-to peer concept and
applies multicast technique.

 SCOPE OF CHAT SYSTEM


The scope of the system:

 Computer Science Students from

 The database of the system includes the information about the build-in contacts.

 DEFINITION OF TERMS
API API stands for Application programming interface. It is a
set of specifications that programs can use to communicate
with each other’s.

Bi –directional A communication channels that can move in both


directions at once.

Byte-code Programming code that can be interpreted by different


machines. Client
Software that accesses a service on another computer.
Client-server model The client server model is a relationship between systems
where one or several servers provide resources to multiple
clients.

Translator A translator is a program that transforms programing code


into object code.

Cross-platform software Cross-platform (or multi-platform) software refers to


software that is built with the intention of running on
several platforms.

Div element An HTML element that can be placed inside a web page.

Full-duplex A communication channel that allows communication in


both directions at the same time.

Multi-platform software See cross-platform software.

MVC Model-view-controller.

Operating System An operating system is software consisting of several


programs and data that manages computer hardware
resources and allows other applications to run.

Platform A platform is a combination of software (and sometimes


hardware)
that software application can run on. It could be an
operating system, a combination of operating system and
hardware architecture, or simply a web browser.

Request-response protocol A communications protocol where one computer makes a


request and a second replies to that request.

Runtime Environment Software designed to allow programs to run on it.


Server A computer that serves out resources.
Socket An endpoint for a computer connection.
Software library A collection of resources that can be used to develop
software.
DHT Distributed Dash Table

CHAPTER TWO

LITERATURE REVIEW

2.1 Online chats

Online chats provide real-time transmission of messages between the sender and
receiver(s). Messages within online chats are oftentimes quite short to provide an
experience close to a real conversation. Some online chats also let their users to send their
picture through webcam as well as voice through microphone. (Rouse 2005a.) When
starting to use an online chat, it is oftentimes required for a user to create an account one
way or another to authenticate the nickname the user wants to use. For example in Skype
the user needs to login with a registered account within the application interface before
chatting, all contacts being linked to the account of the user. (Rouse 2005a.) Online chats
can also be browser-based or client-based. In browser-based online chat, the user uses the
online chat through a chat interface within their browser. In client-based chat,the user
needs to install the online chat’s client, such as Skype, to their computer. Many
online chats nowadays have the option for both, making it possible to access the chat by
either installing the client software and using it or accessing the chat within a browser-
based application. The Figure 1 below shows a basic outlook of a client-based online
chat. On the left there is a list of contacts, the box on the right is the chat. (Rouse 2005a.)

Figure 1: Basic outlook of a client-based online chat (Client-based online chat.)

There are also online chats that let people converse by talking. These are called Voice
over IP (VoIP) chats. VoIP-service can be used in things such as customer service, to
give the customer a better experience. Some online chat applications have access to both
VoIP and a normal chat. The Figure 2 below shows Skype interface. Skype is one of the
leading client based online chat applications, allowing the user to call or chat with his
contacts. Skype also supports webcam and file sending/receiving. (What is Voice over
IP?)

Figure 2: Picture of Skype interface (Skype client interface.)

2.2 Uses for online chats

There are different uses for online chats ranging from regular chats to business purpose
chats. Online chats can also be private chats or chat rooms. Many programs, such as
Facebook or online games also have online chats embedded to them as a means to let
users converse with each other.
In business, online chats are mostly used in customer service. With online chat it is
possible for a company to create a real-time customer support with low costs, which can
be used through the company’s own website. Online chat-support helps a company in
building a solid relationship between the customers, as it is said that the availability of
help and the speed of the helping service are often the reasons for customers having a
good experience from acompany. (Hodigman 2013.) While there is always a possibility
to use phone or email customer service, these have their own detriments. A phone
customer service would be ill served compared to online chat for international
companies, as they would have to have a service center in all countries it operates in. A
phone service center also ramps up the costs much faster than an online chat, needing
physical objects such as phones the more calls are made. An email customer service can
leave the customer hanging for most of the day before getting an answer to a question.
Online chat customer service does not have these problems, as long as there is enough
personnel to keep up with the queries. In the end, online chats often offer offline
availability by an email or ticket system, making the customers able to contact the
company via these channels when there are no personnel online for the chat. (tagove
2015.)

Online chat support in business also leaves logs from conversations with the customers.
The company can thus analyze these logs to find out what needs improvement by finding
out what customers are complaining about or need help with the most. It is also possible
to monitor the length which the support took to overcome an obstacle with the customer.
In the long run, this will save time of the customer support team to focus on things that
really need their attention. (Hodigman 2013.)

While implementing an online chat support feature to a business has its benefits, it can
also have detriments. For example, Evan Hamilton from an eight person startup company
UserVoice has said that his company has given up on online chat because it sets high
expectations on availability and they just didn’t have time and personnel to do it.
(Boatman 2011.)
Online chats can also be used for normal chatting between people. There are many dating
services using online chats as their base, as well as online chats with chat rooms where
people interested in same things can meet up and talk. (Rouse 2005b.)

Usually online chat applications meant for conversation have a system called chat rooms.
A chat room is a place for communities with common interests to meet up and talk about
them.

In chat room, everyone who is participating in it can read the messages sent into the room
and send their own messages as well, creating a place for open discussion on different
topics. (Rouse 2005b.)

In the recent years, the evolution of a new wave of innovative network architecture
labeled Peer-to-Peer (P2P) has been witnessed. P2P networks are networks in which all
peers cooperate with each other to perform a critical function in a decentralized manner.
All peers are both users and providers of resources and can access each other directly
without intermediary agents. Compared with a centralized system, a P2P system provides
an easy way to aggregate large amounts of resource residing on the edge of Internet or in
ad-hoc networks with a low cost of system maintenance. P2P systems attract increasing
attention from researchers. Such architecture and systems are characterized by direct
access between peer computers, rather than through a centralized server. File sharing is
the dominant P2P application on the Internet, allowing users to easily contribute, search
and obtain content.

 PEER-TO-PEER (P2P) NETWORKS


A P2P system is defined as any distributed network architecture composed of participants
that make a portion of their resources, suchas processing power, disk storage or network
bandwidth are directly available to other network participants, without the need for
central coordination instances such as servers or stable hosts (see Figure 2.1). In other
words P2P is a specific form of relational dynamic, based on the assumed equipotency of
its participants, organized through the free cooperation of equals in view of the
performance of a common task, for the creation of a common good, with forms of
decision-making and autonomy that are widely distributed throughout the network.

In P2P networks all peers cooperate with each other to perform a critical function in a
decentralized manner. All peers are both users and providers of resources and can access
each other directly without intermediary agents. Compared with a centralized system, a
P2P system provides an easy way to aggregate large amounts of resource residing on the
edge of Internet or in ad-hoc networks with a low cost of system maintenance. P2P
systems attract increasing attention from researchers recently. Such architecture and
systems are characterized by direct access between peer systems, rather than through a
centralized server. More simply, a P2P network links the resources of all the nodes on a
network and allows the resources to be shared in a manner that eliminates the need for a
central host. In P2P systems, nodes or peers of equal roles and responsibilities, often with
various capabilities, exchange information or share resources directly with each other.
P2P systems can function without any central administration and coordination instance. A
P2P network differs from conventional client/server or multi-tiered server's networks.
Peers are both suppliers and consumers of resources, in contrast to the traditional
client/server model where only servers’ supply and clients consume.
 TYPES OF P2P NETWORKS
P2P is a paradigm for sharing of computing resources/services such as data files, cache
storage, and disk space or processing cycles. In comparison with the conventional
client/server model, P2P systems are characterized by symmetric roles among the peers,
where every node in the network acts alike and the processing and communication are
widely distributed among the peers. Unlike the conventional centralized systems, P2P
systems offer scalability and fault-tolerance. It is a feasible approach to implement
global-scale systems such as the Grid.
An important achievement of P2P networks is that all clients provide resources, including
bandwidth, storage space, and computing power. Thus, as nodes arrive and demand on
the system increases, the total capacity of the system also increases. This is not true for
client/server architecture with a fixed set of servers, in which adding more clients could
mean slower data transferfor all users. The distributed nature of P2P networks also
increases robustness in case of failures by replicating data over multiple peers, and in
pure P2P systems byenabling peers to find the data without relying on a centralized index
server. In the latter case, there is no single point of failure in the system.
A growing application of P2P technology is the harnessing the dormant processing power
in desktop PCs. Companies can use the processing capabilities of many smaller, less
powerful computers replace large and expensive supercomputers . These features can
complete the large computing tasks using the processing of existing in-house computers
or by accessing computers through the Internet.
 STRUCTURED P2P (P2P) NETWORKS

Structured P2P network employ a globally consistent protocol to ensure that any node
can efficiently route a search to some peer that has the desired file, even if the file is
extremely rare (see Figure 2.3). Such a guarantee necessitates a more structured pattern
of overlay links. By far the most common type of structured P2P network is the
Distributed Dash Table (DHT), in which a variant of consistent hashing is used to assign
ownership of each file to a particular peer, in a way analogous to a traditional hash table's
assignment of each key to a particular array slot.

DHTs are a class of decentralized distributed systems that provide a lookup service
similar to a hash table: (key, value) pairs are stored in the DHT, and any participating
node can efficiently retrieve the value associated with a given key. Responsibility for
maintaining the mapping fromkeys to values is distributed among the nodes, in such a
way that a change in the set of participants causes a minimal amount of disruption. This
allows DHTs to scale to extremely large numbers of nodes and to handle continual node
arrivals, departures, and failures.
DHTs form an infrastructure that can beused to build P2P networks. Notable distributed
networks that use DHTs include BitTorrent’s distributed tracker, the Kad network, the
Storm botnet, YaCy, and the Coral Content Distribution Network. DHT-based networks
have been widelyutilized for accomplishing efficient resource discovery for grid
computing systems,as it aids in resource management and scheduling of applications.
Resource discovery activity involves searching for the appropriate resource types that
match the user’s application requirements. Recent advances in the domain of
decentralized resource discovery have been based on extending the existing DHTs with
the capability of multi-dimensional data organization and query routing.

 UNSTRUCTURED PEER TO PEER NETWORKS


An unstructured P2P network is formed when the overlay links are established arbitrarily.
Such networks can be easily constructed as a new peer that wants to join the network can
copy existing links of another node and then form its own links over time. In an
unstructured P2P network, if a peer wants to find a desired piece of data in the network,
the query has to be flooded through the network to find as many peers as possible that
share the data (see Figure 2.3.1). The main disadvantage with such networks is that the
queries may not always be resolved. Popular content is likely to be available at several
peers and any peer searching for it is likely to find the same thing. But if a peer is looking
for rare data shared by only a few other peers, then it is highly unlikely that search will be
successful. Since there is no correlation between a peer and the content managed by it,
there is no guarantee that flooding will find a peer that has the desired data. Flooding also
causes a high amount of signaling traffic in the network and hence such networks
typically have very poor search efficiency.
Many of the popular P2P networks are unstructured. In pure P2P networks, peers act as
equals, merging the roles of clients and server. In such networks, there is no central
server managing the network, neither is there a central router. Some examples of pure
P2P Application Layer networks designed for file sharing are Gnutella and Freenet.

 HYBRID P2P SYSTEMS


There also exist hybrid P2P systems, which distribute their clients into two groups: client
nodes and overlay nodes. Typically, each client is able to act according to the momentary
need of the network and can become part of the respective overlay network used to
coordinate the P2P structure. This division between normal and better nodes is done in
order to address the scaling problems on early pure P2P networks. Examples for such
networks are for example Gnutella (version 2.2).

Figure 2.4 Hybrid P2P based system which uses the Centralized
Directory Model for information retrieval.

Another type of hybrid P2P network is a network using on the one hand central server(s)
or bootstrapping mechanisms, on the other hand P2P for their data transfers. These
networks are in general called centralized networks because of their lack of ability to
work without their central server(s). An example for such a network is the eDonkey
network (eD2k).

 FILE SHARING SYSTEM


File sharing is the dominant P2P application on the Internet, allowing users to easily
contribute, search and obtain content. And it was popularized by file sharing systems like
Napster. P2P file sharing networks have inspired new structures and philosophies in other
areas of human interaction. In such social contexts, P2P as a meme refers to the
egalitarian social networking that is currently emerging throughout society, in general
enabled by the Internet technologies.
The P2P file sharing architecture can be classified according to what extent they rely to
one or more servers to facilitate the interaction between peers. P2P systems are
categorized into centralized, decentralized structured, decentralized unstructured, shown
in Figure 2.5.
 Centralized
In these types of systems, there is a central control over the peers. There is server which
carries the information regarding the peers, data files and other resources. If any peer
wants to communicate or wants to use the resources of other peer have to send the request
to the server. Server then searches the location of the peer node/resource through its
database/index. After getting the information, peer directly communicates with the
desired peer. This system is very similar to the client/server model, viz., Napster which is
very popular for sharing the music files.
The security measure can be implemented due to the central server. At the time of request
sending the authorization and authentication of the peer can be checked.
It is easy to locate and search an object/peer node due to central server. These systems are
easy to implement as the structure is similar to client-server model, i.e., complexity is
low.
These types of systems are not scalable due to limitation of computational capability,
bandwidth etc. These systems have poor fault tolerance due to unavailability of
replication of objects and load balancing. These types of systems are not reliable due to
single point failure, malicious attack and network congestions near the server. These
types of systems are least secure. The overhead on the performance of the system is high.
Distributed Databases may be used in these types of systems.
In centralized P2P systems the resource discovery is done using the central server which
kept all the information regarding resource e.g., Napster. Multiple servers are also
proposed to enhance performance in centralized systems.

 Decentralized Structured
Decentralized structured P2P networks (e.g., Chord, CAN, Tapestry, Pastry and TRIAD
use a logical structure to organize the peer nodes of the network. Decentralized structured
P2P networks uses a distributed hash table like mechanism, to lookup files. These
structured P2P networks are efficient in locating the object quickly due to the logical
structure (search space is reduced exponentially). As decentralized structured networks
impose a tight control on the overlay topology, hence they are not robust to peer nodes
dynamics. Easy to locate and search an object/peer node, due to logical structure. The
traffic of messages in these types of networks is reduced. These systems are scalable, due
to dynamic routing protocols. They have good performance. Performance of the system is
least effected due to scalability. This type of system is reliable in nature, support failure
node detection and replication of objects.
This type of system has tight control over the overlay topology hence they are not robust
to peer dynamics. Performance of these types of systems greatly affected, if churn rate is
high. Database searching is comparatively complex with centralized systems. This type
of system is not suitable for the Ad-Hoc peer nodes, as performance of the system is
affected due to high churn rate of the nodes. A location dependent application is proposed
in.

 Decentralized Unstructured:
These types of systems are actual peer to peer systems, i.e., which are more close to the
definition of P2P systems. In this type of system there are not any central control, all peer
may act as server (which provides the service) as well as client (which take the service).
Peer wants to communicate with other peer, have to broadcast/flooded the request to all
the connected peers for searching the peer node/data object as there is not any central
index. Only the peers having the data are responded and send the data object through the
reverse path to the requesting peer node.
The flooding or broadcasting of requests creates the unnecessary traffic on the network,
which is main drawback of the system. A lot of work is going on to reduce the traffic of
the network. Various techniques are also proposed, i.e., forwarding based, cached based
and overlay optimization, etc.
These types of systems are not having the tight control over the overlay topology, so they
support peer dynamics. The performance is not much affected due to high churn rate.
These systems are distributed in nature, so there is no single point failure.
The scalability is poor due to overhead of traffic to discover the object/peer nodes, as
system grows after a limit its performance goes on decreasing. It is very costly to search a
resource in unstructured system. Flooding is used to search a resource. To enhance the
search, Random Walk is proposed in, Location aware topology matching is proposed in.
For providing the fault tolerance, a Self maintenance and self-repairing technique are
used.
For providing security to information, these systems use PKI for information sharing.
Alliatrust, a reputation management scheme is used which deals with threats, e.g., Free
riders, polluted contents etc. To cop up with Query loss and system overloading a
congestion aware search protocol may be used. This includes congestion aware
forwarding (CAF), random early stop (RES), Emergency signaling (ES). Location
dependent queries, using the Voronoi Diagram are used.

 OVERLAY NETWORKS
An overlay network is a computer network (see Figure 2.6), which is built on top of
another network. Nodes in the overlay canbe thought of as being connected by virtual or
logical links, each of which corresponds to a path, perhaps through many physical links,
in the underlying network. For example, distributed systems such as cloud computing,
P2P networks, and client/server applications are overlay networks because their nodes
run on top of the Internet. Internet was built as an overlay upon the telephone network.
Nowadays the Internet is the basis for more overlaid network than can be constructed in
order to permit routing of messages to destinations not specified by an IP address. For
example, distributed hashtables can be used to route messages to a node having a specific
logicaladdress, whose IP address is not known in advance. (Figure 2.6).

Overlay networks have also been proposed as a way to improve Internet routing, such as
through quality of service (QoS) guarantees toachieve higher-quality streaming media.
Previous proposals such as Int Serv, DiffServ, and IP Multicast have not seen wide
acceptance largely because they require modification of all routers in the network. On the
other hand, an overlay network may be incrementally deployed on end-hosts running the
overlay protocol software, without cooperation from ISPs. The overlay has no control
over how packets are routed in the underlying network between two overlay nodes, but it
controls the sequence of overlay nodes a message traverses before reaching its
destination.

 Overlay P2P networks


A P2P overlay network logically connects peers on the top of IP. Two main classes of
such overlays dominate, structured and unstructured. The differences relate to the choice
of the neighbors in the overlay, and the presence of an underlying naming structure.
Overlay networks represent the main approach to build large-scale distributed systems
that we retained. An overlay network forms a logical structure connecting participating
entities on top of the physical network, be it IP or a wireless network. Such an overlay
might form a structured overlay network following a specific topology or an unstructured
network where participating entities are connected in a random or pseudo-random
fashion. In between, lay weakly structured
P2P overlays where nodes are linked depending on proximity measure providing more
flexibility than structured overlays and better performance than fully unstructured ones.
Proximity-aware overlays connect participating entities so that they are connected to
close neighbors according to a given proximity metric reflecting some degree of affinity
(computation, interest, etc.) between peers. Researcher need to use this approach to
provide algorithmic foundations of large-scale dynamic systems.
The P2P, main design principle of being completely decentralized and self-organized, the
P2P concept makes the way for new type of applications such as file-swapping
applications and collaboration tools over the Internet that has recently attracted
tremendous user interest. Using software like KaZaA, Gnutella or the now- obsolete
Napster, users access files on other peer nodes and download these files to their
computer. These file-swapping communities are commonly used for sharing media files,
often MP3 music files. KaZaA, Gnutella, Audiogalaxy and iMesh based networks
allowed users to continue to share music files at a rate similar to Napster at its peak. This
Internet climate began to shift back to P2P with the development, popularity, and
attention given to Napster.
Another application domain of P2P is the sharing and aggregation of large-scale
geographically distributed processing and storage capacities of idle computers around the
globe to form a virtual super-computer as the SETI@Home project did.
P2P networking is an important enabling technology for the realization of self-managed
and autonomous systems, where each node manages its own activities by itself, thus
ensuring a consistent state of the system. The technology also allows for peripheral
sharing, in which one peer can access scanners, printers, microphones and other devices
that are connected to another peer.

 The Limitations of P2P System


The Internet started out as a fully symmetric, P2P network of cooperating users. It has
grown to accommodate the millions of people flocking online, technologies have been
put in place that have split the network into a system with relatively few servers and
many clients. These phenomena pose challenges and obstacles to P2P applications: both
the network and the applications have to be designed together to work in cycle.
Application authors must design robust applications that can function in the complex
Internet environment, and network designers must build in capabilities to handle new P2P
applications. Fortunately, many of these issues are familiar from the experience of the
early Internet; the researcher must learn lesions and follow up in the new system design.
P2P systems are usually large-scale dynamic systems whose nodes are distributed on a
wide geographic area. However, owing to the properties of their nodes which can join
and leave continually, P2P systems are dynamic systems with high rate of roil and
unpredictable topology. A direct consequence is that resources or nodes are restricted to
temporary availability only.
A network element can disappear at a given time from the network and reappear at
another locality of the network with an unpredictable pattern. Under these circumstances,
one of the most challenging problems of P2Ps is to manage the dynamic and distributed
network so that their requesters when needed can always successfully locate resources. In
order to enable resource awareness in such a large-scale dynamic distributed
environment, a specific resource management strategy is required which takes into
account the P2P characteristics.
CHAPTER THREE

RESEARCH METHODOLOGY

 INTRODUCTION

This chapter provides the reader with a short overview of the project. It starts by giving a
general description of the state of software development today. It then lists a set of issues
developers face and discusses how this project intends to deal with these problems. The
last two sections of this chapter present the layout for the rest of the report and explain
what language is going to be used.

 THESIS BACKGROUND
In the last few decades, computer technologies have evolved at a very high pace.
As computer hardware continually evolves and targets greater and more challenging
problems, so does the software that runs on it. One of the latest challenges software
developers have is related to the interconnection of vast numbers of computers and
finding ways users can take advantage of this networking.
One of the ways this was achieved by a group of students was by developing a
collaboration application, written in Java, that students can use to work together. It is
described in greater detail in Chapter 2.

During and after its development a number of development issues arose:


-Resource usage for software updates and distribution: As it was being developed, this
application was updated almost on a daily basis. Due to the software’s nature, it was
necessary for users to always have the latest version. Developing a system to deal with
this problem can be expensive and a waste of resources.
- Cross-platform development compromises: Java is successful at ensuring that the
application runs on several operating systems, but at the same time, it forces developers
to program in a way that caters to the lowest common denominator of all platforms to
maintain consistency.
-Data management: As an increasingly larger set of users starts using an application like
the aforementioned one, with a high number of clients (the application follows a client-
server model), bandwidth consumption increases drastically.
 GENERAL OVERVIEW OF THE EXISTING SYSTEM

 Yahoo! Messenger
Yahoo! Messenger is a very common chatting system among people around the world
and also known as 2(YM). Yahoo! Messenger is an advertisement-supported instant
messaging client and associated protocol which was provided by Yahoo. It is free and can
be downloaded from yahoo website. The ID that used for this system is allowed to access
other Yahoo services such as Yahoo Mail. YM provides many functions for the user such
as PC-PC, PC-Phone and Phone-to-PC service, file transferring, webcam hosting, text
messaging service and chat rooms in various categories.
The first version of Yahoo! Messenger was launched under the name Yahoo! Pager on
March 9, 1998. The developer of this system is Yahoo. Yahoo! Messenger has been
created for many type of operating system like Windows, Mac OS X, iPhone, WUI, and
UNIX (but no longer supported). Yahoo! Messenger is a type of Voice over Internet
Phone(VoIP) or in other word can be said to be an instant messaging client. The license
for this system is proprietary hardware. This software application can be downloaded
through the website http://messenger.yahoo.com
Yahoo! Messenger uses TCP/IP transport layer protocol for all communication purpose.
Sometimes it also uses peer-to-peer communication directly to the clients. The main
purpose of applying peer-to-peer concept because a large amount of data to be transferred
directly to the clients. This peer-to-peer application is very useful for the purpose of file
transfers, voice conversations, webeams and certain instant messaging environments in
yahoo messenger.
Yahoo! Messenger uses TCP/IP packets to allow communication in the system. But there
is a slight difference in the packet where the TCP/IP header is extended by using its own
application level header format. The Yahoo! Messenger header long is about 20 bytes
long and identified as YMSG for the first four bytes. The header YMSG includes the
information about version, message length, service type, status, and session ID.
 MSN
MSN formerly known as Windows Live Messenger and then its name was modified as
MSN Messenger. Currently it is simply referred as MSN. MSN is an instant messaging
client application created by Microsoft Company. It is compatible with much type of
operating systems such as Windows XP, Windows Vista, Windows 7,
Windows Server 2003, Windows Server 2008 and Windows Mobile. MSN have been
part of Microsoft.NET Messenger Service since 2005. It's first version was created on
July 22, 1999 and as Windows Live Messenger on 13th December 2005. This service has
about 330 million users per month and it is also available in fifty (50) languages. It is
referred as instant messaging client type of service. Its license is proprietary and
advertising supported software. It can be downloaded freely form the website:
http://messenger.live.com.
MSN also provides the basic functions as all other chatting systems does such as folders,
PC-to-phone calls, interoperability, offline messaging, games and application, "I’m"
initiative, S60 Platform and Xbox integration. MSN Messenger provides IM services
including messaging, presence, file transfer and file sharing facilities. It uses Session
Initiation Protocol (SIP) for instant messaging and MSN uses FTP for file transfer and
sharing. Besides that it also uses peer-to-peer technique to establish connection via
internet.
The communication between the MSN client and server are performed over TCP/IP. The
TCP protocol is used with the client using various ports to generate the requests and the
server using port 80 to receive the request and for the reply notification the server uses
ports >1024. Meanwhile for the transport layer protocol, it uses Hypertext Transfer
Protocol (HTTP) protocol. HTTP is one of the protocols in the TCP/IP suite which was
originally developed to publish and retrieve HTML pages and is now used for distributed,
collaborative information systems. HTTP is used across the World Wide Web for data
transfer and is one of the most used application protocols. HTTP specifies a
request/response protocol. The HTTP protocol defines the message types of the client
uses to request the web page and the server uses to respond.

There were two techniques used to develop this MSN Messenger. First is the MSN API
(Application Programming Interface) and the second is Communication based Protocol
Technique. The use of this MSN API's technique is for the purpose of providing
interfaces for objects and events in the system. These interfaces are used for interaction in
the MSN Messenger system by the instant messaging client. Consequently the client also
has to intercept appropriate message calls sent to between the Operating System (OS) and
MSN Messenger. The figure below does give clear picture of this technique.

While the second technique is about the communication protocol in the MSN Messenger
which enables the clients to communicate each other via the Messenger server and
switchboard. There are two major software components of the architecture are Adaptation
Library and IM Client for MSN communication protocol. The Adaptation Library
component plays a role as a middle software layer, sitting between an IM client and the
MSN Messenger communication protocol and responsible for interacting with the MSN
Messenger communication protocol, such as establishing connection and authentication
with the MSN Messenger server, and sending and receiving messages via the MSN
Messenger switchboard. While the IM Client component listens to users' interaction and
passes captured events and messages onto Adaptation Library. Moreover, the client is
responsible for manipulating the contents of messages sent from other clients for
presenting the adaptive threaded interface.
 Skype
Skype is another chatting system application that widely used by chatters around the
world for communication via network. Skype is a peer-to-peer (p2p) VoIP client
developed by the organization that created Kazaa. Actually Skype is a software
application that mainly used for voice calls over the internet. While its additional
functions are instant messaging, file transfer and video conferencing. Skype was written
by Estonia-based developer Ahti Heinla, Priit Kasesalu and Jaan who was originally
developed Kazaa.
Originally the initial name of this application project was "Sky peer-to-peer" which was
then reduced to "Skyper". Anyhow since this name was already taken so the "r" was
dropped and left with the current name "Skype". Skype was launched first in August
2003. It does supports for Windows operating system and Linux too. Moreover, Skype is
also available in multi-language. Skype is a type of voice over IP, instant messaging and
video conferencing application. The license is freeware with some paid features. This
software application can be downloaded from the website
http://www.skype.com.
Skype uses peer-to-peer application to develop its application. All communication in
Skype is secured by encryption. Skype application relies on super-nodes which is
responsible to facilitate communication among all the users. Skype is an overlay peer-to-
peer network. There are two nodes that are ordinary host and super-nodes (SN). An
ordinary host is a Skype application that is used to place voice calls and send text
messages. A super node is an ordinary host's end point on the Skype network. Any node
with a public IP address having sufficient CPU, memory, and network bandwidth is a
candidate to become a super node. An ordinary host must connect to a super-node and
must register itself with the Skype login server for a successful login. Skype login server
is an important entity in the Skype network where the user names and passwords are
stored at the login server and, user authentication at login also done here.
This server also ensures that Skype login names are unique across the Skype name space.
Figure 1 illustrates the relationship between ordinary hosts, super-nodes and login server.
There is no central server in the Skype network which means that the online and offline
user information are stored and propagated in a decentralized fashion as well as the user
search queries.

 Chatting System Application


Chatting system is a two-way communication that is used by the users for the purpose of
exchanging text messages and files between the system's users. It is more common to say
as peer-to-peer system which supports two way communications. The user of the system
is defined as client-server. Chatting system is a distributed programming which consist
two distributed components, chat server and chat client.
Chat client supports for all communication including requesting chat server location
information from a location server and display received chat messages. Chat server will
conduct chat session and manage all chat clients. Basically chat client starts the chat
session by requesting the communication parameter (server name and port number).
There are two type of communication between client-server which were control message
(used to join and leave chat session, create chat room and switch to chat room) and chat
message (supports only public chat message).
There are two transport layer protocol suite are applied for a chatting system that is
Transport Control Protocol (TCP)'nd User Datagram Protocol (UDP). TCP takes place
for control message while UDP takes place for chat messaging.). Both protocols manage
the communication of multiple applications. The differences between the two transport
layer protocols are the specific functions that each protocol implements. UDP is a simple,
connectionless protocol, described in RFC 768. It has the advantage of providing for low
overhead data delivery. The pieces of communication in UDP are called datagrams.
These datagrams are sent as "best effort" by this Transport layer protocol. Applications
that use UDP including Domain Name System (DNS), video streaming and Voice over IP
(V0IP). While TCP is a connection-oriented protocol, described in RFC 793. TCP incurs
additional overhead to gain functions. Additional functions specified by TCP are the
same order delivery, reliable delivery, and flow control. Each TCP segment has 20 bytes
of overhead in the header encapsulating the application layer data, whereas each UDP
segment only has 8 bytes of overhead. Applications that use TCP are web browsers, e-
mail and file transfers systems.
Chatting system provides many type of function for the user such as text messaging,
voicemail; file sharing, plug-ins, email service, webcam, URI scheme, offline messaging,
interoperability, games application, PC-PC calls, PC-Phone calls and others.
For a real-time chatting system, there will be a limited number of contacts for a user and
to be chat with at a same time with their contacts especially for conference chat.
It is because in the system the number of contact per user already has been set. Besides
that the events of the chatting system are only saved if the user saved before sign out.
Otherwise the events such as text messaging, file transferring and others will be deleted
automatically after the sign out. But in certain chatting systems do provides the ability to
save tie events or history by the system itself for a certain period.

 SYSTEM ANALYSIS
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 anorganization or campus of vast size, thus
increasing the standard of co-operation. In addition itconverts the complex concept of
sockets to a user friendly environment. This software can havefurther potentials, such as
file transfer and voice chatting options that can be worked upon later.

Relation to External Environment This tool helps in two major aspects

 Resolving the names of all the system connected in a network and enlisting
them.

 Used for communication between multiple systems enlisted in the resolved


list.

 Design ConsiderationsApproach: The tool has been designed using PHP


(Online Base Application).

 Methodology: The user interacts with the tool using a GUI. The GUI operates
in two forms, the List form & the chat form.

 The List form contains the names of all the systems connected to a network.

 The chat form makes the actual communication possible in the form of text.

 SYSTEM ARCHITECTURE
The chat application works in two forms.

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

 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 List selected Form d Close? No. No
Yes. Yes Establish connection between Stop host and selected system Chat
form (Text messages sent and received as packets Form closedYes No

OPERATIONAL CONCEPTS
Scenarios Operation of The ApplicationBased 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.

 Contains two buttons: Refresh and Connect.

 When Refresh button is clicked refreshes the list of names.

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

Note: If no name is selected, and connect button is clicked an error box is displayed.Chat
form:

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

 Contains a textbox for messages to be written that is sent across the network.

 Contains a Send button.

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

 To make it more realistic, the self-sent message is shown in the rich textbox as
well. Both the messages are 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 browser, the list form remains intact. Click the logout button; this is
when the application is closed.

3.5 SYSTEM FLOW CHART

The diagram (fig 3.5) below shows the flow of control through a system while specifying
all programs, inputs, input from keyboard, cpu, disk storage, report and output.

This flow chart is to be the basis for communication among system analyst, and users,
applications programmers and computer operators. It serves as a technical blue print for
implementation. This chart represents how the program starts operation, the operation
that suites the intended task is then selected, they are:

Input: the quantity of goods available in the database.

CPU: Central Processing unit is responsible for processing the input and sending it to the
disc storage device for easy accessibility.

Disk storage: Data inputs are stored in the disc storage.

Report: final analysis of goods going in and out of the ware house.

Output: the final stage on the flow chart where the data is read as information and can
thereby be printed and filed for record purpose.
Fig3.9 System Flowchart

TABLES USED :

LOGIN

Loginid name password email Type


VARCHAR2( VARCHAR2( VARCHAR2(30 VARCHAR2(30 VARCHAR2(30)
30) 30) ) )
CHAT ROOMS:

roomname roomdesc
VARCHAR2(30) VARCHAR2(30)

SHARED FILES:

fileName contenttype loginid


VARCHAR2(30) VARCHAR(30) VARCHAR2(30)
CHAPTER FOUR

SYSTEM IMPLEMENTATION AND EVALUATION

 SYSTEM IMPLEMENTATION

This chapter deals with the implementation and evaluation of the designed system for the
verification and validation of the various program/function pages embedded in the
design. It introduces the software and hardware requirements for the system to work
properly.
 SYSTEM SPECIFICATION

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

 HARDWARE REQUIREMENT

 Ram – minimum 128 MB

 Hard disk – minimum 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
makeour project to be used in any. Type of computer therefore we have taken
minimumconfiguration to a large extent.128 MB ram is used so that we can execute our
project in a leastpossible 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 requirementsSoftware’s 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 runsoftware to function the
computer.

 SOFTWARE REQUIREMENT

The software requirement for this web application to run includes:

 Operating System i.e. Windows XP, Windows 7, and above.

 An Anti-virus Software to prevent unwanted attack into the system.


 Web Servers (i.e. WAMP, MANP, LANP and XAMPP).We will be using html 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.

 DATABASE SCREEN SHOT

User Registration

Friends

Contact
Gallery

News

Chat

 DISPLAY OF THE USER INTERFACE


Login Page

Home Page
 PROGRAMME DESCRIPTION

The programming language used for this web application is PHP/HTML and Jscript.
Hypertext Preprocessor (PHP) is a server side scripting language that works in ally with
the Hypertext Markup Language (HTML) and some other basic scripts to develop a web-
based application programs.

During the process of using this approach, the top-down technique was adopted: The
Top-down design approach is which the application development process begins with the
most general view of the application and progressively moves towards a more detailed
view. The top-down philosophy ensures that testing of each of the web pages begins as
soon as they are designed without necessarily completing the full project.
CHAPTER FIVE

SUMMARY, CONCLUSION AND RECOMMENDATION

 SUMMARY

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
2applications the client application, which runs on the user’s 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.

 CONCLUSION

This thesis intended to research how viable web applications are as a replacement to
desktop applications. To do this an attempt was made to convert a desktop application
into a web application and research new potential technologies. Though performance is
satisfactory and most programs can be rewritten for the web browser, developers must be
research the software platforms they are going to use and gain significant experience.

 RECOMMENDATION

After the completion of this project, I highly recommend that the Online Chat
System(OCS) serves as a key connector within the various people especially student,
which this can be best implemented in the Department of Computer Science OGITECH
IGBESA.

The various chat system that has been put forward in the earlier chapters have really help
in connecting people of different Ethnics group, Religion, Believe, Tradition etc. with the
aim of sharing Valuable, Educative, Traditional and Religious Information’s amount
them self and in the entire world as a whole. I therefore recommend that the Nigerian
Association of Computer Science Student (NACOSS) Ogitech, Unit should put the Chat
System technology at practice to phase out some of the problems they go through when
reaching the student for particular information.

REFERENCE

Pilkington, R. M., Bennett, C. L., & Vaughan, S. (2000) “An Evaluation of Computer
Mediated Communication to Support Group Discussion in Continuing Education”
Educational Technology and Society Special Issue on on-line Collaborative Learning
Environments. 3 (3), 349-359. Available from:
http://ifets.ieee.org/periodical/vol_3_2000/d10.html

Saunders Gunter & Pincas Anita (2003) Learning on-line on campus Learning Partners,
UK

Shephard, K. (n.d.) “The on-line tutorial; developing and evaluating resources and
disseminating experience” An ESCalate project, www.ESCalate.ac.ukunder Resources.

Boatman, K. 2011. Web-Based Live Chat: Good for Business? URL:

http://www.inc.com/internet/articles/201103/web-based-live-chat-good-for-
business.html.

Accessed: 12.3.2015

Hord, J. 2005. How SMS Works. URL: http://computer.howstuffworks.com/e-


mailmessaging/sms.htm Accessed: 7.5.2015

VEETIIIA A.(2010) & PERIASAMY P. R(2010). Internal Chatting System For Fskkp
Students,Ump Environment. Available at:
http://umpir.ump.edu.my/2664/1/VEETHIA_ANK_PERMP_R.PERIASAMY.PD
F. Received on: August 17th, 2017.

Parasuraman R (1986). Vigilance, monitoring and search. In K. Boff, L. Kaufman and J.


Thomas (Eds), Handbook of perception and human performance. Vol. 2:
Cognitive processes and performance (pp. 43.1-43.39). New-York: Wiley.

Peddemors AJH, Lankhorst MM and de Heer J (2003). Presence, Location, and Instant
Messaging in a Context-Aware Application Framework. In MS Chen et al. (Eds).
MDM 2003, LNCS 2574, pp. 325-330. Springer-Verlag Berlin Heidelberg.

Ruff HA, Narayanan S and Draper MH (2002). Human Interaction with Levels of
Automation and Decision-Aid Fidelity in the Supervisory Control of Multiple
Simulated Unmanned Air Vehicles. Presences, 11(4), 335-351.

Tang JC, Yankelovich N and Begole J (2000). ConNexus: Instant Messaging for the
Workplace: Sun Microsystems Laboratories Report.

Blume, A., & Bowden, B. (2009, December 16). Google Labs. Retrieved March 12,
2011, from Browser S
ize: http://browsersize.googlelabs.com/

Deveria, A. (n.d.). Filesystem & FileWriter API.Retrieved 08 10, 2011, from When can I
use...: http://caniuse.com/#feat=filesystem

DFind Port Scanner. (n.d.). Retrieved 18 7, 2011, from Heap Overflow:


http://heapoverflow.com/f0rums/projects/tools/20-dfind-port-scanner/

Google Trends. (n.d.). Search trends for Adobe Air, Web applications, Adobe Flash
and .NET. Retrieved July 22, 2011, from Google Trends:
http://www.google.com/trends?q=adobe+air%2C+web+application+|+web+app+|
+web+applications+|+web+apps%2C+macromedia+flash+|+adobe+flash%2C+
%22.net+framework%22&ctab=0&geo=all&date=all&sort=0

Icaza, M. d. (2011, May 16). Announcing Xamarin. Retrieved July 28, 2011, from
Tirania: http://tirania.org/blog/archive/2011/May-16.html
Tom Christiansen and Nathan Torkington. Perl Cookbook. O'Reilly and Associates,Inc.,
Sebastopol, CA, 1996.

CSE (2006). Background and Literature review on Chat System. Available at:
https://www.cse.unr.edu/~fredh/papers/thesis/006-cetin/paper.pdf. Received on:
Thursday 17th, 2017.

Slide share (2015). Online Chat Application. Available at:


https://www.slideshare.net/CrGaurav/a-project-report-on-chat-application.
Received on: Thursday 17th, 2017.

Shodhganga (2016). Review of Existing System of Chat System. Available at:


http://shodhganga.inflibnet.ac.in/bitstream/10603/11206/8/08_chapter2.pdf.
Received on Friday 18th, 2017.
APPENDIX

<?php

session_start();

if(!isset($_SESSION['user'], $_SESSION['pass'])){

$_SESSION['error_msg'] = "You need to login";

header('location:index.php');

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="viewport" content="width=device-width; initial-scale=1.0" />

<link href="style/home.css" rel="stylesheet" type="text/css">

<link rel="shortcut icon" href="style/ico/ico.jpg">

<title>Welcome to chatSystem</title>

</head>

<body>

<div class="head"></div>

<div id="d1"><table height="100%" align="center"><tr>

<td width="100" bgcolor="#999900" align="center"><a


href="home.php"> Home </a></td>

<td width="100" align="center" class="dropdown"><span class="dropbtn"> Menu


</span>
<div class="dropdown-content" style="text-align:left;text-indent:20px">

<a href="gallery.php">Gallery </a>

<a href="profile_photo.php"> Profile Photo </a>

<a href="status.php"> Status </a>

<a href="add_contact.php"> Add Contact </a>

</div>

</td>

<td width="100" align="center" class="dropdown"><span class="dropbtn"> About


</span>

<div class="dropdown-content">

<table><tr><td>

<a href="about_author.php">About Author </a></td><td>

<a href="about_app.php"> About Application </a>

<a href="about_dev.php"> About Developer </a>

</td></tr></table>

</div>

</td>

<td width="100" align="center"><a href="message.php"> Message </a></td>

<td width="100" align="center"> Notifications </td>

<td width="140" align="center" class="dropdown"><span class="dropbtn"> Profile


</span>

<div class="dropdown-content">

<table><tr><td>

<a href="#"><?php

include('auth.php');
$query = mysql_query("SELECT * FROM register WHERE
username='$_SESSION[user]'");

$num = mysql_num_rows($query);

$fetch = mysql_fetch_array($query);

echo "

<img src=\"script/$fetch[picture]\" width=\"100\" height=\"80\" style=\"border:solid 1px


grey\">

";

?>

</a>

<a href="view_profile.php"> View Profile </a></td><td>

<a href="#"><?php echo $_SESSION['user']; ?></a>

<a href="signout.php"> Sign Out </a>

<a href="change_password.php"> Change Password </a>

</td></tr></table>

</div>

</td>

<td width="500" align="right"><a href="signout.php">

<input type="text" style="width:70px" name="fow" readonly value="<?php echo


$_SESSION['user'];?>" />

Logout </a></td></tr></table></div>

<table class="table_body" border="1">

<tr>

<?php // SIDE LEFT BAR GOES HERE;?>

<td background="style/image/ba3.jpg" valign="top">


<table style="color:#996633;text-indent:30px">

<tr>

<th><h2> Active Friends </h2></th></tr>

<tr>

<td>

<table style="text-indent:30px">

<?php

include('auth.php');

$query = mysql_query("SELECT * FROM friend WHERE


acc_username='$_SESSION[user]'");

$num = mysql_num_rows($query);

while($col = mysql_fetch_array($query)){

echo "<tr>

<td><a href=\"profile.php?username=<?php echo $col[username]?


>\">

<input type=\"text\" name=\"frend\" value=\"$col[surname]


$col[username] \" readonly style=\" background:transparent;border:none\"></a>

</td>

</tr>";

?>

</table>

</td>

</tr>
</table>

</td>

<?php // LEFT SIDE BAR ENDS HERE;?>

<!-- body --><?php /** Body container goes here */; ?>

<td width="800" valign="top">

<table style="color:#000099;text-indent:30px;color:#999900">

<tr>

<th style="text-indent:10px"><h1> Latest News </h1></th></tr>

<tr>

<td><img src="style/ico/ico01.jpg" width="400" height="150"></td><td


align="justify"> Entertainment Screen Rant

New Cable Image from Deadpool 2

Another new look at Josh Brolin’s Cable from Deadpool 2 recently hit social media. The
casting of Nathaniel Summers, also known as Cable, was the hot Hollywood talent search
of the last few months. And now a brand new photo has been revealed that may deepen
</td>

</tr>

<tr>

<td align="right">

With a catalog of over 12 million products and free 2-day shipping, Wayfair is changing
the way you shop for everything home
Dislike

</td><td><img src="script/profile_photo/na001.jpg" width="400" height="150"></td>

</tr>

<tr>

<td><img src="../../../Users/YOUNG-GOLD/Pictures/IMAGES/24-cast-tv-serie-
wallpapers-1024x768.jpg" width="400" height="150"></td>

<td align="justify">

Adolf Hitler thought he was going to win. The Nazis didn’t just take battle plans and
explosives into World War II; they had plans for a whole new world order. When the
fighting and the bloodshed were done, they were going to build a new fascist empire over
the ruins of Europe. The Nazis already had already written up the blueprints for their new
order. If everything had gone according to Hitler’s plan, the world today would be a
different place. And in many ways, the Nazi new world order wouldn’t have been what
you’d expect. 10 Returning American Land To The Natives The Nazis might have been
genocidal white supremacists, but when it came to Native Americans, they were
surprisingly accepting.

1187

Reactions

Like this topic

</td>

</tr>

</table>

</td>
<!-- body ends --><?php /** Body ends here */;?>

<?php // SIDE BAR GOES HERE;?>

<td width="200" valign="top">

<br />

<table class="trytbar" align="center">

<tr>

<th><font size="4"> Menu Side Bar </font></th>

</tr>

<tr><td height="10"></td></tr>

<tr>

<td><a href="view_contact.php"> Contact <font


color="#003399">&laquo;</font></a></td>

</tr>

<tr>

<td><a href="status.php"> Status <font color="#003399">&laquo;</font></a></td>

</tr>

<tr>

<td><a href="add_frend.php"> Friends </a><font


color="#003399">&laquo;</font></td>

</tr>

<tr>

<td><a href="news.php"> News Field <font color="#003399">&laquo;</font></a></td>

</tr>

<tr>

<td><a href="gallery.php"> Gallery <font color="#003399">&laquo;</font></a></td>

</tr>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="viewport" content="width=device-width; initial-scale=1.0" />

<link href="style/style.css" rel="stylesheet" type="text/css">

<link rel="shortcut icon" href="style/ico/ico.jpg">

<title>Online Chat System</title>

</head>

<body>

<div><img src="style/image/ho.png" /></div>

<div id="dbody">

<!-- <hr color="#996633"/> -->

</div>

<div
style="position:absolute;right:620px;top:100px;background:#333333;border:dotted;width
:0px;height:500px;border-color:#996633"></div>

<div class="dc">

<h1 style="color:#333333"> Do you have an account ? </h1><br />

<p> Register now to have optimum access to the system and start conversation with your
love ones </p>

<p> All user can perform task like chat, add friend, remove unwanted friends, edit their
profile,
change login password, and many more. </p><br /><br /><br />

<input type="button" name="about" value="ABOUT US" class="abt" />

</div>

<div class="db">

<form id="login" action="script/login.php" method="post">

<font face="calibri"size="6"color="#996633"><b> Login </b></font><br /><br /><br />

<label>

username <br />

<input type="text" name="username" class="txt" /></label><br /><br />

<label>

password <br />

<input type="password" name="password" class="txt" /></label><br /><br /><br />

<input type="submit" name="submit" value="Login &rArr;" class="btn" /><br /><br />

<a href="signup.php"> Signup for an account </a>

</form>

<br /><br /><br />

</div>

</body>

<script type="text/javascript">

var msg = "<?php echo $_SESSION['msg_err'];


unset($_SESSION['msg_err']); ?>";
if(msg!=""){

alert(msg);

</script>

</html>

You might also like