Вы находитесь на странице: 1из 35

(Affiliated to Kannur University)

P O Karimbam, Taliparamba

A PROJECT REPORT ON

“e-touch ” –A CHATTING APPLICATION

Submitted in partial fulfillment of the requirement of the award of

B.Sc. Degree in Computer Science of

KANNUR UNIVERSITY
By

SALEEM.V.K Reg No.65317


JISHNA.P.P Reg No.65324
SUBAIR.A Reg No.65321
RIZWAN MAHAMOOD Reg No.65315
SIR SYED
INSTITUTE
F O R T E C H N I C A L S T U D I E S

CERTIFICATE

This is to certify that the project entitled “e-touch, A Chatting

Application” submitted in partial fulfillment of the requirement of the degree

of B.Sc.Computer Science is a result of the bonafide work carried out by

.…Saleem.V.K, Jishna.P.P, Subair.A, Rizwan Mahamood…during the

academic year 2005-2006.

Internal Guide

Head of the Dept.


Principal
DECLARATION

We hereby declare that the project report entitled ‘e-touch’, a chatting


application submitted by us in partial fulfillment of the requirements for the award of
the B.Sc. Computer Science; Kannur University is a bona fide record of the work done
by us at during the period September 2005 to January 2006.

We also declare that the matter embodied in the dissertation have not been
submitted by us or any other, fully or partially for the award of any other degree,
diploma or other title of recognition.

Place: Taliparamba Saleem.V.K


Jishna.P.P
Date: Subair.A
Rizwan Mahmood.M
ACKNOWLEDGEMENT

With Lord Almighty in my mind, let me submit my sincere gratefulness to all


those contributions in this project work can never forget.

I am extremely obliged and thankful to Mr. Sunil Kumar, Mr. Dileep Kumar T,
Mr. Biju, Mrs. Sunitha, Miss Smitha Krishnan, Lecturers in Computer Science for their
valuable guidance at each and every stage of my project.

I express my sincere thanks to our Principal Mr. A.V Vijayan, for providing me
the necessary facilities to do the same.

With deep sense of gratitude I express my heartfelt thanks to Mr. Muhsin, Head
of the Computer Science Department who made valuable suggestions for successful
fulfillment of the project.

Last of all, my everlasting thanks go to my friends for their kindly and timely
help.
CONTENTS

1) Abstract

2) Introduction

3) System Analysis
3.1 Preliminary Study
3.2 Existing System
3.3 Proposed System

3) System Design
4.1 System Design
4.2 System Specification
4.2.1 Hardware Requirements
4.2.2 Software Requirements
4.3 Why use JAVA in Client and Server designing
4.4 Client-Server Communication

5) Data Flow Diagram


5.1 Client-to-Client Communication
5.2 Sever-to-Client Communication

6) Coding and Testing


6.1 Coding
6.2 Testing
7) About the software
7.1 Server side
7.2 Client side
8) Output Screen Shots

8.1 The Server


8.2 The Client Login Screen
8.3 After successful login
8.4 On chatting

9) Conclusion
10) Bibliography
e-touch , A CHATTING APPLICATION
- “There’s no need to talk”
ABSTRACT

The project we are contemplating to develop is a network based chat system.

This application would help the student in our college lab to chat with each other. Student

of different classes could have their own chat rooms, so that they can chat with their own

companions. It would also have the capability to send private messages so that

conversation can be held.


INTRODUCTION

The software that we have decided in our project is a Chat system. The

Chat system is a client-server based application, which helps the users to transfer

messages between them. This application reduces the communication complexities faces

by users in an intranet.

Even though we had a lot of chat servers running on the web, they cause

several difficulties, such as the user have to register with the service provider to chat,

which gives us to raise the problem that the user cannot chat with unregistered users,

even though they may be online.


SYSTEM ANALYSIS
PRELIMINARY STUDY

The reason for choosing this particular project was due to the difficulties

that we faced during in our lab sessions. In our lab, we would be seated for apart, and

