A project report on chat application -130321015102-phpapp01.pdf



Comments



Description

A Project Reporton Chat Application Submitted By: Kumar Gaurav (MRT09UGBCS013) Faculty of Electronics, Informatics & Computer Engineering 2012-13 CERTIFICATE This is to certify that the project work under titled as Chat Application Is the bonfire work of Kumar Gaurav (MRT09UGBCS013) during this project submission as a partial fulfillment of the requirement for the System Design Project of Bachelor in Technology VII Semester, of the Shobhit University, Meerut. Project Supervisor (C.E. Branch) H.O.D of Computer Dept. ACKNOWLEDGEMENT If words are considered as a symbol of approval and token of appreciation then let the words play the heralding role expressing my gratitude. The satisfaction that accompanies that the successful completion of any task would be incomplete without the mention of people whose ceaseless cooperation made it possible, whose constant guidance and encouragement crown all efforts with success. We are grateful to our project guide Ms. Sangeeta Solanki for the guidance, inspiration and constructive suggestions that helpful us in the preparation of this project. We also thank our colleagues who have helped in successful completion of the project. Kumar Gaurav 3 Logical Design 25 6.7 Process Modal 36 7 Coding 37 8 Testing 40 9 Security 42 10 Screen Shots 43 11 Future Enhancement 49 12 Conclusion 50 13 Bibliography 51 .6 Project Planning & Scheduling 11 2. Table of contents Sr.1 Definition 07 2.4 Proposed System 08 2.2 S/W Specification 15 4 Organization Profile 16 5 Specification of Language 17 6 System Design 24 6.5 Data Directory 32 6.2 Description of Present System 07 2. No Topic Page Number 1 Introduction 05 2 System Analysis 07 2.4 Data Flow Diagram 26 6.5 Feasibility Study 08 2.7 Software Engineering Paradigm Applied 13 3 System Specification 14 3.3 Limitation of Present System 07 2.1 Output Design 24 6.1 H/W Specification 14 3.6 ER Diagram 34 6.2 Input Design 25 6. . is a method of using technology to bring people and ideas “together” despite of the geographical barriers. To start chatting client should get connected to server where they can practice two kinds of chatting. which runs on the user’s Pc and server application. It is made up of 2 applications the client application. which runs on any Pc on the network. INTRODUCTION 1. The technology has been available for years but the acceptance it was quit recent. Our project is an example of a chat server. 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. INTRODUCTION Teleconferencing or Chatting. 3 Design Considerations Approach: The tool has been designed using C# (Windows Form Application). 2. SYSTEM ANALYSIS 2. Chat application establishes a connection between 2 or more systems connected over an intra- net or ad-hoc. This tool can be used for large scale communication and conferencing in an organization or campus of vast size.2 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. such as file transfer and voice chatting options that can be worked upon later.1 System Objectives Communication over a network is one field where this tool finds wide ranging application.  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. thus increasing the standard of co-operation.  Used for communication between multiple systems enlisted in the resolved list. This software can have further potentials. 2.  The GUI operates in two forms. the List form & the chat form. In addition it converts the complex concept of sockets to a user friendly environment. Methodology: The user interacts with the tool using a GUI.  Chat form This form is called only when an element is selected from the List form. all the names of the systems connected to a network are enlisted.2.  List form: In this form. Flow Chart START List Form (List of names of systems Is name List selecte Form d Close? No No . or in simple language: a click or a double click.4 System Architecture The chat application works in two forms. a connection is created between the host system and the selected system with the help of a socket. In this form. These names can later be used for communication with the help of mouse event. Yes Yes Establish connection between Stop host and selected system Chat form (Text messages sent and received as packets Form closed Yes No . Chat form:  Contains a rich textbox which cannot be edited but only displays the messages from one user to another.  When Refresh button is clicked refreshes the list of names. the list form remains intact.  When the Connect button is clicked or a name is double clicked. in the background.2.  Note: If no name is selected. Both the messages is differentiated by the help of the identifier name at the beginning of each message in the rich text box.  Contains two buttons: Refresh and Connect. including the self sent message. this is when the application is closed. Exits the list form. . the self sent message is shown in the rich textbox as well.  Contains a textbox for messages to be written that is sent across the network. the chat form is initialized with a connection between the host and the client machine.  Contains a Send button.5 Operational Concepts and Scenarios Operation of the application based on the inputs given by the user: List Form:  When initialized.  To make it more realistic. EXIT: The user exits the software in two scenarios:  Exits the chat form. returns a list containing the names of all the system connected in a network.  When the sent button is clicked. the text in the textbox is encoded and sent as a packet over the network to the client machine. as in any chat application. Here this message is decoded and is shown in the rich textbox. and connect button is clicked an error box is displayed. 1 Hardware requirements In hardware requirement we require all those components which will provide us the platform for the development of the project.Pentium 3 Floppy drive 1. Type of computer therefore we have taken minimum configuration to a large extent.minimum 128 MB Hard disk—minimum 5 GB Processor.it act as petrol in the vehicle. It is very important to run software to function the computer. We want to make our project to be used in any. SYSTEM SPECIFICATION 3. The minimum hardware required for the development of this project is as follows— Ram.5 GB hard disk is used because project takes less space to be executed or stored. 3.44” inch CD drive These all are the minimum hardware requirement required for our project.2 Software requirements Software’s can be defined as programs which run on our computer .128 MB ram is used so that we can execute our project in a least possible RAM. Therefore minimum hard disk is used. It provides the relationship between the human and a computer. Various software’s are needed in this project for its development. Others enhancements are according to the needs. Which are as follows—? Operating system—Windows 7 Others—Visual Studio We will be using visual basic as our front hand because it is easier to use and provides features to the users which is used for the development of the project. . Packets that contain port numbers come in two flavors: UDP and TCP/IP. but it should never be used where data integrity is more important than performance.1. connectionless oriented protocol that uses an IP address for the destination host and a port number to identify the destination application. Where data integrity is not of the utmost concerned.2 UDP Ports The User Datagram Protocol is an unreliable. The UDP port is a 16-bit address that exists only for the purpose of passing certain types of datagram information to the correct location above the transport layer of the protocol stack. This socket can be opened or closed or one of a set number of intermediate states. UDP has lower latency than TCP/IP. 4. but it does guarantee that data does not become corrupted when travelling over the internet. where the odd sound out of place is more acceptable than long gaps of silence. however. The UDP port number is distinct from any physical port on a computer such as a COM port or an I/O port address. destination address must be included in the packet. Ports are important when it comes to programming your own network applications because no two applications can use the same port. Most packets also contain a port number. data sent by UDP can sometimes arrive in the wrong order and be effectively useless to the receiver.1 Socket Overview A socket is an object that represents a low level access point to the IP stack. source port number 2. This means that the source IP address. SOFTWARE ARCHITECTURE 4. datagram size 4. especially on startup.535 that is used to differentiate higher protocols. checksum . however. each of these block are called a packet. UDP can prove easier to use than TCP. A socket can send and receive data down disconnection. Data is generally sent in blocks of few kilobytes at a time for efficiency. destination port number 3. A port is simply a number between 1 and 65. A UDP datagram header consists of four (4) fields of two bytes each: 1. TCP is ideal for file transfer. All packets that travel on the internet must use the Internet Protocol. it is unsuited to internet radio. TCP/IP is more complex than UDP and has generally longer latencies.1. where a corrupt file is more unacceptable than a slow download. The enhancements would be in the area of Networks being introduced into the software. Once a network connection is established between a client and a server. The Endpoint class follows a telephone-like model of networking: clients "call" servers and servers "answer" clients. The choice for this model is in the light of the enhancements that we foresee for the future. 4.2 Software Process Model The Software Process Model used is the Spiral Model. 4. possibly residing on different hosts. 4.3 Process Modules The functionalities and responsibilities of the system were partitioned and then assigned .1.3 Using UDP Sockets In order to use a UDP socket for network programming one has to follow the following steps as shown in figure given below: Create a UDP socket End point is a combination of IP address and port number. the two can "talk" to each other by reading from and writing to the connection. Endpoint objects allow you to easily establish and communicate over TCP/IP network connections between client and server processes. . one for list of systems and the other for the actual text chatting. 4. 4.3.exe” to resolve the names of the system connected to a network to which the host system is also connected. The connection is made by the help of sockets that uses ports to send and receive packets from one system to another.2 Resolving Names This module handles the code that is necessary to view the different aspewcts of the network connections in a system. 4.3. The message sent or received is coded and is encoded or decode respectively.4 Conclusion This chapter has given a broad picture of the design of the software in terms of the different modules used. It then enlists these names into the first form of the application.3 Connection This module deals with the establishment of a connection between the host system and the system selected from the list.to subsystems or components as described below. It provides two different forms.1 Graphical User Interface The user interface that the software provides to the user is interactive. We also get an idea about the interdependence among the modules. 4. It uses “net. It also gives us an idea about the degree to which each module performs related tasks.3. . connecting. the following should be described - a) Processing within module .2 Design Details At a minimum.1. chatting) are captured here. 5.1 GUI Module Name and Description This module deals with the application’s interface with the end user.1. Chapter 5 System Design Detail 5. All the user inputs (refreshing. 5.1 Design Alternatives  Structured programming approach is used as the tool has been developed in Win64 platform. 5. the following should be described . These names are displayed in the form of a list.1 Design Alternatives  Structured programming approach is used as the tool has been developed in Win64 platform. 5.2 Design Details At a minimum.2. There are different controls such as edit controls. buttons etc which are used to get the user inputs. b) Error checking Errors occurring because of connection problems. We develop the user interface for the application through which the user interacts with the tool. Errors occurring due to incorrect input by the user.  Object oriented approach is an alternative to this.2. It consists of a main window and boxes which are displayed as per the menu selections made by the user. 5.2 Resolving Names Module Name and Description In this module the application resolves the names of the systems connected to a network. 2. then an error message is shown. This module consists of the following two sub-modules  REFRESH: This refreshes the list of names indicating to the respective systems connected in the network. .  Firewall is turned off for intranet. If no system is selected. 5. a)Processing within modules We provide two buttons: Refresh and Connect to the user.3 Connection Modules Names and Description In this module the user communicates with the desired user in the form of text. 5. b) Error checking Errors occurring during file saving operations. to provide input on the basis of selection using mouse event. A connection is formed between the host system and the desired user with the help of sockets which itself uses ports for packet data transfer.3 Assumptions  All IP addresses fall in the same range. which tells a user to select a system first.  CONNECT: This connects the host system to the selected system (if any) and opens the next form with this connection. the message in the textbox is displayed in the rich textbox under the host’s name and also it is sent over the network to the remote machine where it is displayed in the textbox under the sender’s name.  RICH TEXTBOX: In this module the message sent is pasted under host name and the message received displayed under the remote users name.3.1 Design Alternatives  Structured programming approach is used as the tool has been developed in Win64 platform.2 Design Details At a minimum.5.  SEND BUTTON: When this button is pressed.3. the following should be described – a) Processing within modules We show a windows form application that makes communication graphic oriented and user friendly. Three GUI interfaces are captured under this:  TEXTBOX : Here the user enters the message to be sent to the remote user. 5.  Object Oriented approach is an alternative to this. . There are two sub options in our project first one is Form1 mode. In the first case we just test for the correct resolution of names of systems connected to a network. . The first form displays all the systems connected to a network correctly. 6.  Firewall is turned off for intranet. When developing a strategy for unit testing. there are three basic organizational approaches that can be taken. bottom up and isolation.1 TESTING OBJECTIVES: Unit testing is the testing of the individual components (units) of the software. 2. And in the second mode our motive is to obtain a two way communication between the host user and remote user. Testing Glen Myers states a number of rules that can serve well as testing objectives. Unit testing is conducted as part of a combined code and unit test phase of the software lifecycle. which is the listing part and second one is Form2 mode which is chat box. A successful connection is created and communication is possible via text synchronously.3. In our case of MNM Chat we simply use top down approach. b) Error checking Errors occurring during file opening operations 5. although it is not uncommon for coding and unit testing to be conducted as two distinct phases. And we are very much successful here in our test case.3 Assumptions  All IP addresses fall in the same range. Testing is a process of executing a program with the intent of finding an error. These are top down. We can test our project MNM Chat using various methods but the main objective is that when:- 1. The goal here is to see if modules can be integrated properly. Validation: Are we doing the right job? Verification: Are we doing the job right? . analysis. the emphasis being on testing interfaces between modules. After the modules are connected we have perform the total testing.3 SYSTEM TESTING: System testing is the process of executing software in a controlled manner. in order to answer the questions "Does the software behave as specified?" System testing is often used in association with the terms verification and validation . for conformance and consistency with an associated specification. Software testing is just one kind of verification.6.2 Integration Testing: After the unit testing we have to perform integration testing. Validation is the process of checking that what has been specified is what the user actually wanted. including software. which also uses techniques such as reviews. 6.Verification is the checking of items. inspections and walkthroughs. This is done for the smooth working of the project. Functional Testing: . which will be deleted when the test works satisfactorily. System Testing: . report and query as soon as it is implemented.The test strategies will include five different types of testing as describes below:- 1.This is done after the completion of system. Logical Testing: This will be used to test every aspect of both modes. invalid and extreme data test data will be added to test each code module and results compared with the expected results. 3.In this menu items were tested to ensure no functions has been missed out. all the queries were carried out again to ensure that no errors have been introduced. . As per our requirement we have also included some field such as character size etc and then queries were performed after that results were tabulated and then the module were free from extra field. Subsequent tests will often involved adding new data. Sufficient data will be added to ensure that there is at least one entry in each category. 2. using valid. Chapter 7 System Implementation And Maintenance 7.1 Implementation . Microsoft. B.2 Testing: Testing of a developed system is an important implementation activity. 7.IBM.Implementation is a vital step in ensuring the success of new system even a well designed system can fail if it is not a properly implemented.3 Training methods: A-Vendor and in service training-Vendor offers extensive educational programs as part of their services . Implementation activities are needed to transform a newly developed information system into an operational system for end users. 7. Apple computer etc. they can quickly be answered.In house training.1. b.It is offered by special purchased instructional materials training manuals on site. System testing and debugging computer programs and testing information processing procedures. It questions arise. HP.the courses by experiences trainers and sales personnel . Some sources are as follows a-hardware.1. Oracle etc.software.cover all aspects of using the equipment .1.participant actually use the system in the presence of trainer. 7. .1 Acquiring Hardware Software And Services: These resources acquired from many sources in the computer industry. 7.the maintenance activity includes a post implementation of a system review process to ensure that newly implemented system meet the system development objective established for them .Though such errors usually diminished experience is gained with a new system .1.7. .for example the implementation of a new system usually results in the phenomenon known as the leaning curve . Errors in the development of a system must be corrected by the maintenance process .4 System documentation: Installing and operating a newly designed system or modifying an established application requires a detailed record of that system’s design.person who operates &use the system will make mistakes simply because the are not familiar with it .this includes a periodic review or audit of a system to ensure on operating system &meeting its objective.documentation serves as a method of communication among the people responsible for developing implementing and maintaining a system. Maintenance is also necessary for the failures and problems that arise during the operation of a system . Documentation is important in diagnosing errors and making channel .System maintenance is the monitoring to evaluating &modifying of operational information system to make desirable or necessary improvements .2 Maintenance Once a system is fully implemented & being operated by end user & the maintenance function begins .they do point out areas where system may be improved . Doing so no team member had to wait to show his or her capabilities. Each member in the project has a required objective to accomplish . . Chapter 8 Contribution In The Project A project is successfully completed only when there is contribution of all the members of a team.Instead of selecting a particular task to do individually. we divided a single task in multiple subtasks so that we all can work together on the same phase or task of the project.In same way to complete this project we divided our work in equal manner . 1 Limitations There are mainly two limitations of the project and that are: . Chapter9 Limitation And Future Enhancement Conclusion 9.  Voice chat: this will enhance the application to a higher level where communication will be possible via voice calling as in telephone. 9.  Video chat: this will further enhance the feature of calling into video communication. . however good and efficient it may be done. The firewall is to be disabled for intra network. In future this software may be extended to include features such as:  File transfer: this will enable the user to send files of different formats to others via the chat application.  It is dependent on the specific algorithm used.2 Future Enhancement Conclusion There is always a room for improvements in any software package. Right now we are just dealing with text communication. But the most important thing should be flexible to accept further modification. using System. using System. using System.cs //Code for the first form that enlists the names: //library classes using System. using System. using System.Text.Linq.Data.Drawing. using System.Net. //object for next form . using System. namespace Chat_App { public partial class Form1 : Form { Form2 frm1.Net.Diagnostics.Sockets.Generic.IO. using System. using System.Windows.Collections.Forms. using System. using System. APPENDIX [A] Source Code Form1.ComponentModel. Items.FileName = "net.Substring(2).Substring(0. netUtility.ToUpper()).StartInfo. while ((line = streamReader.Start().ReadLine()) != null) { if (line. netUtility. } //code for resolving names on initialization private void Form1_Load(object sender. netUtility. netUtility.Add(line.exe". netUtility. netUtility.Arguments = "view".StartInfo.RedirectStandardError = true. netUtility.StandardOutput. EventArgs e) { Process netUtility = new Process(). int portNo = 1.StartInfo.StartInfo. netUtility.CurrentEncoding).CreateNoWindow = true.BaseStream.StartInfo.StandardOutput. StreamReader streamReader = new StreamReader(netUtility. .Substring(2).RedirectStandardOutput = true. string line = "".StartsWith("\\")) { lbNames.StartInfo.UseShellExecute = false.IndexOf(" ")). line. //ports to be used public Form1() { InitializeComponent(). Items. netUtility.exe".CreateNoWindow = true.StartInfo.Arguments = "view".FileName = "net. netUtility.Close(). } } /* if (lbNames.StartInfo.StartInfo. . netUtility.UseShellExecute = false.lbNames.Add("No systems connected.ItemHeight == 0) {wwww lbNames.WaitForExit(1000). } private void lbNames_SelectedIndexChanged(object sender.StartInfo. netUtility.MouseDoubleClick += new MouseEventHandler(lbNames_MouseDoubleClick).StartInfo. Process netUtility = new Process(). this.. netUtility.RedirectStandardOutput = true.Clear(). netUtility.\nPleace check LAN"). EventArgs e) { lbNames. EventArgs e) { } //refresh button private void button1_Click(object sender. }*/ streamReader.Items. ItemHeight == 0) { * lbNames.Add("No systems connected.Substring(2).ToUpper()).Close(). netUtility. StreamReader streamReader = new StreamReader(netUtility.\nPleace check LAN").WaitForExit(1000).StandardOutput.Items.StartsWith("\\")) { lbNames.IndexOf(" ")). netUtility..RedirectStandardError = true. netUtility.Items.ReadLine()) != null) { if (line.Substring(2). netUtility.StandardOutput. EventArgs e) { if (lbNames.BaseStream. . } } /*if (lbNames.Add(line. while ((line = streamReader. } //connect button private void button2_Click(object sender.SelectedItem == null) //error message box { Form3 frm = new Form3().StartInfo.Substring(0. }*/ streamReader.CurrentEncoding).Start(). string line = "". line. portNo++.Location).cs //code for the second form which is the actual chatting part //library classes using System. . } } void lbNames_MouseDoubleClick(object sender.SelectedItem.ListBox. lbNames.Show(). portNo++.Forms.ToString()).ToString()).lbNames.NoMatches) { frm1 = new Form2(portNo. frm.Show(). lbNames. frm1. MouseEventArgs e) { int index = this.SelectedItem. frm1. } } } } Form 2.Show().IndexFromPoint(e.Windows. } else { frm1 = new Form2(portNo. if (index != System. using System. using System. using System.Text.Sockets. InitializeComponent(). using System. using System.Net.Forms. namespace Chat_App { public partial class Form2 : Form { Thread thdUDPServer.Windows.Threading.ComponentModel. using System. } .Linq.Generic. using System.Data.Collections. using System. string serverName. using System.Net. int portNo. serverName = name.Drawing. string name) { portNo = port.IO. using System.using System. public Form2(int port. Any. } private void lbConnections_TextChanged(object sender. thdUDPServer = new Thread(new ThreadStart(serverThread)).//thread for synchronous data transfer public void serverThread() { UdpClient udpClient = new UdpClient(portNo).ToString() + "\n"). EventArgs e) { chatBox. EventArgs e) . Byte[] recieveBytes = udpClient.Focus(). while (true) { IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Start(). } } private void Form2_Load(object sender. lbConnections.GetString(recieveBytes). //receiving data string returnData = Encoding.Receive(ref RemoteIpEndPoint). portNo). EventArgs e) { } private void chatBox_TextChanged(object sender.AppendText(serverName + ":" + returnData.ASCII. //thread object for sockets thdUDPServer. chatBox. } . EventArgs e) { UdpClient udpClient1 = new UdpClient().Send(sendBytes. chatBox.ScrollToCaret().{ } private void button1_Click(object sender.Clear(). //encoding if (chatBox.Connect(serverName.GetHostName().TextLength != 0) { string hostName = Dns. } chatBox. } private void copyToolStripMenuItem_Click(object sender.AppendText(hostName + ":" + chatBox.Text). udpClient1. sendBytes.ASCII.Focus().Copy().ToString().Length). EventArgs e) { Clipboard. lbConnections. Byte[] sendBytes = Encoding.Clear(). //socket object for data transfer using UDP protocol udpClient1.GetBytes(chatBox. portNo). //sending to remote user lbConnections.Text + "\n"). } private void cutToolStripMenuItem_Click(object sender.Generic.GetText()).Collections. . using System. } } } Form3. EventArgs e) { chatBox. lbConnections. copy. EventArgs e) { Clipboard. } private void pasteToolStripMenuItem_Click(object sender.cs //code for error message using System. EventArgs e) { Clipboard.Copy().//cut.Cut().Clear(). chatBox.ComponentModel.Clear(). using System. paste commands private void copyToolStripMenuItem1_Click(object sender.AppendText(Clipboard. Close(). using System.Linq.Forms.ActiveForm. using System. using System.Windows.Text.Drawing.using System. EventArgs e) { } private void button1_Click(object sender. EventArgs e) { Form3. } } } . using System.Data. } private void label1_Click(object sender. namespace Chat_App { public partial class Form3 : Form { public Form3() { InitializeComponent(). Ad-Hoc . And the Interface that we provide is no exception. This has been the guiding force during the design phase of our software. APPENDIX [B] Output One of the most important principles of Software Design is to keep the software simple yet effective. Against the backdrop of this ideology we design a simple yet very effective interface.
Copyright © 2024 DOKUMEN.SITE Inc.