Sie sind auf Seite 1von 26

Internship Project Report

on

Chat Express Software


Submitted to
Department of Computer Science and Engineering

AMITY SCHOOL OF ENGINEERING AND TECHNOLOGY

Submitted to: Submitted by:

Mrs. Shweta Bhardwaj Prateek Sansanwal

B. Tech CSE (Evng.)

3rd Year (7th Semester)

Enrolment No.:
A2345914063

1
AMITY UNIVERSITY UTTAR PRADESH
GAUTAM BUDDHA NAGAR
Declaration by the Student

I am PRATEEK SANSANWAL student of B.TECH CSE EVENING 2014-2018

hereby declare that the internship project titled Chat Express Software which is

submitted by me to Department of ASET Amity University Uttar Pradesh, NOIDA,

in partial fulfillment of requirement for the award of the degree of Bachelor of

Technology in Computer Science and Engineering, has not been previously formed

the basis for the award of any degree, diploma or other similar title or recognition.

The author attests that permission has been obtained for the use of any copy righted

material appearing in the dissertation project report other than brief excerpts

requiring only proper acknowledgement in scholarly writing and all such use is

acknowledged.

2
Date: 22/05/2017 Signature of the

Student

Certificate

This is to certify that Mr. PRATEEK SANSANWAL, student of B.Tech in

Computer Science and Engineering has carried out the work presented in the

project of the in house report entitle Chat Express Software as a part of second

year programmed of Bachelor of Technology in Computer Science and Engineering

from ASET, Amity University, NOIDA, Uttar Pradesh under my supervision.

3
Name and Signature of the Faculty Guide

Amity School of Engineering and Technology, AUUP

ACKNOWLEDGEMENT

I am very grateful and express my deep regards to Mrs. Shweta Bhardwaj to guide

to me and her guidance, encouragement through-out the completion of my project.

I am also very grateful to my friends and faculty of the study center, who were

stood by me during the development of my project.

Last but not the least I convey my thanks to Amity School of engineering and

Technology to provide easy and effective computer education that I able to develop

my project to best of my lab our.

Prateek Sansanwal

4
TABLE OF CONTENTS
Sr. No. Topic Page Number

1. Introduction 6

2. System Analysis 7

2.1 System Objective 7

2.2 Relating to External Environment 7

2.3 Design Consideration 7

2.4 System Architecture 8

2.5 Operation Concepts and scenarios 10

3. System Specification 11

3.1 H/W Specification 11

3.2 S/W Specification 11

4. System Architecture 12

4.1 Socket Overview 12

4.2 Software Process Model 14

4.3 Process Modules 14

5. System Design Details 16

5.1 GUI Module Name and Description 16

5.2 Resolving Names Module Description 17

5.3 Connection Modules Names and Description 18

6. Testing 20

6.1 Testing Objective 20

6.2 Integration Testing 21

5
6.3 System Testing 21

7. System Execution and maintenance 23

7.1 Execution 23

7.2 Maintenance 24

8. Constraints and Forthcoming Augmentation Conclusion 25

8.1 Restraints 25

8.2 Future Augmentation Conclusion 25

9. Bibliography 26

1. INTRODUCTION

Chatting is a technological medium through which people and innovative ideas can be
meshed together irrespective of the international boundaries, caste, creed and sex. The
platform have been available to mankind for quite some time but the acceptance of its
application is comparatively recent. Our project tries to give an insight about the
robustness and compactness of chatting application with the help of a chat server, which
comprises 2 applications-one is the client application processing on the user computer
and other is the server application running on random devices accessible to the network.
In order to start the conversation in the interface, the user should be logged in to server
where one can use two kinds of chatting according to their preference, the first kind of
chatting is public (where ones conversation is transmitted to all connected users) and
other is the private (which is encrypted and secured and can only be accessed by both the
user who are conversing).

6
2. SYSTEM ANALYSIS

2.1 System Objectives

The most primary application of a chatting application is communication over a


network, where it establishes a link between multiple systems attached to an intra-net or
an ad-hoc. The application is utilized for communication and conferences in an
association or university campus. This software can be further upgraded with features
like file transfer and voice or video calling options.

2.2 Relating External Environment

This tool serves two main purpose -


Enlisting and resolving the titles of the devices with access to the network.
Interaction between devices registered in the determined list.

2.3 Design Considerations

Approach:

JAVA platform is used to designed the application.

Methodology:

The client interacts with the help of a Graphical User Interface (GUI), a computing
platform.

GUI has two modes of operates - List form & Chat form.
The List form includes titles of the devices with access to the network.
The chat form embodies the communication through the means of text messages.
2.4 System Architecture