whenever somebody has to convey some messages or share some ideas; we would have

to wait till the lab sessions get over. This often creates a problem that the decrease in the

speed of program completion. To avoid this incapability we decided to develop

something to overcome this problem. Even though several commercial chat servers are

available, we are decided to develop a chat system that would enable effective

communications.
EXISTING SYSTEM

In our lab, we have both Linux and Windows OS running successfully.

Even though applications such as ‘talk’ and ‘Win pop-up’ are available with the original

system, they provide only limited communication capability, such as ‘talk’ let us to talk

only a single person at a time, and with ‘Win pop-up’. We have to provide the system

name, which is quite difficult. Now that we didn’t have any software available with the

default distribution, that would serve our purpose; we decided to build a chat server of

our own. With the project in mind we look at the chat servers that are currently available.

Some of them were the Yahoo chat server, and MSN chat server. All these system

provide client program through which user program to the server and starts chatting.

They also provide an HTML interface through which the user can access the chat server.

The usual procedure in any chat system is that users are required to authenticate

themselves with in a valid user id and password, which they create before hand. Once the

user is authenticated they enter a room were they can chat with other users in the same

room. Every user is provided with a list of users on request from where the user can

change rooms and chat with available users. The user have options to send messages to

individual persons which are known as private messages, and they can also send public

messages which are send o all the users in that room. Today chat servers are also capable

of voice chat, video conferencing and sending message to mobile instruments. All current

chat servers are GUI based, and rarely one has a command line based interface. Current

chat servers are also capable of offline messages like even if a user is not currently

online, other users can send messages to that user which the user would re secure upon

next log on.


PROPOSED SYSTEM

Even though the current systems are highly complex and advance, we are

planning to implement a less sophisticated chart server system. We planning not to

implement the authentication to process because then it would require users to register

themselves and also temporary users could not be able to use the service. We decided to

make it an open system where anybody can use the service. Our system would only

support transfer of text messages. Voice and video will not be supported. Three different

chat rooms are available with this system, so that others would not be disturbed. The

users would also be provided with information about currently online users. Our system

would also support group messages. There would be restricted on the name that they

choose to use during the chat session, as they had to be unique. We are planning to write

the server in JAVA. Our server program will work in any platform (LINUX OR

WINDOWS). This would help the server to deliver the messages more efficiently. Since

the clients would be from different architectures, so we decided to develop the client also

in JAVA.

Other than the Telnet, clients we are providing a client program, which

would utilize all the service, provide by the chat server.


SYSTEM DESIGN
SYSTEM DESIGN

The basic components of a chat system consist of server and clients. The

duty of a server is to transfer the messages sent by clients to appropriate clients. Once

establish the clients should be able to connect to the server and exchange the messages. In

order to implement the chat server the design of the server is the most crucial. The most

important decision was to choose a language is which the server could be implemented.

As the server programming language, we select JAVA. JAVA had a wide option of

functions available for building network applications. Also the design of clients, we

decided to use JAVA, since the clients program would be platform independent and the

client does not have much processing.


SYSTEM SPECIFICATION

HARDWARE REQUIREMENTS

Processor: Intel Pentium III or above


Speed: 550MHz
RAM: 128 MB
Hard Disk: 4 GB

SOFTWARE REQUIREMENTS:

SERVER:
Operating System: Linux or Windows

CLIENT:
Operating System: Linux or Windows
JDK1.4.0 above
WHY USE JAVA IN CLIENT AND SERVER DESIGNING

The main reason for choosing JAVA is its innate properties like;

1) Architectural neutral

2) Platform independence

3) Extensive support of network applications.

4) Support for developing GUI applications

5) Simple and distributed

JAVA has AWT and SWING classes, which reduce the effort needed to

develop GUI applications.


CLIENT-SERVER COMMUNICATION

The server is bound to a fixed socket and listens for connection requests

from clients. The clients try to connect to server on this port and predefined host. Once

the communication channels are set up, both talk in terms of objects defined as protocols.

Upon receiving these objects the program then extracts relevant information and takes

