STRANCHAT
By Sandeep Kumar RK (1215953)Saurav Dhanothia (1215958)Sunny
Kumar (1215960)
Under the guidance of Mr. Sarvanan
Specialization project report submitted in partial fulfillment
of the requirements of V Semester Bachelor of Computer
Applications, Christ University
September - 2014
CERTIFICATE
This is to certify that the report titled StranChat is a bona
fide record of work done by Sandeep Kumar (1215953), Saurav
Dhanothia (1215958) and Sunny Kumar (1215960) of Christ University,
Bangalore, in partial fulfillment of the requirements of V Semester
BCA during the year 2014. Head of the Department Project
GuideValued-by:Name:
1.Register Number:
Examination Centre: Christ University
2.Date of Exam:
Department of Computer Science, Christ University
ACKNOWLEDGEMENT.Stranchat would not have been possible without
the kind support and help of many individuals. We would like to
extend our sincere thanks to all of them.We are thankful to
Mr.S.Sarvanann for his guidance and constant supervision as well as
for providing necessary information regarding the project and for
his support in completing the project. helped us in the completion
of this project.Our thanks and appreciation also goes to all the
people who have willingly helped us with all their abilities.Last
but not the least, a special and a sincere thanks to the Christ
University Lab administrators and the lab staff for allowing us to
use the systems in complete freedom and supplying us with all the
software needed and their technical support.The project would not
have been possible without the contribution, support and guidance
of every individual mentioned above.
ABSTRACTThe project,title STRANCHAT is a simple,chat
application. Our Project is based on connecting people from various
places around the world. As the name suggests, in random chat
people sharing the same field of interest can connect and talk
randomly. To begin with, the person has to sign up providing with
the basic information. It helps in making new friends sharing
knowledge clarifying doubts etc. The application provides various
categories through which we can select and interact &
communicate according to their personal choice. The person can
connect and disconnect as and when needed.The aim of building such
a website is to help socially challenged people in interacting to
people just on random terms. We do provide the user with 2 options
while using our website. In the categories section the user is
allowed to select from a range of options. He/She will thus be
chatting to some random person on the opposite side with the common
field of interest.The Random Chat is not based on categories. Its
just getting connected to random people whom we dont know anything
about and building a connection to them.
Stranchat iv
ContentsACKNOWLEDGEMENTiiiABSTRACTivLIST OF FIGURESviLIST OF
TABLESvii1. INTRODUCTION11.1 OVERVIEW OF THE SYSTEM12.1 EXISTING
SYSTEM22.2 PROPOSED SYSTEM22.3 LITERATURE REVIEW32.4 SOFTWARE TOOLS
USED33. SYSTEM REQUIREMENTS43.1 SYSTEM MODEL43.2 FUNCTIONAL
REQUIREMENT43.3 HARDWARE REQUIREMENTS53.4 SOFTWARE REQUIREMENTS54.1
ARCHITECTURAL DESIGN64.2 FLOWCHART74.3 DATABASE DESIGN84.3.1 TABLE
DESIGN USER TABLE84.3.2 Data Dictionary94.3.3 DATA FLOW
DIAGRAM114.3.4 ENTITY RELATIONSHIP DIAGRAM114.4 USER INTERFACE
DESIGN125. IMPLIMENTATION145.1 SOURCE CODE:145.2 SCREEN SHOTS:356.
TESTING416.1 TEST PLAN :416.2 TEST CASES AND
REPORTS42CONCLUSION447.1 ADVANTAGES447.2 LIMITATIONS:447.3 FUTURE
ENHANCEMENT45REFERENCES46
Department of Computer Science, Christ University
LIST OF FIGURES
Fig. No.Figure NamePage No.
3.1System Model8
4.1Architectural Design9
4.3.3Data Flow Diagram10
4.3.4Entity Relationship Diagram26
5.2.1Form 127
5.2.2Friends28
5.2.3Feedback
5.2.4Form 1
5.2.5Home
5.2.6Confirm Box
5.2.7Profile
5.2.8Form 1
LIST OF TABLES
Table. No.TitlePage No.
3.3Hardware Requirements
4.3.1User Table
4.3.2Feedback Table
4.3.3IP Table
4.3.2.1Data Dictionary
4.3.2.3IP Table
Stranchat vii
1. INTRODUCTION1.1 OVERVIEW OF THE SYSTEMOur Project is based on
connecting people from various places around the world. As the name
suggests, in random chat people sharing the same field of interest
can connect and talk randomly. To begin with, the person has to
sign up providing with the basic information. It helps in making
new friends sharing knowledge clarifying doubts etc. The
application provides various categories through which we can select
and interact & communicate according to their personal choice.
The person can connect and disconnect as and when needed.The aim of
building such a website is to help socially challenged people in
interacting to people just on random terms. We do provide the user
with 2 options while using our website. 1) Categories 2) Random
In the categories section the user is allowed to select from a
range of options. He/She will thus be chatting to some random
person on the opposite side with the common field of interest.
The Random Chat is not based on categories. Its just getting
connected to random people whom we dont know anything about and
building a connection to them.
2. SYSTEM ANALYSIS2.1 EXISTING SYSTEMThe current system does
provide us with the random chat option thus connecting us to anyone
throughout the globe (in other words: A STRANGER).
LIMITATIONS: The user has no clue of the person he/she is
interacting with. There is no such information given. It does not
have categories. Not user friendly. No such future contact can be
maintained with the other person.
2.2 PROPOSED SYSTEMThis website stranchat.com is for those who
find difficulty in socializing. In this website we are adding more
features such as sending a friend request to the stranger if you
found him/her interesting. We are providing the user with
categories through which he can talk to the opposite person on the
common topic of interest.
BENEFITS OF THE PROPOSED SYSTEM: Categories option does help the
user to chat on common topics of interest. One can keep in touch on
the website itself by sending a friend request to the opposite
user. More of a user friendly website. Helps the shy and the
non-socializing people improve their socializing and communication
skills. You can have a complete view of the profile of the user
whom you are currently connected to.
StranChat 8
Department of Computer Science, Christ University
2.3 LITERATURE REVIEWBooks:[1] We used this book to gain a basic
understanding of the new language we had to learn, C#. It also
provided a good introduction to the .NET Framework and programming
using Visual Studio.[2] We learnt how to make a windows application
using c# and oracle as our basic database and how to connect the
database with the application.Websites:We also used a number of
websites for tutorials and error resolution in our programming
endeavours for this project. The following are the major websites
we used:[1] C# Tutorials taught us the different functions
available. [4] We have used this website for error handling and
connecting our application to the database 2.4 SOFTWARE TOOLS
USEDPlatform Windows 7 and Windows 8Front End- Microsoft Visual
Studio 2010Back End- MySQL
3. SYSTEM REQUIREMENTS
3.1 SYSTEM MODEL
Fig 3.1 System Model3.2 FUNCTIONAL REQUIREMENT1. Sign up This is
for the first time users to register with our website. Full name,
username, password, Gender, Email id and Profile picture2. Login
The user can enter the chat page after he has logged in. Username
and password.3. Random Chat page New Chat window displaying the
sender name and profile picture.4. Categories Allows the user to
select from the list of categories like sports, Entertainment,
Education, Patriotic, History, etc.5. Friends list After Random
chat the user will have an option to add the person in his/her
friend list and the friends who are online will appear in the
list.6. Feedback The users can add in feedback with respect to the
software like there is an additional requirement, changes and
complaints.3.3 HARDWARE REQUIREMENTS ProcessorProcessor: Intel core
2 Duo CPU T6600 @ 2.20Ghz 2.20
RAMRAM:2.00 GB or above
Available Hard Disk Space 1 GB of available space required on
system drive 2 GB of available space required on installation
drive.
Table 3.3 Hardware Requirements
3.4 SOFTWARE REQUIREMENTSFront endMicrosoft visual studio 2010
c# .net represents a significant development over earlier versions
of the language. A number of major changes have been introduced to
the development environment that represents a quantum shift for
developers in the way that application design, development,
deployment is approached.Back endMySQLis the worlds most popular
open source database, enabling the cost-effective delivery of
reliable, high-performance and scalable Web-based and embedded
database applications.
4. DESIGN SPECIFICATION
4.1 ARCHITECTURAL DESIGN
Fig 4.1 Architectural design
4.2 FLOWCHART
Fig 4.2 Flowchart
4.3 DATABASE DESIGN4.3.1 TABLE DESIGN USER TABLEField NameData
type
UidInt
NameVarchar
PasswordVarchar
Gender Varchar
BirthdateDate
PicImage
IpathVarchar
UsernameVarchar
e-mailVarchar
User Table
Table: 4.3.2 User Table
IP TableField NameDatatype
NameVarchar
CategoryVarchar
IpVarchar
Table: 4.3.3 IP Table4.3.2 Data DictionaryUser TableField
nameData typeDescription
UidIntIt is a primary key of User table
NameVarcharName of the user
PasswordVarcharIt is provided to login
Gender VarcharTo identify the user gender
BirthdateDateTo know the date of birth of the user
PicImageTo update profile picture for the user
IpathvarcharThe path of the image
UsernamevarcharIt is used to login
Emailvarcharto send mail to the user
Table: 4.3.2.1 User Table
Feedback Table
Field nameData typeDescription
FnameVarcharThe users name who sends feedback
FeidVarcharThe email id of the user
FeedbackVarcharThe comments passed by the user
UidIntThe user id
Table: 4.3.2.2 Feedback Table
IP Table
Field NameDatatypeDescription
NameVarcharThe current user
CategoryVarcharThe subject of the chat
IpVarcharIP address of the current system
Table: 4.3.2.3 IP Table
4.3.3 DATA FLOW DIAGRAM
Fig 4.3.34.3.4 ENTITY RELATIONSHIP DIAGRAM
Fig 4.3.44.4 USER INTERFACE DESIGN
LOGIN PAGE
LoginPassword Username
Fig 4.4.1
Full namePasswordUsernameEmail-idGenderMFSubmitProfile
picture
Fig 4.4.2
5. IMPLIMENTATION5.1 SOURCE CODE:using System;using
System.Collections.Generic;using System.ComponentModel;using
System.Data;using System.Drawing;using System.Linq;using
System.Text;using System.Threading.Tasks;using
System.Windows.Forms;using System.Data.SqlClient;using
System.Data.Sql;using System.IO;
namespace stranchatapp{ public partial class Login : Form {
SqlConnection con = new SqlConnection("Data Source=LENOVO;Initial
Catalog=stranchatapp;Integrated Security=True"); //int date = 0;
//int s=0; string g; //string userid; public Login() {
InitializeComponent(); }
private void buttonregister_Click(object sender, EventArgs e) {
try {
int t = 0; foreach (Control c1 in this.groupBox2.Controls) {
if (c1 is TextBox) { if (c1 is TextBox && c1.Text == "")
{ MessageBox.Show("Field cannnot be blank"); c1.BackColor =
Color.Red; c1.Focus(); } else t++; } } if (textconfirmpass.Text !=
textpass.Text) { MessageBox.Show("Password does not match");
textconfirmpass.Focus(); t--; } if (dateTimePicker1.Text == " ") {
MessageBox.Show("Field cannnot be blank");
dateTimePicker1.BackColor = Color.Red; } else if
(dateTimePicker1.Text != " ") t++;
if (radioButtonmale.Checked == true || radioButtonfemale.Checked
== true) t++; else { MessageBox.Show("Field cannnot be blank");
radioButtonmale.BackColor = Color.Red; radioButtonfemale.BackColor
= Color.Red; }
if (t == 7) { con.Open();
string str = "insert into
[user](name,gender,birthdate,email,username,password,pic,ipath)
values(@name,@gender,@birthdate,@email,@username,@password,@pic,@ipath)";
SqlCommand cmd = new SqlCommand(str, con); byte[] bimage = null;
string image = textBoximagepath.Text; if (image != "") {
global.image = textBoximagepath.Text; Bitmap bmp = new
Bitmap(image); FileStream fs = new FileStream(image, FileMode.Open,
FileAccess.Read); bimage = new byte[fs.Length]; fs.Read(bimage, 0,
Convert.ToInt32(fs.Length)); fs.Close(); } if (image == "") { image
= pictureBox1.ImageLocation.ToString(); global.image = image;
Bitmap bmp = new Bitmap(image); FileStream fs = new
FileStream(image, FileMode.Open, FileAccess.Read); bimage = new
byte[fs.Length]; fs.Read(bimage, 0, Convert.ToInt32(fs.Length));
fs.Close(); } cmd.Parameters.Add("@name", SqlDbType.VarChar).Value
= textname.Text; cmd.Parameters.Add("@gender",
SqlDbType.VarChar).Value = g; cmd.Parameters.Add("@birthdate",
SqlDbType.VarChar).Value = dateTimePicker1.Text;
cmd.Parameters.Add("@email", SqlDbType.VarChar).Value =
textemail.Text; cmd.Parameters.Add("@username",
SqlDbType.VarChar).Value = textuser.Text;
cmd.Parameters.Add("@password", SqlDbType.VarChar).Value =
textpass.Text;
cmd.Parameters.Add("@pic", SqlDbType.Image).Value = bimage;
cmd.Parameters.Add("@ipath", SqlDbType.VarChar).Value = image;
cmd.ExecuteNonQuery(); MessageBox.Show("Account successfully
created.");
string str1 = ("select uid from [user] where username ='" +
textuser.Text + "'AND password = '" + textpass.Text + "'");
SqlCommand cmd2 = new SqlCommand(str1, con); global.userid =
cmd2.ExecuteScalar().ToString(); this.Hide(); Home h1 = new Home();
h1.ShowDialog(); con.Close(); } } catch (Exception) {
MessageBox.Show("The username already exixts"); textuser.Focus(); }
} private void buttonsignin_Click(object sender, EventArgs e) {
//check if username and password matches with the database then
open home page SqlConnection con = new SqlConnection("Data
Source=LENOVO;Initial Catalog=stranchatapp;Integrated
Security=True"); con.Open(); string a = "select * from [user] where
username ='" + textusername.Text + "'AND password = '" +
textpassword.Text + "'"; SqlCommand cmd = new SqlCommand(a, con);
SqlDataReader sdr = cmd.ExecuteReader(); if (sdr.Read() == true) {
//username password correct MessageBox.Show("Login Successfull");
con.Close(); con.Open(); string str1=("select uid from [user] where
username ='" + textusername.Text + "'AND password = '" +
textpassword.Text + "'"); SqlCommand cmd1 = new SqlCommand(str1,
con); string str2 = ("select ipath from [user] where username ='" +
textusername.Text + "'AND password = '" + textpassword.Text + "'");
SqlCommand cmd2 = new SqlCommand(str2, con); global.image =
cmd2.ExecuteScalar().ToString(); global.userid =
cmd1.ExecuteScalar().ToString(); this.Hide(); Home h = new Home();
h.ShowDialog(); con.Close(); } else MessageBox.Show("username or
password is incorrect");
}
private void buttonregisterform_Click(object sender, EventArgs
e) { groupBox2.Show(); textname.Focus(); buttonregisterform.Hide();
}
private void dateTimePicker1_ValueChanged(object sender,
EventArgs e) { //date = 1; //t++; }
private void radioButtonmale_CheckedChanged(object sender,
EventArgs e) { g="Male"; } private void
radioButtonfemale_CheckedChanged(object sender, EventArgs e) {
g="Female"; } private void buttonbrowseimage_Click(object sender,
EventArgs e) { image images = new image(); OpenFileDialog
openFileDialog1 = new OpenFileDialog();
openFileDialog1.ShowDialog(); //openFileDialog1.Filter = "JPEG
Files (*.jpeg)|*.jpeg|PNG Files(*.png)|*.png|JPG";
openFileDialog1.Filter = "Image
Files(*.jpeg;*.bmp;*.png;*.jpg)|*.jpeg;*.bmp;*.png;*.jpg";
openFileDialog1.DefaultExt = ".jpeg"; textBoximagepath.Text =
openFileDialog1.FileName; pictureBox1.ImageLocation =
textBoximagepath.Text; pictureBox1.SizeMode =
PictureBoxSizeMode.StretchImage; } }}
using System;using System.Collections.Generic;using
System.ComponentModel;using System.Data;using System.Drawing;using
System.Linq;using System.Text;using System.Threading.Tasks;using
System.Windows.Forms;using System.Data.SqlClient;using
System.Net;using System.Net.Sockets;
namespace stranchatapp{ public partial class chat1 : Form {
Socket sck; EndPoint eplocal, epRemote;
public chat1() { InitializeComponent();
sck = new Socket(AddressFamily.InterNetwork, SocketType.Dgram,
ProtocolType.Udp); sck.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.ReuseAddress, true);
textlocalip.Text = GetLocalIP(); textfriendsip.Text =
GetLocalIP();
} private string GetLocalIP() { IPHostEntry host; host =
Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList) { if
(ip.AddressFamily == AddressFamily.InterNetwork) { return
ip.ToString(); } } return "127.0.0.1"; }
private void MessageCallBack(IAsyncResult aResult) { try { int
size = sck.EndReceiveFrom(aResult, ref epRemote); if (size > 0)
{ byte[] receivedData = new byte[1464]; receivedData =
(byte[])aResult.AsyncState; ASCIIEncoding eEncoding = new
ASCIIEncoding(); string receivedMessage =
eEncoding.GetString(receivedData); listMessage.Items.Add("Friend:"
+ receivedMessage);
} byte[] buffer = new byte[1500]; sck.BeginReceiveFrom(buffer,
0, buffer.Length, SocketFlags.None, ref epRemote, new
AsyncCallback(MessageCallBack), buffer);
} catch (Exception exp) { MessageBox.Show(exp.ToString()); }
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void Start_Click(object sender, EventArgs e) { try {
eplocal = new IPEndPoint(IPAddress.Parse(textlocalip.Text),
Convert.ToInt32(textlocalport.Text)); sck.Bind(eplocal); epRemote =
new IPEndPoint(IPAddress.Parse(textfriendsip.Text),
Convert.ToInt32(textfriendsport.Text)); sck.Connect(epRemote);
byte[] buffer = new byte[1500]; sck.BeginReceiveFrom(buffer, 0,
buffer.Length, SocketFlags.None, ref epRemote, new
AsyncCallback(MessageCallBack), buffer); Start.Text = "Connected";
Start.Enabled = false; Send.Enabled = true;
textmessage.Focus();
} catch (Exception ex) { MessageBox.Show(ex.ToString());
} }
private void Send_Click(object sender, EventArgs e) { try {
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
byte[] msg = new byte[1500]; msg = enc.GetBytes(textmessage.Text);
sck.Send(msg); listMessage.Items.Add("YOU:"+textmessage.Text);
textmessage.Clear(); } catch (Exception ex) {
MessageBox.Show(ex.ToString());
} }
private void listMessage_SelectedIndexChanged(object sender,
EventArgs e) {
}
private void chat1_Load(object sender, EventArgs e) {
label1.Text = global.categories; }
//private void buttonhome_Click(object sender, EventArgs e) //{
// this.Hide(); // Home h = new Home(); // h.ShowDialog(); //}
private void pictureBox1_Click(object sender, EventArgs e) {
this.Hide(); Home h = new Home(); h.ShowDialog(); }
private void pictureBox1_MouseMove(object sender, MouseEventArgs
e) { //pictureBox1.Tag = "Home"; //MessageBox.Show("HOME"); }
}}
using System;using System.Collections.Generic;using
System.ComponentModel;using System.Data;using System.Drawing;using
System.Linq;using System.Text;using System.Threading.Tasks;using
System.Windows.Forms;using System.Data.SqlClient;using
System.Data;using System.IO;
namespace stranchatapp{ public partial class profile : Form {
public profile() { InitializeComponent(); }
private void profile_Load(object sender, EventArgs e) {
}
private void buttoneditprofile_Click(object sender, EventArgs e)
{ groupBoxprofile.Show(); pictureBoxedit.ImageLocation =
global.image; SqlConnection con = new SqlConnection("Data
Source=LENOVO;Initial Catalog=stranchatapp;Integrated
Security=True"); con.Open(); string sql = "select * from [user]
where uid=" + global.userid; SqlCommand cmd = new SqlCommand(sql,
con); SqlDataReader sdr = cmd.ExecuteReader(); if (sdr.Read() ==
true) { textname.Text = sdr["name"].ToString();
dateTimePicker1.Text = sdr["birthdate"].ToString(); textemail.Text
= sdr["email"].ToString(); textuser.Text =
sdr["username"].ToString(); textpass.Text =
sdr["password"].ToString(); string g = sdr["gender"].ToString();
string m = radioButtonmale.Text; string f = radioButtonfemale.Text;
f.Replace("\n", string.Empty); m.Replace("\n", string.Empty);
//MessageBox.Show(g+"hi"); //MessageBox.Show(b+"hi"); if
(g.Equals(m)) radioButtonmale.Checked = true; else
radioButtonfemale.Checked = true; con.Close(); }
}
private void buttonedit_Click(object sender, EventArgs e) { if
(textpass.Text != textconfirmpass.Text) MessageBox.Show("Please
confirm the password correctly"); else { SqlConnection con = new
SqlConnection("Data Source=LENOVO;Initial
Catalog=stranchatapp;Integrated Security=True"); con.Open(); string
sql = "update [user] set
name=@name,gender=@gender,birthdate=@birthdate,email=@email,username=@username,password=@password,pic=@pic,ipath=@ipath
where uid=" + global.userid; SqlCommand cmd = new SqlCommand(sql,
con); cmd.Parameters.Add("@name", SqlDbType.VarChar).Value =
textname.Text; cmd.Parameters.Add("@birthdate",
SqlDbType.VarChar).Value = dateTimePicker1.Text;
cmd.Parameters.Add("@email", SqlDbType.VarChar).Value =
textemail.Text; cmd.Parameters.Add("@username",
SqlDbType.VarChar).Value = textuser.Text;
cmd.Parameters.Add("@password", SqlDbType.VarChar).Value =
textpass.Text;
if (radioButtonmale.Checked) { cmd.Parameters.Add("@gender",
SqlDbType.VarChar).Value = radioButtonmale.Text; } else {
cmd.Parameters.Add("@gender", SqlDbType.VarChar).Value =
radioButtonfemale.Text; } byte[] bimage = null; string image =
labelimagelocation.Text; if (image != "") { global.image =
labelimagelocation.Text; Bitmap bmp = new Bitmap(image); FileStream
fs = new FileStream(image, FileMode.Open, FileAccess.Read); bimage
= new byte[fs.Length]; fs.Read(bimage, 0,
Convert.ToInt32(fs.Length)); fs.Close(); cmd.Parameters.Add("@pic",
SqlDbType.Image).Value = bimage; cmd.Parameters.Add("@ipath",
SqlDbType.VarChar).Value = image; } if (image == "") { image =
pictureBoxedit.ImageLocation.ToString(); global.image = image;
Bitmap bmp = new Bitmap(image); FileStream fs = new
FileStream(image, FileMode.Open, FileAccess.Read); bimage = new
byte[fs.Length]; fs.Read(bimage, 0, Convert.ToInt32(fs.Length));
fs.Close(); } cmd.ExecuteNonQuery(); con.Close();
MessageBox.Show("Profile Successfully updated"); this.Hide(); Home
h = new Home(); h.ShowDialog(); } }
private void buttonbrowseimage_Click(object sender, EventArgs e)
{ image images = new image(); OpenFileDialog openFileDialog1 = new
OpenFileDialog(); openFileDialog1.ShowDialog();
//openFileDialog1.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG
Files(*.png)|*.png|JPG"; openFileDialog1.Filter = "Image
Files(*.jpeg;*.bmp;*.png;*.jpg)|*.jpeg;*.bmp;*.png;*.jpg";
openFileDialog1.DefaultExt = ".jpeg"; labelimagelocation.Text =
openFileDialog1.FileName; pictureBoxedit.ImageLocation =
labelimagelocation.Text; }
private void pictureBox1_Click(object sender, EventArgs e) {
this.Hide(); Home h = new Home(); h.ShowDialog(); } }}
5.2 SCREEN SHOTS:
Fig 5.2.1
Fig 5.2.2
Fig 5.2.3 Fig 5.2.4
Fig 5.2.5
Fig 5.2.6
Fig 5.2.7
Fig 5.2.8
6. TESTING6.1 TEST PLAN :Atest strategyis an outline that
describes the testing approach of thesoftware development cycle.
This includes the testing objective, methods of testing new
functions, total time and resources required for the project, and
the testing environment.Test strategies describe how the product
risks of the stakeholders are mitigated at the test-level, which
types of test are to be performed, and which entry and exit
criteria apply. They are created based on development design
documents. System design documents are primarily used and
occasionally, conceptual design documents may be referred to.
Design documents describe the functionality of the software to be
enabled in the upcoming release. For every stage of development
design, a corresponding test strategy should be created to test the
new feature sets. There are two methods used in executing test
cases: manual and automated. Depending on the nature of the
testing, it is usually the case that a combination of manual and
automated testing is the best testing method.Types of testing:White
box testing: This strategy deals with the internal logic and
structure of the code. White box testing is also called as glass,
structural, open box or clear box testing. The tests written based
on the white box testing strategy incorporate coverage of the code
written, branches, paths, statements andinternal logic of the code
etc. In order to implement white box testing, the tester has to
deal with the code and hence is needed to possess knowledge of
coding and logic i.e. internal workingof the code. White boxtest
also needs the tester to look into the code and find out which
unit/statement/chunk of the code is malfunctioning.Black Box
Testing: This is not a type oftesting; it instead is a testing
strategy, which does not need any knowledge of internal design or
code etc. As thename "black box" suggests, no knowledge of internal
logic or code structure isrequired. The types of testing under this
strategy are totally based/focused on the testing forrequirements
and functionality of thework product/software application. Black
box testing is sometimesalso called as "Opaque Testing",
6.2 TEST CASES AND REPORTSTable 6.1 Test Cases
Test case idScreen NameDescriptionTEST VALUESExpected Output
1.LoginLogin page is the first page of the application . the
user logs in to the system through this page before making any
changes in the data in the application Correct input:Username:
sandeepPassword: 123Incorrect input:Username: sanPassword: yzxLoads
the login page
Invalid User password
2.RegisterThe user Registers to be a member of the Stranchat, by
giving us the relevant informationCorrect input:All details are
given Incorrect input:Few details left blankSuccessfully
registered
Error in registration
3.ProfileThis screen displays all the details of the present
user who has logged inCorrect Input:Mention all the details and
check confirm passwordIncorrect input:Leave details empty. Password
does not matchDetails successfully updated
Enter the password correctly
4.ChatThis page is used to chat between two different users, by
connecting them through their IP address. Correct input:Correct IP
addressIncorrect input:Mismatch of IP addressSuccessfully
Connected
Connection Failed
CONCLUSION
Stranchat was really something that made us learn quite a lot.
Not just about the coding part that helped us improve our knowledge
in coding languages but we also learnt the most important aspect of
all: TEAMWORK.
7.1 ADVANTAGES
STRANCHAT, an aid to the people by the people. 1. Here, you need
not be thinking much before communicating with others. All you need
is a connection that in our case is done with the help of a LAN
wire.2. In the 21st century, it would be impossible to stay without
communicating. We, the students of BCA 5th Semester break this
wall.3. An easy to use application for the user. The application is
very much easy to use and the user need not be highly educated to
use this app. Developed for the common.4. The interface is user
friendly and the forms are too basic and interestingly have a good
catchy design.
7.2 LIMITATIONS:1. This project uses sockets. Sockets are used
for immediate conversations. It will be difficult for the user
actually to get the messages on the screen without refreshing the
page.2. The application is small just focused on the chat factor.
We havent kept up to the mark of putting it up on the internet.3.
The tables and the random thing that was actually the main part
will be continued in our next part that is the 6th semester if
given a chance.
7.3 FUTURE ENHANCEMENT
1. Implying Html, CSS, Ajax, Sockets we can make this project a
web application that will be available on the website in the
future.2. The normal chat can thus be used to make talks to random
people on the website.3. The security can be improved thus making
the user feel secure and relaxed that his information lies in safe
hands.
REFERENCESBook:[1] Balagurusamy, E. Programming in C#. A Primer
3rd Edition. Tata McGraw-Hill Education, 2010.
[2] Mayo, Joe. Microsoft Visual Studio 2010. A Beginner's Guide
1st Edition. TataMcGraw-Hill Education, 2010.
Website:[1] Visual C#.NET Visual C# .NET
Programminghttp://www.homeandlearn.co.uk/csharp/csharp.html
[2]www.w3schools.com/webservices
[3]www.visualcsharptutorials.com
[4]www.stackoverflow.com