The working and processing of application can be categorized into two form:-

List form:
All the tags of the devices with access to the setup are enlisted. These titles can be
served for communication purposes with the help of pointer arrow event, in layman
terms: a click function.

Chat form
Chat form is primarily used when a given tag is chosen from the List form where it
establishes a link between the host network and the selected system through a
socket.
Figure 1.1 Flow Chart
2.5 Operational Concepts and Scenarios
Operation concept based on the modes of the interface:

List Form:
Initially it returns a list comprising of the titles of all the devices connected to the
network.
Encompasses two buttons: Refresh and Connect.
Refresh button refreshes the list of titles upon its selection.
Upon the selection of connect button or double clicking a title on the list, the chat
form is set into motion with a link established between the host and the client
machine.
PS: If we use the connect button when no tags is chosen, an error will be
displayed.

Chat form:
Comprises of a rich non editable textbox and the chat form can only shows the
conversation texts between the users as in any other chatting interface.
Includes a textbox for texts to be typed and transmitted across the network.
Have a Send button.
Upon the selection of Send button, the message typed is encrypted and send as a
packet to the other device, where the text is decoded back to its original form.
For efficient and effective use, the self sent message by the user is also displayed
on the interface. Both the messages is distinguished from one another with the
help of identifier name visible at the start of each message in the rich text box

EXIT:
Exiting the chat form leaves the list form and application intact whereas closing the list
form, shuts down the whole application.
3. SYSTEM SPECIFICATION

3.1 Hardware requirements


The basic hardware necessity for the minimalistic development of this software

We increased the bare minimum requirement in order to run the application in any of
devices with greater flexibility while giving a fluidic user experience. Others refinements
are made according to the needs of the projects.

3.2 Software requirements

Software by definition is a programs executed by the computer, providing the link


between the human and a computer.The various software which is a necessity to run the
project are as follows
4. SOFTWARE ARCHITECTURE

4.1.1 Socket Overview

A socket represents a low level access point which can be accessed. It can transmit and
receive data in form of blocks. Data is basically compressed and encrypted in blocks of
few Kbytes for efficiency; each of these block are called a packet.

Packets requires a Source IP Address and a destination address to be transmitted and they
usually contain a unique port number. Normally, a port number is a number between 1
and 65,535 which is required to distinguish protocols. Port number plays a very vital role
in programming ones own applications as every application carries a unique port number
and no two application can share one single port.

Packets that contain port numbers are of 2 types: one that contains UDP and other that
comprises TCP/IP. The former has lower latency than the latter. In case where
performance is preferred over data integrity, UDP are more compatible and easier to use,
but in case where data integrity is more important it should not be used ;but data
transmitted by UDP can be received in the wrong order rendering it useless to the
receiver. TCP/IP is a much more sophisticated than UDP system still there is an assurance
that data transmitted through the internet would not be corrupted. TCP is ideally used for
file transfer where the data takes more priority than the download speed and UDP is
suited for internet radio, where the flow of constant music takes priority than the random
disturbance in the music.

4.1.2 UDP Ports


The UDP is a wireless oriented protocol that needs IP address and a port number for its
functioning, the former is used for the host and the latter is used in the detection of the
application.

The UDP(User Datagram Protocol) port number is a 16-bit address, which is unique for
every computer and system, have a sole function of transmitting specific kind of data to
its appropriate location.

A UDP datagram header consists of Source port number, Destination port number, Data
size and checksum each of them are two bytes each.
4.1.3 Using UDP Sockets

For the proper usage of UDP network socket, one must follow certain steps as shown:

Creation of UDP
socket

End point is an amalgamation of unique Internet Protocol(IP) address and serial port
number. Endpoint let us link and interact over a network connections between two
users easily which might be connected to different hosts. The Endpoint have a similar
pattern to a telephone response system where a user "call" the recipient and recipient
"answer" the user. Once the network link is established between a host and a server,
the two can "talk" by the means of messaging.

4.2 Software Process Model

The processing model of this software is based on the Spiral Model. The Spiral Model was
chosen as a base model considering the possibilities of enhancements(mostly in the field of
networks) and some modifications in the future.

4.3 Process Modules

The functions and duties of the software were distributed into smaller fragments and were
allocated to various subsystems.
4.3.1 Graphical User Interface(GUI)

GUI is a computing platform which is a more graphical interface than textual making it more
interactive for the user. It provides two different forms, one is for enlisting the accessible devices
and the other is for messaging interface.

4.3.2 Resolving Names