appropriate actions. All communications are through server and may change the protocol

parameters if required.
DATA FLOW DIAGRAM
CLIENT-TO-CLIENT COMMUNICATION
SERVER TO CLIENT COMMUNICATION
CODING AND TESTING
CODING

Coding is the process of translation of the detailed design specification


into a programming language that is ultimately transformed into machine executable
instructions. Coding or the programming begins after the design phase is completed. The
output of the design phase is the detailed design document, which is the input to the
coding phase. Although the coding phase does not affect the structure of the system, it
has great impact on the internal structure of modules, which affects testability and
understandability of the system.

The aim of the coding phase is to produce simple and clear programs.
Style is an important attribute of source code and can determine intelligibility of a
program. The elements of style include internal documentation, methods of data
declaration, procedures for statement construction etc. All the syntax and format errors of
the program must be detected and resolved. Coding produces modules that must be unit
tested. Modules are written in a programming language. The following are some of the
general coding principles:

• Keep the code simple.


• Keep the modules short.
• Code should be legible.
• Add comments (Internal Documentation).
• Add introductory header for each module.

In the coding phase, the output document is the code itself. After the source code is
generated, the function of the module should be apparent without reference to the design
specification.
TESTING

System testing is important for the success of any software system .It is done
to check whether the system has any bugs. In this phase, several tests and validations will
be carried out on modules to check for their functionality. Testing and debugging is a
very critical case in system development. The quality of the system is confirmed by the
thoroughness of its testing, duration and cost of testing and debugging is a significant
fraction of the system development cycle and hence influences overall productivity
during the system development. In this phase the errors in the program or module are
localized and modifications are done to eliminate them. Some of the methods for system
testing are given below:

 Unit Testing
Unit testing is carried out Screen-wise, each screen been identified as an object.
Attention is diverted to individual modules, independently to one another to locate errors.
This has enabled the detection of errors in coding and logic.
In unit testing,
♦ Module interface is tested to ensure that information properly flows into and put of
the program under test.
♦ Local data structures are examined to ensure that data stored temporarily maintains
its integrity during all steps in algorithm execution.
♦ Boundary condition is tested to ensure that a module operates properly at boundaries
established to limit or restrict processing.
♦ All independent paths through the control structures are executed to ensure that all
statements in the module have been executed at least once.
♦ Error handling paths are also tested.
This test focuses verification effort on the smallest unit of software
design, the module. Here, the module interfaces, local data structure, boundary
conditions, and all independent paths and last but not the least, all error handling paths
were verified by inputting false data. Test of data flow across each module interface of
this software were done before any other test was initiated.
Integration Testing

Integration testing is a systematic technique for constructing the program


structure while at the same time conducting tests to uncover errors associated with
interfacing. Unit tested modules where taken and a single program structure was built
that has been dictated by the design. Incremental integration has adopted here. The entire
software was developed and tested in small segments, where errors were easy to locate
and rectify. Program builds (group of modules) where constructed corresponding to the
successful testing of user interaction, data manipulation analysis, and display processing
and database management. These tests can be performed
1. Top down integration
2. Bottom up integration
 Validation Testing

Validation testing is done to ensure complete assembly of the error free


software. Reasonably expected by the customer under validation is alpha and beta testing.
Alpha testing is where the end user tests the system rather than the developer, but in a
control environment. The software is used on a natural setting with the developer
monitoring the user using system. The developer records the errors and usage problems
encountered by the user.
The sales person conducts beta testing at one or more sites. The developer
is not present during these tests. Hence, beta test can be said as the live application of the
software on an environment that cannot be controlled by the developer. The sales person
takes down the problems encountered during beta testing and reports these to the
developer at regular intervals. The developer makes suitable modifications to the
software henceforth.
 System Testing
System testing is actually a series of different tests whose primary purpose to
fully exercise the computer based system, each test works o verify that all system
elements have been properly integrated.

TEST PLAN