The module is tasked with managing the encryption necessary for analyzing the different
characteristics of the network where it uses net.exe to determine the tags of the devices which
are logged in to the same network as the host system. It then traces these titles into the list form.

4.3.3 Connection

It is tasked with establishing a fixed link from the host system to the devices from the list. The
link is set up through the help of sockets which requires ports to transmit data in form of packets.
The text transmitted / received is encrypted/ decoded respectively.
System Design Details

5.1 GUi Module Name and Description


This part explains the tools margin with the end user, also explaining the user inputs including
refresh, connection and chat.

5.1.1 Various Alternatives of Design

The tool which was developed to be used in Win64 platform is the Structured programming
approach.

5.1.2 Details of Designs

a) Module which is processed within.

Firstly, an interface for the user is developed for using in interaction. The module has a crucial
window and boxes which shows various menu selection done by the user. The various control
includes various buttons and edit used by the user to get input..

b) Checking / Correcting errors


The errors that are analyzed are either due to connection problems or because of wrong input
added by the operator.
5.2 Resolving modules Name and Description

This part explains various systems name which are connected to a network displayed as a list.

5.2.1 Design Forms

The tool which was developed to be used in Win64 platform is the Structured programming
approach with another alternative which is the object oriented approach.

5.2.2 Design Description

a) Module which is processed within.

This module has two buttons one that refreshes and one that connects to a user for input with
mouse selection.
The refresh button:
This button refreshes the list containing names that indicates the system which is connected at
that time to the network.
The connection button:
When we need to connect a host to a specific system the connect button is the way it also opens a
new form due to this connection. If there is no system selection, then a window showing error
message pops up which says connect to a system.

b) Checking / Correcting errors


The errors that are analyzed are he ones that are faced while file saving operations.

5.2.3 Expectations
various IP addresses should definitely comes in the same series.
While using intranet the firewall must be off.
5.3 Connection Modules Name and Description
This part explains that a user interacts or communicate with another user in text format. A
communication connection builds up among the host and the required user by sockets that makes
use of ports for packet data transfer.

5.3.1 Design Forms

The tool which was developed to be used in Win64 platform is the Structured programming
approach with another alternative which is the object oriented approach.

5.3.2 Design Description

a) Module which is processed within.

Here a window form application based tool is used that builds a graphical representation of
communication and is user affable.
There are three GUI interfaces under this:

The TEXTBOX interface :


The message is entered by the user which is further directed to the other operator.

The rich TEXTBOX interface:


Here, the memo is typed in the title of host plus is sent and that sent message is
shown in the name of remote user who receives it.

The SEND BUTTON interface:


Here, the button helps in sending the message in the name of host to a
remote user over the network shown in a textbox in the users title.
b) Checking / Correcting errors

The errors that are analyzed are he ones that are faced while file redeemable operations.

5.3.3 Expectations

various IP addresses should definitely come in the equivalent range.

while using intranet the firewall must be off.


6. Testing

One of the main scientists who gave rules that are used as testing objectives was Glen Myers. It
executes an agenda with a consideration of ruling out an error. We tested the pr0ject MNM Chat
with different processes with the foremost objective that: -

1. All systems must be connected to a network and should be shown in first form.
2. A communication channel must be created so that one can fraternize by synchronizing
text.

6.1 TESTING OBJECTIVES:


when one tests each and every component of a software individually we are performing a
unit test... it is performed as a requirement to a nexus code and a phase of its cycle which is not
so common in case of coding and it is performed as two separate phases.

For building up a unit testing strategy three native approaches can be used, including
isolation approach, top down approach and bottom up approach. In MNM Chat one typically
makes use of top down organizational approach. We also have other sub category in this
module which stands for Form1 mode, the part of listings and Form2 mode which is the chat
box. Form1 mode tests the resolution or uniqueness of system names that are in connection
with the network, while Form2 mode is used to build a two way communication network
among host and the receiver user, and we had successful results.
6.2 Integration Testing:

This testing is done right after unit testing. The objective is to analyze whether the module can be
integrated thoroughly, the impact being on testing borderline amongst modules. When the
modules are finally connected total testing is performed.

6.3 SYSTEM TESTING:

when one needs to use a software in a disciplined manner, to check whether the software
works as it is supposed to be system testing is performed.

This testing is used in attachment with the terms verificati0n and validation . Verification checks
the items, like software, conformance and reliability through a specific association. Software
assay is nothing but a kind of verification, that makes use of techniques like reviews, analysis,
inspections and walkthroughs. Validatin means checking whether specified detail is the thing that
user actually wanted.

Validation : Are we doing the right job?

Verification: Are we doing the job right?


The strategies include five distinct types of testing :-

1. Logical Testing: when one wants to assay every single facet of the two means, query &
report a they are executed making use of invalid or valid or an tremendous data test
which can be added to again analyze each and every code whose results are compared
with the existing or expected results. Further extra data is added to make sure that there is
one entry in each grouping.
Consequent tests will frequently embroil enhancing novel data, which will be erased as the trial
works acceptably.
As our prerequisite can also include about ground such as character extent & then queries were
executed after which scores were tabularized & the module was freed from superfluous field.

2. Functional Testing: - In this tariff objects were verified to safeguard that no tasks has been
unexploited, which is complete for the suave employment of the project.

3. System Testing: - This is completed after the accomplishment of system, entirely the
uncertainties were conveyed out over again to certify that not even a single blunders have
been familiarized.
7. System Execution And Maintenance

7.1 Execution

Execution is a vigorous stage in safeguarding the feat of novel system even well premeditated
system may crash if not implemented properly. Operation events are desirable to transmute a
afresh industrialized information system hooked on an 0perational system for end operators.

7.1.1 Attaining Hardware Software & Amenities:

These reserves attained after numerous sources in the computer industry. Specific cradles are as
follows

A- hardware- IBM, HP, Apple computer etc.

B- software- Microsoft, Oracle etc.

7.1.2 Testing:

Testing of an industrialized system is a chief execution activity. System test and fixing computer
agendas and assessment of information dispensation procedures.

7.1.3 Training methods:

A- Vendor and in service training- Vendor deals with wide-ranging educational packages as
part of their amenities including the courses by involvements by instructors and sales
persons ,concealing all the features of exploiting the paraphernalia here, the member truly
use the system in the attendance of trainer. If any queries rise, they can speedily be
retorted.
B- In house training- It is presented by superior acquired instructional supplies exercise
manuals on site

7.1.4 System certification:

Inaugurating and functioning a afresh premeditated system or transforming a customary bid


necessitates a complete documentation of that systems design. Certification is vital in detecting
inaccuracies & building network. certification aids as a method of interaction among the people
accountable for evolving instigating and upholding a system.

7.2 Maintenance

After the system is entirely executed and is being activated by end operator and the upkeep
purpose arises. System upholding is the censoring of operational information system gauged and
amended to brand necessary or obligatory enlargements like, the enactment of a novel system
typically results in this phenomenon as the leaning curve. An individual who panels and custom
the system will definitely make blunders modestly because they are not acquainted with it.
Although such miscalculations normally ebbed proficiency is increased with an original system,
this points out the zones where system can be enhanced . Upholding is also indispensable for the
letdowns & harms that begin throughout the maneuver of a system. The maintenance pursuit
contains a post employment of a system analysis process to certify that afresh instigated system
convene the system elaboration objective customary for them . Inaccuracies in the expansion of a
system must be rectified by the continuance process, including a sporadic evaluation or inspect of
a system to guarantee on operating system and gathering its objective.
8. Constraint and Forthcoming Augmentation Conclusion

8.1 Restraints

There are chiefly two restraints of this project which are:

The firewall is to be restricted for intra network.


It is reliant on on the explicit algorithm expended.

8.2 Future Augmentation Conclusion

There is forever a room for enhancements in any software package, nevertheless decently and
effectually it can done. Nonetheless the utmost imperative thing ought to be supple to admit
additional alteration. For now we are only apportioning with text communication. In forthcoming
this software can be protracted to comprise topographies such as:

File allocation: which will empower the user to guide files of diverse arrangements to
others thru the chat application.
Speech conversation: which will augment the function to a greater levels where
interaction will be probable by speech vocation as done using phone.
Filmed conversation: which will additionally boost the character of vocation into
videotaped communication.
10. REFERENCES

Books referred
1. Java: The Complete Reference by Herbert Schildt.
2. Introduction to Java Programming by Y. Daniel Liang.
3. Java Programming Language By Ken Arnold, James Gosling, David
Holmes
4. Thinking In Java By Bruce Eckel.
5. A Programmer's Guide to Java SCJP Certification
6.
References

1. https://firebase.google.com/docs/
2. https://www.youtube.com/watch?v=2tRavgYG4ks&t=110s

3. https://www.youtube.com/watch?v=XyxH6VcMm9E

4. https://developer.android.com/index.html

5. https://www.youtube.com/watch?

v=cSMMWOHkP68&list=PLGCjwl1RrtcSvDCxDfJb-eqwneCe934mv

6. https://www.javatpoint.com/
7. https://www.codecademy.com/learn/learn-java
8. https://www.codementor.io/learn-java
9.

Das könnte Ihnen auch gefallen