The proposed project has undergone the formal process of implementation in the
same manner as every other system would undergo. The test plan was designed to test the
quality of the system.
 Unit Testing:
Various test cases are prepared. For each module this test cases are
implemented and it is checked whether the module is executed as per the requirements
and outputs the desired result. The modules tested are acquisition, technical section,
circulation section modifications and search. They are tested and the errors found are
rectified.
 Integration Testing
The modules are tested separately for accuracy and modules are integrated
together using bottom up integration i.e., by integrating from moving from the bottom to
the top .The system is checked and errors found during integration are rectified.
Validation Testing
Entering incorrect values does the validation testing and it is checked
whether the errors are being considered. Incorrect values are to be discarded. Proper
messages are given for incorrect entries.
 System Testing
System testing was performed to verify that all system elements have been
properly [integrated and perform allocated function. Security testing was done to check
the security mechanisms built in to the system, which will protect it from improper
penetration. A user can login only by giving correct user name.
ABOUT THE SOFTWARE

Description: A simple concurrent chat application:


* The application is composed of a Java server application and a client applet.
* The chat program will allow multiple students (clients) to talk with each other at the
same time as well as to their instructor on the server side.
* There can be more than one active chat room at a time

A) SERVER SIDE:
* Server is a Frame, which has the following information. There are 3 chat rooms, which
the server is supervising. The frame shows all the three chat rooms as a TextArea, which
will display the messages from the students logging on to that chat room.
* The server can listen to all the information sent and exchanged among students of a
chat room. The server can also talk to any one particular chat room. There is a TextField
for the server to type in its messages and on pressing a "SEND" button that messages
should be sent to all clients logged on the chat room the server wants to talk to.
* Each client should login to the server before entering a chat room.
* It shall authenticate students’ requests to join the chat by means of a username and
password. After successful Login, the server will assign the client to the chat room it
requested to be signed in for. In This Application the Username and the Password are the
same.
* The server keeps track of the clients in each chat room and produces that data
whenever the server needs to see it.
* Whenever a client logs in or logs out, all the other clients present in that chat room are
notified of the new client entry/exit and when the client logs off, its information is
deleted.
* When a new user connects to the chat server, a new connection will be created to
service the client applet's communication.
Multiple clients can communicate with the server via a socket interface.
B) CLIENT SIDE:
* The client should log on to the server using a Username and Password. It should also
provide the server the chat room it wants to log on to.
* On sending the information to the client, the server authenticates the username and
password and if they match opens a new thread to service this client. If the user name and
password does not match, then the server should prompt the client. The Username and
Password should be same in this application.
* The client Applet/Frame shall has GUI for students to log to the server and to be able
to chat with other students (the interface displays a list of other students in the same chat
room).
* The interface has a TextArea to display the messages sent by other clients in that chat
room. The interface should also provide a TextField for the client to type its questions
and send it to the server.
* The client will be able to see the messages sent by the server to its chat room.
* Clients cannot see the messages sent by other clients present in different chat rooms.
* Whenever a fresh client logs on to the chat room in which the old client is logged on,
then the information about that client is visible immediately i.e. the all clients updates its
chat room list to display the new client automatically.
* The client can send messages to other students in the same chat room or ask his
instructor a question.
* The client shall be able to logout or to exit at any time.
OUPUT SCREEN SHOTS
The output of the software is just like this;

The server:
The client login screen:
After successful login:
On chatting:
CONCLUSION

This software package is made as user friendly as possible. Special attention

is paid to the user's need and speed of server while designing the system. The whole

system developed was tested with actual data. The performance is evaluated, and is found

to be according to the requirement.

The current functioning of the system satisfies the developers. This software

would immensely helps the user in achieving his/her requirement more quickly without

much manpower requirement


BIBLIOGRAPHY

The Complete Reference JAVA 2 Herbert Schildt

JAVA Developer's Guide Jamie Jaworski

JAVA in A Nutshell O'REILLY

System Analysis and Design Elias M.Award

UNIX, Network, Programming Prentice, Hall

Вам также может понравиться