SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
A Project on
WinkShare: A Social Network to Connect with
Strangers
Submitted
In partial fulfillment of the requirements for the
award of the degree of
BACHELOR OF TECHONOLOGY
IN
COMPUTER SCIENCE & ENGINEERING
Submitted by
MR. SANJAY RAO (1352510046)
Under the guidance of
MS. TUBA FIRDAUS
(Assistant Professor)
BUDDHA INSTITUTE OF TECHNOLOGY
CL-1, SECTOR-7 GIDA (GORAKHPUR), UP (INDIA) - 273209
(AFFILIATED TO Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY,
LUCKNOW, UP (INDIA)
APRIL, 2017
DECLARATION
I hereby declare that the project entitled “WinkShare: A Social Network to Connect with
Strangers” submitted for the B.Tech. (CSE) degree is my original work and the project has
not formed the basis for the award of any other degree, diploma, fellowship or any other
similar titles.
Place: Gorakhpur
Date:
Signature of the Student(s)
ii
CERTIFICATE
This is to certify that Sanjay Rao, a students of B Tech (CSE) of BUDDHA INSTITUE OF
TECHNOLOGY, (Gorakhpur) have completed the project work entitled “WinkShare: A
Social Network to Connect with Strangers” in partial fulfillment of the requirements for the
award of Bachelor of Technology in Computer Science and Engineering affiliated to Dr.
A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY, (Lucknow) under my guidance
during the academic year 2016-17.
Place:
Date:
Ms. Tuba Firdaus Mr. Sachidanand Chaturvedi
Assistant Professor Head of Department
Department of Computer Department of Computer
Science & Engineering Science & Engineering.
iii
ACKNOWLEDGEMENT
It gives us a great sense of pleasure to present the report of the B. Tech Project undertaken during
B. Tech. Fourth Year. We owe special debt of gratitude to Assistant Professor Ms. Tuba Firdaus,
Department of Computer Science & Engineering, Buddha Institute of Technology, Gorakhpur for
her constant support and guidance throughout the course of our work. Her sincerity, thoroughness
and perseverance have been a constant source of inspiration for us. It is only her cognizant efforts
that our endeavors have seen light of the day.
We also do not like to miss the opportunity to acknowledge the contribution of all faculty
members of the department for their kind assistance and cooperation during the development
of our project.
SANJAY RAO
iv
ABSTRACT
This society is moving toward the age of instruments and socialization, where
instruments such as mobile phone and cameras are a vital part of it. In this age of
digitization, the most common way of socialization is sharing posts on the social
sites such as Facebook and Instagram and with every passing second the sharing
of posts and thoughts is increasing and due to this there are several factors that
are needed to be taken care of. First of them is its security and second is to
Image processing. Which is the most essential aspect of profile pictures all
around the world. As sharing large and high definition of image require a lot of
storage space but the larger the size the slower it gets, so we need a technique
which will maintain the aspect ratio of the image as well as maintain its size for
faster processing and loading using different technologies or different platforms
as well. This paper is all about the different techniques required for the purpose
of maintaining the security and to process and tagging methods of images shared
on different social sites. The core idea of research project is to implement Web
based application for providing the users with best security and provided with
minimum added complex features
This system gives an advantage to the user as it saves both the time and the
complexity of using so much complicated features which other Social sites have.
And its feature of added security and Image processing is the added advantage.
v
TABLE OF CONTENTS
Declaration…..……….………………………………………………….….…. ………ii
Certificate.....……….…………………………………………………………………. iii
Acknowledgement .….………………...…….…………………………….….. ………iv
Abstract .…………….….…….…..…………………………………….….…. ……….v
Table of Contents...………………………………………….…………………………vi
List of Figures……………...………………………………………..…….……………ix
List of Figures……………...………………………………………..…….…………. ..x
CHAPTER 1 INTRODUCTION [1 - 6]
1.1 PROBLEM STATEMENT 2
1.2 DOMAIN STUDY 3
1.3 EXISTING SYSTEM 4
1.4 PROJECT SCOPE 5
CHAPTER 2 SYSTEM REQUIREMENTS [7 - 15]
2.1 LITERATURE SURVEY 7
2.2 FUNCTIONAL SPECIFICATION 7
2.2.1 SERVER OBJECT 8
2.2.2 ACCOUNT OBJECT 8
2.2.3 ACCOUNT DETAILS OBJECT 8
2.2.4 CHAT SESSION OBJECT, EVENT OBJECT, LINK OBJECT AND PAGE
OBJECT 8
2.2.5 MESSAGE OBJECT 9
2.2.6 WALL POST OBJECT 9
2.2.7 FRIENDS 9
vi
2.2.8 ACCOUNT CREATION 10
2.2.9 CHATTING 10
2.2.10 EVENTS 11
2.3 OTHER FEATURES 11
2.3.1 WALL 12
2.4 NON FUNCTIONAL SPECIFICATION 12
2.5 SOFTWARE TOOL SPECIFICATION 12
2.5.1 MYSQL WORKBENCH 12
2.5.1.1 DESIGN 13
2.5.1.2 DEVELOP 13
2.5.1.3 ADMINISTER 13
2.5.1.4 VISUAL PERFORMANCE DASHBOARD 13
2.5.1.5 DATABASE MIGRATION 13
2.5.2 SPRING FRAMEWORK 14
2.6 HARDWARE REQUIREMENTS 14
2.7 SOFTWARE REQUIREMENTS 15
CHAPTER 3 PROPOSED METHODOLOGY [16 - 19]
3.1 AGILE MODEL 16
3.2 AGILE VS TRADITIONAL SDLC MODELS 18
3.3 AGILE MODEL - PROS AND CONS 18
CHAPTER 4 SYSTEM DESIGN [20 - 29]
4.1 DATA FLOW DIAGRAM 20
4.1.1 USE CASE DIAGRAM 20
4.1.2 CONTEXT DIAGRAM 24
4.1.3 ENTITY RELATIONSHIP DIAGRAM 25
4.2 DATABASE 26
4.3 DATA DICTIONARY 27
vii
CHAPTER 5 WINKSHARE [30 - 43]
5.1 SAMPLE SOURCE CODE 30
5.1.1 HOME CONTROLLER.JAVA 30
5.1.2 MAIN.JSP 32
5.2 SCRENSHOTS 38
CHAPTER 6 TESTING [44 - 27]
6.1 SYSTEM TESTING 44
6.1.1 TEST DATA IMPLEMENTATION AND THEIR RESULT ON 44
6.1.2 TEST CHARACTERS 45
6.2 BLACK BOX TESTING 46
6.3 WHITE BOX TESTING 47
6.4 UNITE TESTING 47
6.5 INTEGRATION TESTING 48
6.6 VALIDATION TESTING 48
6.7 TEST CASES 48
CHAPTER 8 FUTURE SCOPE [51]
CHAPTER 9 CONCLUSION [52]
REFERENCES [53]
viii
LIST OF FIGURES
Figure No. Description Page No.
Figure 3.1.1 SDLC Agile Model 7
Figure 4.1.1.1 Login/ Registration page 21
Figure 4.1.1.2 Home page 21
Figure 4.1.1.3 Profile Page 22
Figure 4.1.1.4 Message Page 22
Figure 4.1.1.5 Search Page 23
Figure 4.1.1.6 Friend Request Page 24
Figure 4.1.2 0 Level DFD 25
Figure 4.1.3 Entity Relationship Diagram 26
Figure 4.2 List of Tables 27
Figure 5.2.1 Sign Up page 39
Figure 5.2.2 Search Result Page 39
Figure 5.2.3 User Profile Page 40
Figure 5.2.4 Login Page 40
Figure 5.2.5 Home Page 41
Figure 5.2.6 Friends Profile Page 41
Figure 5.2.7 Friend Requests Page 42
Figure 5.2.8 Chat Page 42
Figure 5.2.9 Comment Page 43
Figure 5.2.10 Unknown User Profile Page 43
Figure 6.1.1 Flow Graph 45
ix
LIST OF TABLES
Table No. Description Page No.
Table 4.3.1 Login Details 27
Table 4.3.2 Messages 28
Table 4.3.3 Posts 28
Table 4.3.4 Registration 28
Table 4.3.5 Request 28
Table 4.3.6 Table Comment 29
Table 4.3.7 Table like 29
Table 6.7.1 Login Table 49
Table 6.7.2 Registration Table 49
Table 6.7.3 Profile Table 50
x
1
CHAPTER 1
INTRODUCTION
Social Networking - It's the way the 21st century communicates now. Social networking
is the grouping of individuals into specific groups, like small rural communities or a
neighborhood subdivision. Although social networking is possible in person, especially
in the workplace, universities, and high schools, it is most popular online. This is because
unlike most high schools, colleges, or workplaces, the internet is filled with millions of
individuals who are looking to meet other people.
Social network is the mapping and measuring of relationships and flows between people,
groups, organizations, computers, URLs, and other connected information/knowledge
entities. The nodes in the network are the people and groups while the links show
relationships or flows between the nodes. Social network provides both a visual and a
mathematical analysis of human relationships.
Social Networking Website project itself is a huge project comprising various features
like profile updating, friend’s list organization and various other application to enhance
the overall look and feel of the website. However, in this project I am basically working
on two essential feature or module ( PROFILE MANAGEMENT & FRIENDS
ORGANIZATION ).
PROFILE MANAGEMENT module maintains the profile of a user like name, profile
picture, address, date of birth, contact number, post, friend list, etc. In this module if a
user want to see other user profile then he/she will not able to see all the details, only
profile picture, name, date of birth, address fields can be seen by him or her.
FRIENDS ORGANIZATION module maintains the send request to an unknown user,
accept request or decline request.
Profiles and Friends lists are two key features on social network sites. The third is a public
commenting feature ('Posts', 'Comments', 'Likes'). This feature allows individuals to
comment on their Friends' profiles. These comments are displayed prominently and
visible for anyone who has access to that profile.
2
1.1 Problem Statement
We define social network sites as web-based services that allow individuals to
construct a public or semi-public profile within a bounded system, articulate a list of
other users with whom they share a connection, and view and traverse their list of
connections and those made by others within the system. The nature and nomenclature of
these connections may vary from site to site.
Since their introduction, social network sites (SNSs) such as MySpace, Facebook,
Cyworld and Hi5 have attracted millions of users, many of whom have integrated these
sites into their daily practices. As of this writing, there are hundreds of SNSs, with various
technological affordances, supporting a wide range of interests and practices. While their
key technological features are fairly consistent, the cultures that emerge around SNSs are
varied. Most sites support the maintenance of pre- existing social networks, but others
help strangers connect based on shared interests, political views, or activities. Some sites
cater to diverse audiences, while others attract people based on common language or
shared racial, sexual, religious, or nationality- based identities. Sites also vary in the
extent to which they incorporate new information and communication tools, such as
mobile connectivity, blogging, and photo/ video-sharing.
Social networking sites are not only for you to communicate or interact with other
people globally but, this is also one effective way for business promotion. A lot of
business minded people these days are now doing business online and use these social
networking sites to respond to customer queries. It isn't just a social media site used to
socialize with your friends but also, represents a huge pool of information from day to
day living.
A social networking service is an online service, platform, or site that focuses on
facilitating the building of social networks or social relations among people who, for
example, share interests, activities, backgrounds, or real-life connections. A social
network service consists of a representation of each user (often a profile), his/her social
links, and a variety of additional services. Most social network services are web-
based and provide means for users to interact over the Internet, such as e-mail and instant
messaging. Online community services are sometimes considered as a social network
3
service, though in a broader sense, social network service usually means an individual-
centered service whereas online community services are group-centered. Social
networking sites allow users to share ideas, activities, events, and interests within their
individual networks.
1.2 Domain Study
As of May 2013, almost three quarters (72%) of online U.S. adults use social
networking sites, up from 67% in late 2012. When we first started asking about social
networking sites in February 2005, just 8% of online adults said they used social
networking sites.
Today, social networking site use is a major activity for internet users from a wide range
of demographic groups. Younger adults are especially avid adopters, but social
networking continues to grow in popularity for older adults as well. Six out of ten internet
users ages 50-64 are social networking site users, as are 43% of those ages 65 and older.
Although online seniors are less likely than other age groups to use social networking
sites, adoption rates for those 65 and older have tripled in the last four years (from 13%
in the spring of 2009 to 43% now).
The main types of social networking services are those that contain category places (such
as former school year or classmates), means to connect with friends (usually with self-
description pages), and a recommendation system linked to trust. Popular methods now
combine many of Facebook, Google+, YouTube, LinkedIn, Instagram,
Pinterest, Tumblr and Twitter widely used worldwide; Nexopia in Canada; Badoo,
Bebo, VKontakte (Russia), Delphi (also called Delphi Forums), Draugiem.lv (mostly in
Latvia), Hi5 (Europe), Hyves (mostly in The Netherlands), iWiW (mostly in
Hungary), Nasza-Klasa, Soup (mostly in Poland), Glocals in Switzerland, Skyrock, The
Sphere, StudiVZ (mostly in Germany), Tagged, Tuenti(mostly in Spain), and XING in
parts of Europe; Hi5 and Orkut in South America and Central America; Mxit in Africa;
and Cyworld, Mixi, Orkut, renren, weibo and Wretch in Asia and the Pacific Islands.
Many of these early communities focused on bringing people together to interact
with each other through chat rooms, and encouraged users to share personal information
4
and ideas via personal web pages by providing easy-to-use publishing tools and free or
inexpensive web space. Some communities - such as Classmates.com - took a different
approach by simply having people link to each other via email addresses. In the late
1990s, user profiles became a central feature of social networking sites, allowing users to
compile lists of "friends" and search for other users with similar interests. New social
networking methods were developed by the end of the 1990s, and many sites began to
develop more advanced features for users to find and manage friends. This newer
generation of social networking sites began to flourish with the emergence of
SixDegrees.com in 1997 followed by Makeoutclub in
2000, HubCulture and Friendster in 2002 and soon became part of the Internet
mainstream. Friendster was followed by MySpace and LinkedIn a year later, and
eventually Bebo. Friendster became very popular in the Pacific Island.Orkut became the
first social networking in Brazil and than also grow fast in India (Madhavan,
2007). Attesting to the rapid increase in social networking sites' popularity, by 2005, it
was reported that MySpace was getting more page views than Google. Facebook,
launched in 2004, became the largest social networking site in the world in early 2009.
Facebook was first introduced (in 2004) as a Harvard social networking (Cassidy, 2006).
1.3 Existing Systems
According to the definition above, the first recognizable social network site launched in
1997. SixDegrees.com allowed users to create profiles, list their Friends and, beginning
in 1998, surf the Friends lists. Each of these features existed in some form before
SixDegrees, of course. Profiles existed on most major dating sites and many community
sites. AIM and ICQ buddy lists supported lists of Friends, although those Friends were
not visible to others.
SixDegrees was the first to combine these features. SixDegrees promoted itself as a tool
to help people connect with and send messages to others. While SixDegrees attracted
millions of users, it failed to become a sustainable business and, in 2000, the service
closed. Looking back, its founder believes that SixDegrees was simply ahead of its time
(A.Weinreich, personal communication, July 11, 2007). While people were already
flocking to the Internet, most did not have extended networks of friends who were online.
5
Early adopters.com explained that there was little to do after accepting Friend requests,
and most users were not interested in meeting strangers.
Classmates.com allowed people to affiliate with their high school or college and surf the
network for others who were also affiliated, but users could not create profiles or list
Friends until years later.
From 1997 to 2001, a number of community tools began supporting various
combinations of profiles and publicly articulated Friends. AsianAvenue, BlackPlanet, and
MiGente allowed users to create personal, professional, and dating profiles— users could
identify Friends on their personal profiles without seeking approval for those connections
(O. Wasow, personal communication, August 16, 2007). Likewise, shortly after its launch
in 1999, LiveJournal listed one-directional connections on user pages. LiveJournal’s
creator suspects that he fashioned these Friends after instant messaging buddy lists (B.
Fitzpatrick, personal communication, June 15, 2007)—on LiveJournal, people mark
others as Friends to follow their journals and manage privacy settings. The Korean virtual
worlds site Cyworld was started in 1999 and added SNS features in 2001, independent of
these other sites (see Kim & Yun, this issue). Likewise, when the Swedish web
community LunarStorm refashioned itself as an SNS in 2000, it contained Friends lists,
guestbooks, and diary pages (D. Skog, personal communication, September 24, 2007).
1.4 Project Scope
 This system provides users to register their various types of profile like social,
personal, general, professional.
 This system provides users to send a message to their friends. User can maintain
the messages whatever messages he has send to users.
 The system provides user to upload the photos so that user can maintain own
profile picture.
 This system provides the user to maintain their friend list and user can update their
friend list.
 This system provides user to send friend request to unknown users by searching
their names.
 This system provides user to unfriend an existing friend.
6
 This system provides user to view their profile and profile of his/her friend or any
user’s profile who have signed up on WinkShare.
 This system provides the functionality of logout from their profile, because if
he/she haven’t logged out from their profile then any user can open his/her profile
by the same browser used by user.
7
CHAPTER 2
SYSTEM REQUIREMENTS
2.1 Literature Survey
The Web-based social networking services make it possible to connect people who share
interests and activities across political, economic, and geographic borders. Through e-
mail and instant messaging, online communities are created where a gift
economy and reciprocal altruism are encouraged through cooperation. Information is
suited to a gift economy, as information is a non rival good and can be gifted at practically
no cost.
Facebook and other social networking tools are increasingly the object of scholarly
research. Scholars in many fields have begun to investigate the impact of social-
networking sites, investigating how such sites may play into issues
of identity, privacy, social capital, youth culture, and education.
Several websites are beginning to tap into the power of the social networking model
for philanthropy. Such models provide a means for connecting otherwise fragmented
industries and small organizations without the resources to reach a broader audience with
interested users. Social networks are providing a different way for individuals to
communicate digitally. These communities of hypertexts allow for the sharing of
information and ideas, an old concept placed in a digital environment.
In 2011, HCL Technologies conducted research that showed that 50% of British
employers had banned the use of social networking sites/services during office hours.
2.2Functional Specifications
8
2.2.1 Server Object
The Server class acts as a wrapper for all server functions for our social networking site.
It essentially act as a link between all of the information such as accounts, account details,
pages, notes, etc to our database. When any other model object such as a page is pulled
from the server, a temporary copy is made. If that temporary copy is changed in any way.
The new version must be sent to the server in order to update the permanent copy. The
reason behind local copies is that all the necessary information for the object is sent over
in one easy-to-use package. Then the update to the database can be done all at once by
sending back that single object. There is no need for multiple functions or a function that
takes a large number of parameters.
2.2.2 Account Object
Each user who wants to use the site must create an account. This is the head class that all
other objects use to determine what a user does and when the user did it. The account’s
information has four purposes: hold the login information, hold friend information, hold
profile information, and hold privacy information with such a large amount of information
to keep track of, the Account class would be very large and difficult to work with.
Therefore to ease the load, the Account class was broken up into three different classes.
There is the actual account class which keeps track of login information and friend
information. It also holds the other two classes within it. Profile information was
outsourced to the Account Details class, and privacy settings were outsourced to the
Privacy Settings class. The only time the Account class needs to be updated is when the
user changes his/her username and/or password. All other settings are handled by the
Account Details and Privacy Settings classes.
2.2.3 Account Details Object
An Account Details object is a helper class created whenever a new Account object is
created. The object contains all the information that shows up in the user’s profile. The
user can edit this by modifying his/her profile. Overall, this class has no other purpose but
to be a helper class to its account object.
2.2.4 Chat Session Object, Event Object, Link Object and Page Object
9
These objects contain unique information for a particular type of action a user performs.
All of these contain a reference to the account that owns them. Each object is a ”working-
copy” of an object in the Server. Anytime one of these objects is created on the Server,
an entry of its creation is added to the news feed database.
2.2.5 Message Object
A Message object is created when a user composes a new message to be sent to a friend.
After it is confirmed that the friend is located in the database, the Message object adds its
information to the database. When a user checks his or her inbox, a list of messages that
were sent to the user will be shown in descending order of when they were received.
2.2.6 Wall Post Object
A Wall Post object works very similar to a Message object. The only difference is that
the Wall Post objects are viewable to all friends of the user. Another difference is that a
Wall Post object can hold comments. If a user adds a wall post to his or her own account,
their status will change to the new wall post.
2.2.7 Friends
The most important feature is being able to add and remove friends. In our Social
Networking site, making friends is a fairly straightforward process. Users can type in the
name of a friend in the search bar at the top of their home page. The database is queried
for an account that has the search term contained in the full name, any media files with
the search terms in the description, any pages with the search terms in the titles, any links
with the search terms
in the titles, and any notes with the search terms in the title. For example, User A could
search for User B in the search bar. After clicking on User B’s profile, User A will see a
button that says Send Friend Request. Clicking on it will send an alert to User B that User
A wants to be a friend. The friend request will now be in the friends list of User B, where
he/she can either accept it or ignore it, letting it sit there indefinitely. If user B accepts the
request, User A will be added to User B’s friends list and vice versa. Being friends has
its advantages. For example, only friends can chat to each other. Also, friends can view
any part of a profile that is marked as friends only. Finally, for a user to view his/her
10
friends and incoming friend requests, he/she just clicks on the friends tab which brings
up a frame.
2.2.8 Account Creation
When a user accesses the site for the first time, he/she must create an account before using
any of the site features. The account creation process is broken into three sections. The
first section deals with the login information and is required for the user to fill out. This
includes the email, password, and password confirmation. The purpose behind the
password confirmation is to ensure that the user didn’t accidentally mistype when creating
a password. The second section deals with information about who you are such as name,
location, and gender. Most of these fields are optional except for your name and gender.
It wouldn’t be much of a social network if everyone was named anonymous. The final
section deals with information about the users likes and dislikes, such as interests and
activities. Unlike the other two sections, this section is completely optional. Once the user
clicks create account, a new account, account details, and privacy settings are added to
the server, and the user is brought back to the login page
2.2.9 Chatting
One of the advantages of having friends is the ability to have live communications with
them via chat. When a friend is online, he/she will appear in the chat tab as an available
friend to chat with. To start a chat session, simply click on the name of the friend which
will begin a new chat session. The little bar at the bottom will change from chat disabled
to chatting with friend name as seen in the figure below. Also, the friend receiving the
chat will get a notification that a new chat session has started. Then the two friends can
chat with each other until one or both log out.
The chat feature is a little more complex than others as it requires a combination of
JavaScript and JQuery to work. When a user clicks on a friend name to begin a chat, a
chat request is sent to the database. On every page there is a JQuery function that queries
the server for any new chat requests once a second. It needs to be JQuery, so the client
can request for the server to run a check and return any relevant information. If it was
pure PHP, the page would never load completely, because the page cannot finish loading
until the server is done all preprocessing. The JavaScript portion of JQuery allows the
11
client to ask the server to do more processing after the page has been loaded.[3] If there
is a new chat request, a pop under is generated, notifying the receiver of the new chat that
is starting or a new pending chat if the user is in another chat. When a user send a message,
another JQuery function is called, to alert the server that it needs to update the chat session
with a new message. At the same time, another JQuery function is running to ask the
server once a second if the chat session has been updated. Overall, it is a lot of the client
asking the server to send over any changes that exist.
2.2.10 Events
In addition to messaging your friends, social networking sites are a great place to alert
your friends of important upcoming events. For example, if a user is throwing a birthday
party, he/she could create an event an invite friends he/she wants to attend or simply make
it a public for anyone. The process of creating an event is as simple as filling out a form
which looks like this.
After filling out the form, the user will be brought to the standard confirmation page.
He/she can then view the new event by clicking on the Events tab and clicking on the new
event. If the user wishes to edit some information about the event, he/she can click on the
edit link next to the event where a similar form to creating an event will be displayed with
all the fields populated with the current event information.
Storing the event is a fairly straightforward process. Once the form data is submitted, a
new Event object is created storing the Account that created the event as well as all the
information sent along with the form. That new event is then sent to the server, which
creates a database query and stores the fields of the event object into equivalent fields of
the event database table. Retrieving events is also a fairly straightforward process. A
MySQL query is called to pull the contents of the event into an array, and that array is
used to instantiate a new working copy of the event in an Event object.
2.3 Other features
12
All the other features, such as the wall pages, and notes are fairly similar. Their main
purpose is to add additional places to have places for additional content. All are created
using similar methods, and are stored similarly but are used for different purposes.
2.3.1 Wall
The wall is a place where the account owner can express his current feeling or thoughts
with a wall status. Other users can add their thoughts by creating wall posts that show up
below the status. It is basically a way for many users to communicate publicly or simply
leave their thoughts about each other
2.4 Non-Functional Specification
 Secure access of confidential data by user name and password. This application is
secure for every kind of its users, because if any user logout from any session then
nobody will be able to access his profile without knowing his confidential
password.
 24 X 7 availability
 Better component design to get better performance at peak time.
 The database used here is robust, reliable & fast. So users will have to wait for the
output very short time.
 This application can be accessed from any type of platform.
 There is no case of redundancy in the database so it will not take extra memory
space.
2.5 Software Tools Specification
2.5.1 MySQL Workbench
MySQL Workbench is a unified visual tool for database architects, developers, and
DBAs. MySQL Workbench provides data modeling, SQL development, and
comprehensive administration tools for server configuration, user administration, backup,
and much more. MySQL Workbench is available on Windows, Linux and Mac OS X.
13
2.5.1.1 Design
MySQL Workbench enables a DBA, developer, or data architect to visually design,
model, generate, and manage databases. It includes everything a data modeler needs for
creating complex ER models, forward and reverse engineering, and also delivers key
features for performing difficult change management and documentation tasks that
normally require much time and effort.
2.5.1.2 Develop
MySQL Workbench delivers visual tools for creating, executing, and optimizing SQL
queries. The SQL Editor provides color syntax highlighting, auto-complete, reuse of SQL
snippets, and execution history of SQL. The Database Connections Panel enables
developers to easily manage standard database connections, including MySQL Fabric.
The Object Browser provides instant access to database schema and object.
2.5.1.3 Administer
MySQL Workbench provides a visual console to easily administer MySQL environments
and gain better visibility into databases. Developers and DBAs can use the visual tools
for configuring servers, administering users, performing backup and recovery, inspecting
audit data, and viewing database health.
2.5.1.4 Visual Performance Dashboard
MySQL Workbench provides a suite of tools to improve the performance of MySQL
applications. DBAs can quickly view key performance indicators using the Performance
Dashboard. Performance Reports provide easy identification and access to IO hotspots,
high cost SQL statements, and more. Plus, with 1 click, developers can see where to
optimize their query with the improved and easy to use Visual Explain Plan.
2.5.1.5 Database Migration
MySQL Workbench now provides a complete, easy to use solution for migrating
Microsoft SQL Server, Microsoft Access, Sybase ASE, PostreSQL, and other RDBMS
14
tables, objects and data to MySQL. Developers and DBAs can quickly and easily convert
existing applications to run on MySQL both on Windows and other platforms. Migration
also supports migrating from earlier versions of MySQL to the latest releases.
2.5.2 Framework: Spring
The Spring Framework is a Java platform that provides comprehensive infrastructure
support for developing Java applications. Spring handles the infrastructure so you can
focus on your application.
Spring enables you to build applications from "plain old Java objects" (POJOs) and to
apply enterprise services non-invasively to POJOs. This capability applies to the Java
SE programming model and to full and partial Java EE.
Examples of how you, as an application developer, can benefit from the Spring
platform:
 Make a Java method execute in a database transaction without having to deal
with transaction APIs.
 Make a local Java method an HTTP endpoint without having to deal with the
Servlet API.
 Make a local Java method a message handler without having to deal with the
JMS API.
 Make a local Java method a management operation without having to deal with
the JMX API.
2.6 Hardware Requirements
Processor : Intel Core i3 and above
RAM : 4 gB and above
Hard disk : 80GB and above
Monitor : CRT or LCD monitor
15
Keyboard : Normal or Multimedia
Mouse : Compatible mouse
2.7 Software Requirements
Front End : Spring Tool Suit
Language : JAVA
Framework : Spring
Back End : MySQL Wornkbench
Operation System : Windows XP or above
Browser : Any latest browser
16
CHAPTER 3
ADAPTED METHODOLOGY
Agile SDLC model is a combination of iterative and incremental process models with
focus on process adaptability and customer satisfaction by rapid delivery of working
software product. Agile Methods break the product into small incremental builds. These
builds are provided in iterations. Each iteration typically lasts from about one to three
weeks. Every iteration involves cross functional teams working simultaneously on
various areas like −
 Planning
 Requirements Analysis
 Design
 Coding
 Unit Testing and
 Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and important
stakeholders.
3.1 AGILE MODEL
Agile model believes that every project needs to be handled differently and the existing
methods need to be tailored to best suit the project requirements. In Agile, the tasks are
divided to time boxes small time frames to deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each iteration.
Each build is incremental in terms of features; the final build holds all the features
required by the customer.
Here is a graphical illustration of the Agile Model –
17
Fig.3.1.1. SDLC Agile Model
The Agile thought process had started early in the software development and started
becoming popular with time due to its flexibility and adaptability.
The most popular Agile methods include Rational Unified Process 19941994,
Scrum 19951995, Crystal Clear, Extreme Programming 19961996, Adaptive Software
Development, Feature Driven Development, and Dynamic Systems Development
Method DSDM 1995. These are now collectively referred to as Agile Methodologies,
after the Agile Manifesto was published in 2001.
Following are the Agile Manifesto principles −
 Individuals and interactions − In Agile development, self-organization and
motivation are important, as are interactions like co-location and pair
programming.
 Working software − Demo working software is considered the best means of
communication with the customers to understand their requirements, instead of
just depending on documentation.
 Customer collaboration − As the requirements cannot be gathered completely in
the beginning of the project due to various factors, continuous customer
interaction is very important to get proper product requirements.
 Responding to change − Agile Development is focused on quick responses to
change and continuous development.
18
3.2 Agile Vs Traditional SDLC Models
Agile is based on the adaptive software development methods, whereas the traditional
SDLC models like the waterfall model is based on a predictive approach. Predictive teams
in the traditional SDLC models usually work with detailed planning and have a complete
forecast of the exact tasks and features to be delivered in the next few months or during
the product life cycle.
Predictive methods entirely depend on the requirement analysis and planning done in
the beginning of cycle. Any changes to be incorporated go through a strict change control
management and prioritization.
Agile uses an adaptive approach where there is no detailed planning and there is clarity
on future tasks only in respect of what features need to be developed. There is feature
driven development and the team adapts to the changing product requirements
dynamically. The product is tested very frequently, through the release iterations,
minimizing the risk of any major failures in future.
Customer Interaction is the backbone of this Agile methodology, and open
communication with minimum documentation are the typical features of Agile
development environment. The agile teams work in close collaboration with each other
and are most often located in the same geographical location.
3.3 Agile Model - Pros and Cons
Agile methods are being widely accepted in the software world recently. However, this
method may not always be suitable for all products. Here are some pros and cons of the
Agile model.
The advantages of the Agile Model are as follows −
 Is a very realistic approach to software development.
 Promotes teamwork and cross training.
 Functionality can be developed rapidly and demonstrated.
 Resource requirements are minimum.
19
 Suitable for fixed or changing requirements
 Delivers early partial working solutions.
 Good model for environments that change steadily.
 Minimal rules, documentation easily employed.
 Enables concurrent development and delivery within an overall planned context.
 Little or no planning required.
 Easy to manage.
 Gives flexibility to developers.
The disadvantages of the Agile Model are as follows −
 Not suitable for handling complex dependencies.
 More risk of sustainability, maintainability and extensibility.
 An overall plan, an agile leader and agile PM practice is a must without which it
will not work.
 Strict delivery management dictates the scope, functionality to be delivered, and
adjustments to meet the deadlines.
 Depends heavily on customer interaction, so if customer is not clear, team can
be driven in the wrong direction.
 There is a very high individual dependency, since there is minimum
documentation generated.
 Transfer of technology to new team members may be quite challenging due to
lack of documentation.
20
CHAPTER 4
SYSTEM DESIGN
4.1 DATA FLOW DIAGRAM
Data flow diagrams model the flow of data into, through, and out of an information
system:
• show the processes that change or transform data
• show the movement of data between processes
• represent a system as a network of processes which transform data flowing between
them.
The user screen flow shows what a user of the community will see. After successfully
logging on, the user will be given various links (such as search users, search boards, view
mail, etc.), and be able to select options from there, or go back to their home.
4.1.1 USE CASE DIAGRAMS
A use case diagram is a graphic depiction of the interactions among the elements of a
system. A use case is a methodology used in system analysis to identify, clarify, and
organize system requirements. In this context, the term "system" refers to something
being developed or operated, such as a mail-order product sales and service Web site. Use
case diagrams are employed in UML (Unified Modeling Language), a standard notation
for the modeling of real-world objects and systems.
System objectives can include planning overall requirements, validating
a hardware design, testing and debugging a software product under development,
creating an online help reference, or performing a consumer-service-oriented task. For
example, use cases in a product sales environment would include item ordering, catalog
updating, payment processing, and customer relations. A use case diagram contains four
components. The boundary, which defines the system of interest in relation to the world
around it.
21
 The actors, usually individuals involved with the system defined according to their
roles.
 The use cases, which are the specific roles played by the actors within and around
the system.
 The relationships between and among the actors and the use cases.
4.1.1.1 Login/Registration
Fig 4.1.1.1 Login/ Registration page
4.1.1.2 Home page
22
Fig 4.1.1.2 Home page
4.1.1.3 Profile page
Fig 4.1.1.3 Profile page
4.1.1.4 Message
23
Fig 4.1.1.4 Message page
4.1.1.5 Search page
Fig 4.1.1.5 Search page
4.1.1.6 Friend Request Page
24
Fig 4.1.1.6 Friend Request page
4.1.2 Context Diagram
The highest level data flow diagram is the context diagram.
• The context diagram shows the interaction of the system with its environment in terms
of data flows
• The context diagram defines the boundary of the system (the scope of the system)
• Only the data flows which leave the system and the data flows which come from outside
the system are shown.
4.1.2.1 0 Level DFD: A level 0 DFD, also called a fundamental system model or
context diagram represents the entire software element as a single bubble with input and
output data indicated by incoming and outgoing arrows, respectively.
25
Fig 4.1.2.1 0 Level DFD
4.1.3 ENTITY RELATIONSHIP DIAGRAM
The entity relationship model is a high level data model. It is based on a perception of a
real world that consists of a collection of basic objects, called entities, and of relationship
among these objects. It was developed to facilitate database design by allowing
specification of an enterprise schema, which represent the overall logical structure of a
database.
Entity: An entity is an object that has its existence in the real world. It includes all those
“things” about which data is collected. An entity may be a tangible object such as a
student, a place or a part. It may also be non-tangible such as an event, a job title or a
customer account. For example, if we say that a customer buys goods, it means customer
and goods are entities.
Diagrammatically, entities are represented in rectangles.
26
An Entity Set: It is a set of entities of the same type that share the same properties, or
attributes. The set of all persons who are customers at a given bank, example, can be
defined as the entity set customer.
Attributes: Attributes are units that describe the characteristics or properties of entities.
In a database, entities are represented by tables and attributes by columns. For example,
a customer entity might have numerous attributes such as code, name and addresses.
Similarly, the goods entity may have attributes like code and price. They are drawn in
elliptical shapes along with the entity rectangles.
Fig 4.1.3 Entity Relationship Diagram
4.2 Database
27
Data base is used to store the relevant information of the individuals. A database is a
collection of rows and columns in which rows indicates the tuple and column indicates
the domain of table. Database design is the process of producing a detailed data model of
a database. This logical data model contains all the needed logical and physical design
choices and physical storage parameters. Need to generate a design in a data definition
language, which can then be used to create a database. A fully attributed data model
contains detailed attributes for each entity. The term database design can be used to
describe many different parts of the design of an overall database system. Principally, and
most correctly, it can be thought of the logical design of the relation of the base data
structures used to store the data. In the relational model these are the classes and named
relationships. However, the term database design could also be used to apply to overall
process of designing, not just the base data structure, but also the forms and queries used
as part of the overall database application within the database management system
(DBMS).
Fig 4.2 List of Tables
4.3 DATA DICTIONARY
COLUMNS user_id loginTime logoutTime
DATA TYPE INT VARCHAR(45) VARCHAR(45)
Table 4.3.1 logindetails
28
COLUMNS sender
_id
receiver_
id
message status time
DATA
TYPE
INT INT VARCHAR(160) VARCHAR
(45)
VARCHAR
(45)
Table 4.3.2 messages
COLUMNS post_id post post_time likes user_id
DATA
TYPE
INT VARCHAR(500) VARCHAR(45) INT INT
Table 4.3.3 posts
COLUM
NS
user_id fname lname email contact password
DATA
TYPE
INT VARCH
AR(45)
VARCH
AR(45)
VARCH
AR(45)
INT VARCH
AR(45)
dob city state country gender registratio
ndate
dp
VARCH
AR(45)
VARCH
AR(45)
VARCH
AR(45)
VARCH
AR(45)
VARCH
AR(45)
VARCH
AR(45)
LONGTE
XT
Table 4.3.4 registration
COLUMNS Req_stat Sender_id Receiver_id time
DATA
TYPE
VARCHAR(45) VARCHAR(45) VARCHAR(45) VARCHAR(45)
Table 4.3.5 request
29
Colu
mns
commen
t_id
comment_us
er_id
user_name post_
id
comments time
DATA
TYPE
INT INT VARCHA
R(45)
INT VARCHAR(
160)
VARCHA
R(45)
Table 4.3.6 tbl_comment
COLUMNS liked_user_id post_id time
DATA TYPE INT INT VARCHAR(45)
Table 4.3.7 tbl_like
30
CHAPTER 5
WINKSHARE
5.1 SAMPLE SOURCE CODE
5.1.1 HomeController.java
@Controller
public class HomeController
{
@Autowired
JdbcTemplate jdbcTemplate;
private static final Logger logger =
LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@Autowired
LoginService log;
@Autowired
LikeCommentService lk;
@Autowired MessageService msgServ;
@RequestMapping(value = {"/","/home"}, method = RequestMethod.GET)
public String home(Locale locale, Model model) {
try{
String user=null;
HttpServletRequest
req=((ServletRequestAttributes)RequestContextHolder.getRequestAttribut
es()).getRequest();
HttpSession ses=req.getSession(false);
user= ses.getAttribute("userId").toString();
if(user==null)
return "index";
else
{
List<Map<String, Object>>
CommentResponse=lk.viewComments();
List<Map<String, Object>> friendList =
log.showFriends();
31
List<Map<String, Object>>
messageNotification=msgServ.messageNotification();
// String selectPost = "select post from posts order by
post_id desc";
List<Map<String, Object>> postResult =
log.ShowPost();
List<Map<String, Object>> requestResponse =
log.friendRequestNotification();
if(!requestResponse.isEmpty())
{
int requestCount = requestResponse.size();
model.addAttribute("count",requestCount);
model.addAttribute("request",requestResponse);
}
model.addAttribute("commentResponse", CommentResponse);
model.addAttribute("postResult",postResult);
model.addAttribute("friendList", friendList);
model.addAttribute("msgNotify", messageNotification”);
return "main";
}
}
catch(Exception ex){return "index";}
}
@RequestMapping(value = "/post", method = RequestMethod.GET)
public String home2(Locale locale, Model model) {
try{
String user=null;
HttpServletRequest
req=((ServletRequestAttributes)RequestContextHolder.getRequestAttribut
es()).getRequest();
HttpSession ses=req.getSession(false);
user= ses.getAttribute("userId").toString();
if(user==null)
return "index";
else
{
List<Map<String, Object>> friendList = log.showFriends();
List<Map<String, Object>> postResult = log.ShowPost();
32
List<Map<String, Object>> requestResponse =
log.friendRequestNotification();
if(!requestResponse.isEmpty())
{
int requestCount =
requestResponse.size();
model.addAttribute("count",requestCount);
model.addAttribute("request",requestResponse);
}
model.addAttribute("postResult",postResult);
model.addAttribute("friendList", friendList);
return "main";
}
}
catch(Exception ex){return "index";}
}
@RequestMapping(value = "/logout", method = RequestMethod.GET)
public String logout(Locale locale, Model
model,HttpServletResponse res)
{
HttpServletRequest
req=((ServletRequestAttributes)RequestContextHolder.getRequestAttribut
es()).getRequest();
HttpSession ses=req.getSession();
ses.setAttribute("userId", null);
ses.invalidate();
res.setHeader("Cache-Control","no-cache");
res.setHeader("Cache-Control","no-store");
return "index";
}
}
5.1.2 main.jsp
<!DOCTYPE html>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html lang="en">
<head>
<title>WinkShare | News Feed</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
33
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.mi
n.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.
js"></script>
<link rel="stylesheet"
href="${pageContext.servletContext.contextPath}/resources/css/style.cs
s"/>
<script
src="${pageContext.servletContext.contextPath}/resources/js/script.js"
></script>
<style>
/* Set black background color, white text and some padding */
footer {
background-color: #555;
color: white;
padding: 15px;
}
body { padding-top: 70px; padding-bottom:70px;}
.deleteComment {
position: absolute;
z-index:1;
color: white;
font: bold Helvetica, Sans-Serif;
letter-spacing: -1px;
background: rgb(0, 0, 0); /* fallback color */
background: rgba(0, 0, 0, 0.7);
padding: 10px;
visibility:hidden;
}
.deleteBt:hover .deleteComment{
visibility : visible;
}
</style>
</head>
34
<body>
<div class="chat_box">
<div class="chat_head"> Friends </div>
<div class="chat_body" >
<c:forEach var="fList" items="${friendList}" >
<a href="chat?chatid=${fList.user_id}" class="list-group-item"
style="color:green;">${fList.fname} ${fList.lname} &nbsp; &nbsp;<label
class="label label-primary"><c:forEach var="notify"
items="${msgNotify}"><c:if test="${notify.sender_id eq fList.user_id
}">New Message</c:if></c:forEach></label></a>
</c:forEach>
</div>
</div>
<c:if test="${empty messageResponse}">
<script>
$(document).ready(function(){
$('.msg_box').hide();
});
</script>
</c:if>
<c:set var="uName" scope="page" value="${username}"></c:set>
<c:set var="dPicture" scope="session"
value="${displayPicture}"></c:set>
<form action="sendMessage" method="post">
<div class="msg_box" style="right:290px;z-index:1;">
<div class="msg_head"><c:forEach var="fname" items="${name}">
${fname.value}</c:forEach><div class="close">x</div>
</div>
<div class="msg_wrap">
<div class="msg_body" id="cBody" style="overflow:scroll;">
<c:choose>
<c:when test="${messageResponse == 'Start a conversation !!'}">
<div>${messageResponse}</div>
</c:when>
<c:otherwise>
<c:forEach var="msg" items="${messageResponse}" >
<c:if test="${msg.receiver_id == userId}"> <div
class="msg_a">${msg.message} </div></c:if>
35
<c:if test="${msg.sender_id == userId}"><div
class="msg_b">${msg.message}</div></c:if>
</c:forEach>
</c:otherwise>
</c:choose>
<div class="msg_push"></div>
</div>
<div class="msg_footer"><span style="float:right;"><input
type="text" hidden name="receiverId" value="${chatId}"><input
type="submit" value="Send" id="btnSend" class="btn btn-
primary"></span><textarea class="msg_input" name="message" required
pattern=".*S+.*" title="Blank message cannot e sent!!"
id="messageArea"></textarea></div>
</div>
</div>
</form>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-
toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="home">WinkShare</a>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<li class="active"><a href="home">Home</a></li>
<li><a href="profile">Profile</a></li>
<li><a href="viewRequest"><span class="glyphicon glyphicon-
user" aria-hidden="true" ></span>
</a><span class="badge" style="margin-left: 20px; margin-top: -
86px;">${count}</span></li>
</ul>
<form class="navbar-form navbar-right" role="search"
action="searchF" method="post">
<div class="form-group input-group">
36
<input type="text" class="form-control" name="search"
required pattern=".*S+.*" title="Search using First or Last name"
placeholder="Search for friends">
<span class="input-group-btn">
<button class="btn btn-default" type="submit">
<span class="glyphicon glyphicon-search"></span>
</button>
</span>
</div>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="logout"><span class="glyphicon glyphicon-
off"></span> Logout </a></li>
</ul>
</div>
</div>
</nav>
<div class="container text-center">
<div class="row">
<div class="col-sm-2 well">
<div class="well">
<p><a href="profile">${uName}</a></p>
<img src="/imagePath/${dPicture}" class="img-circle"
height="65" width="65" alt="Avatar">
</div>
</div>
<div class="col-sm-7">
<div class="row">
<div class="col-sm-12">
<div class="panel panel-default text-left">
<div class="panel-body">
<form action="post" method="post">
<textarea required pattern=".*S+.*"
title="Post can't be blank" autocomplete="off" name="postTxt"
style="width:100%; resize: none; overflow:hidden;
border-style:inset;margin-left:0px;
margin-top:5px;padding:10px;" placeholder="Let every one know What are
you thinking !!!"></textarea><br><br>
37
<input type="submit" class="btn btn-
primary" value="Post Status" style="margin-left:0px;">
</form>
</div>
</div>
</div>
</div>
<!-- Posts -->
<c:set var="userid" scope="page" value="${userId}"></c:set>
<c:forEach var="postData" items="${postResult}">
<div class="well">
<div class="well ">
<div class="row">
<div class="col-sm-3">
<div class="well">
<p>${postData.fname} ${postData.lname}</p>
<img src="/imagePath/${postData.dp}" class="img-circle"
height="70" width="70" alt="Avatar">
</div>
</div>
<div class="col-sm-9">
<div class="well well-lg">
<p>${postData.post}</p>
</div>
</div>
</div>
</div>
<c:set var="hashTag" scope="page" value="#"></c:set>
<div> <span style="margin-left:-504px;"><button type="button"
class="btn btn-link" data-toggle="collapse" data-
target="${hashTag}${postData.post_id}">Comment</button></span><div
style="margin-top: -34px; margin-left: -335px;"><form action=""
method="post"><c:if test="${postData.liked_user_id == userid}"><input
type="submit" name="Like" value="Dislike"class="btn btn-link"
id="unlike" formaction="unLike?postId=${postData.post_id}"
></c:if><c:if test="${postData.liked_user_id != userid}"><input
type="submit" name="Like" id="like" value="Like"class="btn btn-link"
formaction="like?postId=${postData.post_id}"></c:if><span
class="badge">${postData.likes}</span></form></div></div>
38
<form action="" method="post"> <div class="collapse"
id="${postData.post_id}"><textarea autocomplete="off" name="comment"
id="commentBox" rows="4" required pattern=".*S+.*" title="Please
write something" style=" width:70%;resize: none; overflow:hidden;
padding:10px;" placeholder="Comment!!!"></textarea><input type="submit"
style="margin-top: -30px; margin-left:
15px;"formaction="comment?postId=${postData.post_id}" value="Comment"
class="btn btn-info"></div></form>
<c:forEach var="commentResult" items="${commentResponse}">
<c:if test="${commentResult.post_id == postData.post_id}">
<form action="" method="post">
<ul class="list-group">
<li class="list-group-item" ><span
style="float:left;"><b>${commentResult.user_name}<input type="text"
name="commentId" hidden
value="${commentResult.comment_id}"></b></span><span style="margin-
left:-353px;"> ${commentResult.comments}</span> <button type="submit"
class="deleteBt" formaction="deleteComment" style="border: 0;
overflow:hidden; background: transparent; margin-top:-0px;
float:right;"> <img
src="${pageContext.servletContext.contextPath}/resources/images/remove
.png"/><span class="deleteComment">Delete Comment</span></button></li>
</ul>
</form>
</c:if>
</c:forEach>
</div>
</c:forEach>
<nav class="navbar navbar-inverse">
<a class="navbar-brand" href="home">No More Post to show</a>
</nav>
</body>
</html>
5.2 Screenshots
39
Fig 5.2.1 Sign up page
Fig 5.2.2 Search Result page
40
Fig 5.2.3 user profile page
Fig 5.2.4 Login page
41
Fig 5.2.5 Home page
Fig5.2.6 Friends profile page
42
Fig 5.2.7 Friend request s page
Fig 5.2.8 Chat page
43
Fig 5.2.9 Comment page
Fig 5.2.10 Unknown user profile page
44
CHAPTER 6
TESTING
6.1System Testing
System testing is a critical element of quality assurance and represents the ultimate review
of analysis, design and coding. Test case design focuses on a set of techniques for the
creation of test because that meet overall testing objective. When a system is developed
it is hoped that it performs properly. The main purpose of testing an information system
is to find the errors and correct them. The scope of system testing should include both
manual and computerized operations. System testing is comprehensive evaluation of the
programs, manual procedures, computer operations and controls.
System testing is the process of checking whether the developed system is
working according to the objective and requirement. All testing is to be conducted in
accordance to the test conditions specified earlier. This will ensure that the test coverage
meets the requirements and that testing is done in a systematic manner.
The process of analyzing the software item to detect the differences between existing
or required condition and evaluate the features of the software items. The thorough testing
of the system before release of the software needs to be done vide the various test cases
and modes so that the software becomes devoid of bugs and uses minimum space
requirements as well as minimum time to perform. The test cases were selected
beforehand with expected results defined and actual results recorded for comparison. The
selection of test cases is done vide “White Box Testing” technique to check the
internal programming logic and efficiency and vide ”Black Box Testing” technique to
check software requirement fulfillment with intension of finding maximum number of
errors with minimum effort and time. Although test cases are a design by considering the
cyclomatic complexity, conditional test, still the software code is not in its optional form,
as all other possible alternative parts in the software are not considered. At the integration
level, the software will be passing to the third party tests which would further enhance
the software optimality and efficiency.
6.1.1 TESTDATAIMPLEMENTATIONANDTHEIRRESULTON:
45
The quality and standardization of the software / application
package depends truly on the various predefined testing norms and on the
performances of the software over those norms. There are various standards
existing in the software industry the engineered end product strives to
achieve viz. ISO 9002 SEI CMM Level5 etc. These standards are
achieved onl y when the concerned software fulfils the tests as per
the respective testing norms predefined in them vide the various test cases
and parameters using the CASE topologies. Generally, software is tested both
on a stand-alone mode as well after integrating all the modules in the system
vide deferent available testing methods/norms.
The following Flow Graph methodology was used while testing the software:
fig 6.1.1 Flow graph
Here each circle represents one or more non branching procedural language or source
code s t a t e m e n t s i n F l o w G r a p h . W h i l e p e r f o r m i n g C o n d i t i o n
T e s t i n g D o m a i n T e s t i n g methodology was selected. While performing
Loop Testing simple loops, concatenated loops, nested and unstructured loops
were tested thoroughly.
6.1.2 TEST CHARACTERS :
1.A good test has a high probability of finding an error.
46
2 . A g o o d t e s t i s n o t r e d u n d a n t .
3.A good test should be “best of breed”.
4.A good test should be neither too simple nor too complex.
6.2 BLACK BOX TESTING:
The method of Black Box Testing is used by the software engineer to derive the required
results of the test cases:
1.Black Box Testing alludes to test that are conducted at the software
interface.
2.A Black Box Test examines some fundamental aspect of a system with
little regard for the internal logic structure of the software.
3.A limited number of important logical paths can be selected and exercised.
4.Important data structure can be probed for validity.
Black box testing was performed to find errors in the following categories:-
7 Incorrect or missing functions
8 Graphics error.
9 Errors in data in binary format.
10 Error in data in integer format.
11 File error.
12 Pointer error.
13 Memory access error.
14 Variable error .
15 Performance error
6.3 WHITE BOX TESTING:
White Box Testing is sometimes called Glass Box Testing. Using White Box
Testing methods the software engineer can derive the following test cases:
47
1.Guarantee that all independent paths within a module have been
exercised at least once.
2.Exercise all logical decisions on their true and false sides.
3.Execute all loops at their boundaries and within their operational bounds.
4.Exercise internal data structures to ensure the validity.50
In White Box Testing efforts were made to handle the following:-
• Number of input parameters equal to number of arguments.
•Parameters and arguments attributes match.
• N u m b e r o f a r g u m e n t s t r a n s m i t t e d i s c a l l e d m o d u l e s e q u a l
t o a t t r i b u t e s o f parameters..
•Unit system of argument transmitt ed is called modules equal unit
s ystem of parameter.
• Number of attributes and order of arguments to build in functions correct.
•Any references to parameters not associated to build in functions correct.
•Input only arguments altered.
•Global variable definition consistent across module.
•Files attributes correct.
•Format specifications matches I/O specification.
•Files opened before use.
•File closed while working is going on.
•I/O errors handled.
• Any textual errors in output information.
6.4 UNIT TESTING:
48
The unit testing is performed to test the validity of the individual units. This is done in
the coding phase with the interactive testing. Thus it itself constitutes a majority of
functionality test for each logical unit.
6.5 INTEGRITION TESTING:
W h e n a l l t h e d e v e l o p m e n t o f a l l t h e u n i t s o r m o d u l e s i s
c o m p l e t e d a n d integrated the integrity test phase is started. In this phase the
interface between the modules are tested. This phase basicall y verifies
whether inter module exchange of information and events are as per required
system behavior.
6.6 VALIDATION TESTING:
Tests were performed to find conformity with the requirements.
Plans and p r o c e d u r e s w e r e d e s i g n e d t o e n s u r e t h a t a l l
f u n c t i o n a l r e q u i r e m e n t s a r e satisfied. The software was alpha-tested. There
are two goals in preparing test plans. Firstly, a properly detailed test plan
demonstrates that the program specifications are understood
completel y. Secondly, the test plan is used during program testing to prove the
correctness of the program.
6.7 TEST CASES
Login:
Sl
No
Input Values Test case Conditional being checked Result
1 Email Empty Please Enter valid Username Successful
3 Email Already
Exists or
not
Login ID should be unique Successful
49
4 Password Empty Please Enter valid Password Successful
5 Password If wrong
Password
Enter Password Successful
6 Password Length Length should be less than or equal to
8 character
Successful
Table 6.7.1 login table
Registration:
Sl
No
Input
Values
Test case Conditional being checked Result
1. First Name Empty It must not be empty Successful
2 Last Name Empty Last Name must not be
empty
Successful
3 Email Empty Enter valid Email ID. Successful
4 Password Empty Enter valid Password. Successful
5 Password Length Minimum 8 characters
required
Successful
6 Confirm
Password
Empty Password and confirmation
password must be same
Successful
7 Date Of
Birth
Select Enter valid Username and
Password.
Successful
Table 6.7.2 Registration table
Edit Profile:
50
Sl
No
Input
Values
Test case Conditional being checked Result
1. First Name Null First Name must not be
empty
Successful
2 Last Name Empty Last Name must not be
empty
Successful
3 City Empty City must not be empty Successful
4 State Empty state must not be empty Successful
5 Pin code Empty PIN code must not be empty Successful
6 Country SELECT Please select country Successful
Table 6.7.3 Profile table
51
CHAPTER 7
FUTURE SCOPE
 Image and video sharing on wall.
 Sharing of posts.
 Rating feature on images for photographers.
 Gallery to store images of user.
 Block functionality to block unwanted users.
 Friend suggestions.
52
CHAPTER 8
CONCLUSION
As a web applications are evolving rapidly, one will take forward the other one towards
empowering innovation, versatility and power in them. There are a number of business
opportunities and grand challenges of bringing forth viable and robust web based
technologies ahead for fully realizing the enormous strength of web application in this
internet era and thereby meeting both the basic requirements and advanced expectations
of internet users and providers.
It is known to everyone that newly created software or product will contain bugs and
faults, no matter how much prevention is taken. But the main feature of this project is the
feature will make this project stand out from the rest which is the rating feature for the
easy retrieval of the images. The security and P2P feature of image sharing and tagging
is the newest feature which has both been used in this project and has been inspired from
different other photo sharing social sites. A good project should have all the features that
it says and should also have a few unique feature which this one has.
This project “Wink Share” has been designed as per required specification of user. A
worth analysis of designing principle has been followed in the development of this
project. In the near future some new and enhanced features will be added to the above
mentioned application such as Image Processing which is one of the best feature of this
web application to, settings options and some UI enhancements.
53
REFRENCES
1. https://s3.amazonaws.com/ppt-download/document-140409074526-
phpapp01.docx?response-content-
disposition=attachment&Signature=4fdLSwSqEIa1Z9XXZkuJIuWkIIQ%3D
&Expires=1493741511&AWSAccessKeyId=AKIAJ6D6SEMXSASXHDA
Q
2. https://s3.amazonaws.com/ppt-download/finalreport-120629022548-
phpapp01.docx?response-content-
disposition=attachment&Signature=vcztLQ66%2BFvwCNcXnDdzHWaV6q
U%3D&Expires=1493741645&AWSAccessKeyId=AKIAJ6D6SEMXSASX
HDAQ
3. https://www.w3schools.com/
4. https://www.tutorialspoint.com/cgi-bin/printpage.cgi

Contenu connexe

Tendances

Social Networking Site in JAVA
Social Networking Site in JAVASocial Networking Site in JAVA
Social Networking Site in JAVA
PAS Softech Pvt. Ltd.
 
Learning Management System-SRS Modified(Semi-Final)
Learning Management System-SRS Modified(Semi-Final)Learning Management System-SRS Modified(Semi-Final)
Learning Management System-SRS Modified(Semi-Final)
Sharon Varghese
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)
PCG Solution
 
47533870 final-project-report
47533870 final-project-report47533870 final-project-report
47533870 final-project-report
Mohammed Meraj
 

Tendances (20)

Online Social Networking Site
Online Social Networking SiteOnline Social Networking Site
Online Social Networking Site
 
FYP 1
FYP 1FYP 1
FYP 1
 
Chat Application - Requirements Analysis & Design
Chat Application - Requirements Analysis & DesignChat Application - Requirements Analysis & Design
Chat Application - Requirements Analysis & Design
 
Social Networking Site Documentation
Social Networking Site Documentation Social Networking Site Documentation
Social Networking Site Documentation
 
Social networking project (2gether)
Social networking project (2gether)Social networking project (2gether)
Social networking project (2gether)
 
Synopsis on social networking
Synopsis on social networkingSynopsis on social networking
Synopsis on social networking
 
Chat application
Chat applicationChat application
Chat application
 
Srs
SrsSrs
Srs
 
Project Dpilot Documentation
Project Dpilot DocumentationProject Dpilot Documentation
Project Dpilot Documentation
 
Pritam bhansali Online Exam - Project Report
Pritam bhansali  Online Exam - Project ReportPritam bhansali  Online Exam - Project Report
Pritam bhansali Online Exam - Project Report
 
online blogging system
online blogging systemonline blogging system
online blogging system
 
Project report on blogs
Project report on blogsProject report on blogs
Project report on blogs
 
Social Networking Site in JAVA
Social Networking Site in JAVASocial Networking Site in JAVA
Social Networking Site in JAVA
 
Learning Management System-SRS Modified(Semi-Final)
Learning Management System-SRS Modified(Semi-Final)Learning Management System-SRS Modified(Semi-Final)
Learning Management System-SRS Modified(Semi-Final)
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)
 
47533870 final-project-report
47533870 final-project-report47533870 final-project-report
47533870 final-project-report
 
Online ecommerce website srs
Online ecommerce  website srsOnline ecommerce  website srs
Online ecommerce website srs
 
Online News Portal.pptx
Online News Portal.pptxOnline News Portal.pptx
Online News Portal.pptx
 
Online Quiz System Project Report ppt
Online Quiz System Project Report pptOnline Quiz System Project Report ppt
Online Quiz System Project Report ppt
 
Major File On web Development
Major File On web Development Major File On web Development
Major File On web Development
 

Similaire à WinkShare: A Social Network to Connect with Strangers

Finalpr 120507110612-phpapp01
Finalpr 120507110612-phpapp01Finalpr 120507110612-phpapp01
Finalpr 120507110612-phpapp01
Hritesh Saha
 
Immersion Program Presentation Web2
Immersion Program Presentation   Web2Immersion Program Presentation   Web2
Immersion Program Presentation Web2
Rick Reo
 

Similaire à WinkShare: A Social Network to Connect with Strangers (20)

Finalpr 120507110612-phpapp01
Finalpr 120507110612-phpapp01Finalpr 120507110612-phpapp01
Finalpr 120507110612-phpapp01
 
Social Media - Transforming B2B Organizations: Contemporary Concerns Study
Social Media - Transforming B2B Organizations: Contemporary Concerns StudySocial Media - Transforming B2B Organizations: Contemporary Concerns Study
Social Media - Transforming B2B Organizations: Contemporary Concerns Study
 
IRJET- A Social Webbing Service Vivified on Design Patterns
IRJET-  	  A Social Webbing Service Vivified on Design PatternsIRJET-  	  A Social Webbing Service Vivified on Design Patterns
IRJET- A Social Webbing Service Vivified on Design Patterns
 
Enhancing communication and cooperation with web 2.0
Enhancing communication and cooperation with web 2.0Enhancing communication and cooperation with web 2.0
Enhancing communication and cooperation with web 2.0
 
Immersion Program Presentation Web2
Immersion Program Presentation   Web2Immersion Program Presentation   Web2
Immersion Program Presentation Web2
 
Efficient and effective video sharing in online Social network using revocati...
Efficient and effective video sharing in online Social network using revocati...Efficient and effective video sharing in online Social network using revocati...
Efficient and effective video sharing in online Social network using revocati...
 
User behavior model & recommendation on basis of social networks
User behavior model & recommendation on basis of social networks User behavior model & recommendation on basis of social networks
User behavior model & recommendation on basis of social networks
 
Students Club
Students ClubStudents Club
Students Club
 
Visualization for Software Analytics
Visualization for Software AnalyticsVisualization for Software Analytics
Visualization for Software Analytics
 
Big data privacy issues in public social media
Big data privacy issues in public social mediaBig data privacy issues in public social media
Big data privacy issues in public social media
 
Iaetsd efficient file transferring in
Iaetsd efficient file transferring inIaetsd efficient file transferring in
Iaetsd efficient file transferring in
 
IRJET- Secured Authentication using Image Shield Protection and Database ...
IRJET-  	  Secured Authentication using Image Shield Protection and Database ...IRJET-  	  Secured Authentication using Image Shield Protection and Database ...
IRJET- Secured Authentication using Image Shield Protection and Database ...
 
Android Based E-Learning Application Class-E
Android Based E-Learning Application Class-EAndroid Based E-Learning Application Class-E
Android Based E-Learning Application Class-E
 
IRJET- Event Detection and Text Summary by Disaster Warning
IRJET- Event Detection and Text Summary by Disaster WarningIRJET- Event Detection and Text Summary by Disaster Warning
IRJET- Event Detection and Text Summary by Disaster Warning
 
SENTIMENT ANALYSIS OF SOCIAL MEDIA DATA USING DEEP LEARNING
SENTIMENT ANALYSIS OF SOCIAL MEDIA DATA USING DEEP LEARNINGSENTIMENT ANALYSIS OF SOCIAL MEDIA DATA USING DEEP LEARNING
SENTIMENT ANALYSIS OF SOCIAL MEDIA DATA USING DEEP LEARNING
 
Decentralized social network
Decentralized social networkDecentralized social network
Decentralized social network
 
Apprehension of Youth towards Social Networking Sites: Two Sides of a Coin
Apprehension of Youth towards Social Networking Sites: Two Sides of a CoinApprehension of Youth towards Social Networking Sites: Two Sides of a Coin
Apprehension of Youth towards Social Networking Sites: Two Sides of a Coin
 
Blackbook(NGO)
Blackbook(NGO)Blackbook(NGO)
Blackbook(NGO)
 
Minor Project Synopsis on Data Structure Visualizer
Minor Project Synopsis on Data Structure VisualizerMinor Project Synopsis on Data Structure Visualizer
Minor Project Synopsis on Data Structure Visualizer
 
ANALYSIS OF DEVELOPMENT COOPERATION WITH SHARED AUTHORING ENVIRONMENT IN ACAD...
ANALYSIS OF DEVELOPMENT COOPERATION WITH SHARED AUTHORING ENVIRONMENT IN ACAD...ANALYSIS OF DEVELOPMENT COOPERATION WITH SHARED AUTHORING ENVIRONMENT IN ACAD...
ANALYSIS OF DEVELOPMENT COOPERATION WITH SHARED AUTHORING ENVIRONMENT IN ACAD...
 

Dernier

💊💊 OBAT PENGGUGUR KANDUNGAN SEMARANG 087776-558899 ABORSI KLINIK SEMARANG
💊💊 OBAT PENGGUGUR KANDUNGAN SEMARANG 087776-558899 ABORSI KLINIK SEMARANG💊💊 OBAT PENGGUGUR KANDUNGAN SEMARANG 087776-558899 ABORSI KLINIK SEMARANG
💊💊 OBAT PENGGUGUR KANDUNGAN SEMARANG 087776-558899 ABORSI KLINIK SEMARANG
Cara Menggugurkan Kandungan 087776558899
 
Sociocosmos empowers you to go trendy on social media with a few clicks..pdf
Sociocosmos empowers you to go trendy on social media with a few clicks..pdfSociocosmos empowers you to go trendy on social media with a few clicks..pdf
Sociocosmos empowers you to go trendy on social media with a few clicks..pdf
SocioCosmos
 
Capstone slidedeck for my capstone final edition.pdf
Capstone slidedeck for my capstone final edition.pdfCapstone slidedeck for my capstone final edition.pdf
Capstone slidedeck for my capstone final edition.pdf
eliklein8
 
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
ZurliaSoop
 
+971565801893>> ORIGINAL CYTOTEC ABORTION PILLS FOR SALE IN DUBAI AND ABUDHABI<<
+971565801893>> ORIGINAL CYTOTEC ABORTION PILLS FOR SALE IN DUBAI AND ABUDHABI<<+971565801893>> ORIGINAL CYTOTEC ABORTION PILLS FOR SALE IN DUBAI AND ABUDHABI<<
+971565801893>> ORIGINAL CYTOTEC ABORTION PILLS FOR SALE IN DUBAI AND ABUDHABI<<
Health
 
Jual Obat Aborsi Kudus ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cy...
Jual Obat Aborsi Kudus ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cy...Jual Obat Aborsi Kudus ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cy...
Jual Obat Aborsi Kudus ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cy...
ZurliaSoop
 
Meet Incall & Out Escort Service in D -9634446618 | #escort Service in GTB Na...
Meet Incall & Out Escort Service in D -9634446618 | #escort Service in GTB Na...Meet Incall & Out Escort Service in D -9634446618 | #escort Service in GTB Na...
Meet Incall & Out Escort Service in D -9634446618 | #escort Service in GTB Na...
Heena Escort Service
 
Capstone slidedeck for my capstone project part 2.pdf
Capstone slidedeck for my capstone project part 2.pdfCapstone slidedeck for my capstone project part 2.pdf
Capstone slidedeck for my capstone project part 2.pdf
eliklein8
 

Dernier (20)

💊💊 OBAT PENGGUGUR KANDUNGAN SEMARANG 087776-558899 ABORSI KLINIK SEMARANG
💊💊 OBAT PENGGUGUR KANDUNGAN SEMARANG 087776-558899 ABORSI KLINIK SEMARANG💊💊 OBAT PENGGUGUR KANDUNGAN SEMARANG 087776-558899 ABORSI KLINIK SEMARANG
💊💊 OBAT PENGGUGUR KANDUNGAN SEMARANG 087776-558899 ABORSI KLINIK SEMARANG
 
Coorg Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Coorg Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsCoorg Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Coorg Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
Sociocosmos empowers you to go trendy on social media with a few clicks..pdf
Sociocosmos empowers you to go trendy on social media with a few clicks..pdfSociocosmos empowers you to go trendy on social media with a few clicks..pdf
Sociocosmos empowers you to go trendy on social media with a few clicks..pdf
 
Capstone slidedeck for my capstone final edition.pdf
Capstone slidedeck for my capstone final edition.pdfCapstone slidedeck for my capstone final edition.pdf
Capstone slidedeck for my capstone final edition.pdf
 
The Butterfly Effect
The Butterfly EffectThe Butterfly Effect
The Butterfly Effect
 
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
 
Sri Ganganagar Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Sri Ganganagar Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsSri Ganganagar Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Sri Ganganagar Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
Capstone slide deck on the TikTok revolution
Capstone slide deck on the TikTok revolutionCapstone slide deck on the TikTok revolution
Capstone slide deck on the TikTok revolution
 
Madikeri Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Madikeri Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsMadikeri Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Madikeri Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
+971565801893>> ORIGINAL CYTOTEC ABORTION PILLS FOR SALE IN DUBAI AND ABUDHABI<<
+971565801893>> ORIGINAL CYTOTEC ABORTION PILLS FOR SALE IN DUBAI AND ABUDHABI<<+971565801893>> ORIGINAL CYTOTEC ABORTION PILLS FOR SALE IN DUBAI AND ABUDHABI<<
+971565801893>> ORIGINAL CYTOTEC ABORTION PILLS FOR SALE IN DUBAI AND ABUDHABI<<
 
Content strategy : Content empire and cash in
Content strategy : Content empire and cash inContent strategy : Content empire and cash in
Content strategy : Content empire and cash in
 
Enhancing Consumer Trust Through Strategic Content Marketing
Enhancing Consumer Trust Through Strategic Content MarketingEnhancing Consumer Trust Through Strategic Content Marketing
Enhancing Consumer Trust Through Strategic Content Marketing
 
Marketing Plan - Social Media. The Sparks Foundation
Marketing Plan -  Social Media. The Sparks FoundationMarketing Plan -  Social Media. The Sparks Foundation
Marketing Plan - Social Media. The Sparks Foundation
 
BVG BEACH CLEANING PROJECTS- ORISSA , ANDAMAN, PORT BLAIR
BVG BEACH CLEANING PROJECTS- ORISSA , ANDAMAN, PORT BLAIRBVG BEACH CLEANING PROJECTS- ORISSA , ANDAMAN, PORT BLAIR
BVG BEACH CLEANING PROJECTS- ORISSA , ANDAMAN, PORT BLAIR
 
SEO Expert in USA - 5 Ways to Improve Your Local Ranking - Macaw Digital.pdf
SEO Expert in USA - 5 Ways to Improve Your Local Ranking - Macaw Digital.pdfSEO Expert in USA - 5 Ways to Improve Your Local Ranking - Macaw Digital.pdf
SEO Expert in USA - 5 Ways to Improve Your Local Ranking - Macaw Digital.pdf
 
Jual Obat Aborsi Kudus ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cy...
Jual Obat Aborsi Kudus ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cy...Jual Obat Aborsi Kudus ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cy...
Jual Obat Aborsi Kudus ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cy...
 
Kayamkulam Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Kayamkulam Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsKayamkulam Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Kayamkulam Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
Meet Incall & Out Escort Service in D -9634446618 | #escort Service in GTB Na...
Meet Incall & Out Escort Service in D -9634446618 | #escort Service in GTB Na...Meet Incall & Out Escort Service in D -9634446618 | #escort Service in GTB Na...
Meet Incall & Out Escort Service in D -9634446618 | #escort Service in GTB Na...
 
Jhunjhunu Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Jhunjhunu Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsJhunjhunu Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Jhunjhunu Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
Capstone slidedeck for my capstone project part 2.pdf
Capstone slidedeck for my capstone project part 2.pdfCapstone slidedeck for my capstone project part 2.pdf
Capstone slidedeck for my capstone project part 2.pdf
 

WinkShare: A Social Network to Connect with Strangers

  • 1. A Project on WinkShare: A Social Network to Connect with Strangers Submitted In partial fulfillment of the requirements for the award of the degree of BACHELOR OF TECHONOLOGY IN COMPUTER SCIENCE & ENGINEERING Submitted by MR. SANJAY RAO (1352510046) Under the guidance of MS. TUBA FIRDAUS (Assistant Professor) BUDDHA INSTITUTE OF TECHNOLOGY CL-1, SECTOR-7 GIDA (GORAKHPUR), UP (INDIA) - 273209 (AFFILIATED TO Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY, LUCKNOW, UP (INDIA) APRIL, 2017
  • 2. DECLARATION I hereby declare that the project entitled “WinkShare: A Social Network to Connect with Strangers” submitted for the B.Tech. (CSE) degree is my original work and the project has not formed the basis for the award of any other degree, diploma, fellowship or any other similar titles. Place: Gorakhpur Date: Signature of the Student(s) ii
  • 3. CERTIFICATE This is to certify that Sanjay Rao, a students of B Tech (CSE) of BUDDHA INSTITUE OF TECHNOLOGY, (Gorakhpur) have completed the project work entitled “WinkShare: A Social Network to Connect with Strangers” in partial fulfillment of the requirements for the award of Bachelor of Technology in Computer Science and Engineering affiliated to Dr. A.P.J. ABDUL KALAM TECHNICAL UNIVERSITY, (Lucknow) under my guidance during the academic year 2016-17. Place: Date: Ms. Tuba Firdaus Mr. Sachidanand Chaturvedi Assistant Professor Head of Department Department of Computer Department of Computer Science & Engineering Science & Engineering. iii
  • 4. ACKNOWLEDGEMENT It gives us a great sense of pleasure to present the report of the B. Tech Project undertaken during B. Tech. Fourth Year. We owe special debt of gratitude to Assistant Professor Ms. Tuba Firdaus, Department of Computer Science & Engineering, Buddha Institute of Technology, Gorakhpur for her constant support and guidance throughout the course of our work. Her sincerity, thoroughness and perseverance have been a constant source of inspiration for us. It is only her cognizant efforts that our endeavors have seen light of the day. We also do not like to miss the opportunity to acknowledge the contribution of all faculty members of the department for their kind assistance and cooperation during the development of our project. SANJAY RAO iv
  • 5. ABSTRACT This society is moving toward the age of instruments and socialization, where instruments such as mobile phone and cameras are a vital part of it. In this age of digitization, the most common way of socialization is sharing posts on the social sites such as Facebook and Instagram and with every passing second the sharing of posts and thoughts is increasing and due to this there are several factors that are needed to be taken care of. First of them is its security and second is to Image processing. Which is the most essential aspect of profile pictures all around the world. As sharing large and high definition of image require a lot of storage space but the larger the size the slower it gets, so we need a technique which will maintain the aspect ratio of the image as well as maintain its size for faster processing and loading using different technologies or different platforms as well. This paper is all about the different techniques required for the purpose of maintaining the security and to process and tagging methods of images shared on different social sites. The core idea of research project is to implement Web based application for providing the users with best security and provided with minimum added complex features This system gives an advantage to the user as it saves both the time and the complexity of using so much complicated features which other Social sites have. And its feature of added security and Image processing is the added advantage. v
  • 6. TABLE OF CONTENTS Declaration…..……….………………………………………………….….…. ………ii Certificate.....……….…………………………………………………………………. iii Acknowledgement .….………………...…….…………………………….….. ………iv Abstract .…………….….…….…..…………………………………….….…. ……….v Table of Contents...………………………………………….…………………………vi List of Figures……………...………………………………………..…….……………ix List of Figures……………...………………………………………..…….…………. ..x CHAPTER 1 INTRODUCTION [1 - 6] 1.1 PROBLEM STATEMENT 2 1.2 DOMAIN STUDY 3 1.3 EXISTING SYSTEM 4 1.4 PROJECT SCOPE 5 CHAPTER 2 SYSTEM REQUIREMENTS [7 - 15] 2.1 LITERATURE SURVEY 7 2.2 FUNCTIONAL SPECIFICATION 7 2.2.1 SERVER OBJECT 8 2.2.2 ACCOUNT OBJECT 8 2.2.3 ACCOUNT DETAILS OBJECT 8 2.2.4 CHAT SESSION OBJECT, EVENT OBJECT, LINK OBJECT AND PAGE OBJECT 8 2.2.5 MESSAGE OBJECT 9 2.2.6 WALL POST OBJECT 9 2.2.7 FRIENDS 9 vi
  • 7. 2.2.8 ACCOUNT CREATION 10 2.2.9 CHATTING 10 2.2.10 EVENTS 11 2.3 OTHER FEATURES 11 2.3.1 WALL 12 2.4 NON FUNCTIONAL SPECIFICATION 12 2.5 SOFTWARE TOOL SPECIFICATION 12 2.5.1 MYSQL WORKBENCH 12 2.5.1.1 DESIGN 13 2.5.1.2 DEVELOP 13 2.5.1.3 ADMINISTER 13 2.5.1.4 VISUAL PERFORMANCE DASHBOARD 13 2.5.1.5 DATABASE MIGRATION 13 2.5.2 SPRING FRAMEWORK 14 2.6 HARDWARE REQUIREMENTS 14 2.7 SOFTWARE REQUIREMENTS 15 CHAPTER 3 PROPOSED METHODOLOGY [16 - 19] 3.1 AGILE MODEL 16 3.2 AGILE VS TRADITIONAL SDLC MODELS 18 3.3 AGILE MODEL - PROS AND CONS 18 CHAPTER 4 SYSTEM DESIGN [20 - 29] 4.1 DATA FLOW DIAGRAM 20 4.1.1 USE CASE DIAGRAM 20 4.1.2 CONTEXT DIAGRAM 24 4.1.3 ENTITY RELATIONSHIP DIAGRAM 25 4.2 DATABASE 26 4.3 DATA DICTIONARY 27 vii
  • 8. CHAPTER 5 WINKSHARE [30 - 43] 5.1 SAMPLE SOURCE CODE 30 5.1.1 HOME CONTROLLER.JAVA 30 5.1.2 MAIN.JSP 32 5.2 SCRENSHOTS 38 CHAPTER 6 TESTING [44 - 27] 6.1 SYSTEM TESTING 44 6.1.1 TEST DATA IMPLEMENTATION AND THEIR RESULT ON 44 6.1.2 TEST CHARACTERS 45 6.2 BLACK BOX TESTING 46 6.3 WHITE BOX TESTING 47 6.4 UNITE TESTING 47 6.5 INTEGRATION TESTING 48 6.6 VALIDATION TESTING 48 6.7 TEST CASES 48 CHAPTER 8 FUTURE SCOPE [51] CHAPTER 9 CONCLUSION [52] REFERENCES [53] viii
  • 9. LIST OF FIGURES Figure No. Description Page No. Figure 3.1.1 SDLC Agile Model 7 Figure 4.1.1.1 Login/ Registration page 21 Figure 4.1.1.2 Home page 21 Figure 4.1.1.3 Profile Page 22 Figure 4.1.1.4 Message Page 22 Figure 4.1.1.5 Search Page 23 Figure 4.1.1.6 Friend Request Page 24 Figure 4.1.2 0 Level DFD 25 Figure 4.1.3 Entity Relationship Diagram 26 Figure 4.2 List of Tables 27 Figure 5.2.1 Sign Up page 39 Figure 5.2.2 Search Result Page 39 Figure 5.2.3 User Profile Page 40 Figure 5.2.4 Login Page 40 Figure 5.2.5 Home Page 41 Figure 5.2.6 Friends Profile Page 41 Figure 5.2.7 Friend Requests Page 42 Figure 5.2.8 Chat Page 42 Figure 5.2.9 Comment Page 43 Figure 5.2.10 Unknown User Profile Page 43 Figure 6.1.1 Flow Graph 45 ix
  • 10. LIST OF TABLES Table No. Description Page No. Table 4.3.1 Login Details 27 Table 4.3.2 Messages 28 Table 4.3.3 Posts 28 Table 4.3.4 Registration 28 Table 4.3.5 Request 28 Table 4.3.6 Table Comment 29 Table 4.3.7 Table like 29 Table 6.7.1 Login Table 49 Table 6.7.2 Registration Table 49 Table 6.7.3 Profile Table 50 x
  • 11. 1 CHAPTER 1 INTRODUCTION Social Networking - It's the way the 21st century communicates now. Social networking is the grouping of individuals into specific groups, like small rural communities or a neighborhood subdivision. Although social networking is possible in person, especially in the workplace, universities, and high schools, it is most popular online. This is because unlike most high schools, colleges, or workplaces, the internet is filled with millions of individuals who are looking to meet other people. Social network is the mapping and measuring of relationships and flows between people, groups, organizations, computers, URLs, and other connected information/knowledge entities. The nodes in the network are the people and groups while the links show relationships or flows between the nodes. Social network provides both a visual and a mathematical analysis of human relationships. Social Networking Website project itself is a huge project comprising various features like profile updating, friend’s list organization and various other application to enhance the overall look and feel of the website. However, in this project I am basically working on two essential feature or module ( PROFILE MANAGEMENT & FRIENDS ORGANIZATION ). PROFILE MANAGEMENT module maintains the profile of a user like name, profile picture, address, date of birth, contact number, post, friend list, etc. In this module if a user want to see other user profile then he/she will not able to see all the details, only profile picture, name, date of birth, address fields can be seen by him or her. FRIENDS ORGANIZATION module maintains the send request to an unknown user, accept request or decline request. Profiles and Friends lists are two key features on social network sites. The third is a public commenting feature ('Posts', 'Comments', 'Likes'). This feature allows individuals to comment on their Friends' profiles. These comments are displayed prominently and visible for anyone who has access to that profile.
  • 12. 2 1.1 Problem Statement We define social network sites as web-based services that allow individuals to construct a public or semi-public profile within a bounded system, articulate a list of other users with whom they share a connection, and view and traverse their list of connections and those made by others within the system. The nature and nomenclature of these connections may vary from site to site. Since their introduction, social network sites (SNSs) such as MySpace, Facebook, Cyworld and Hi5 have attracted millions of users, many of whom have integrated these sites into their daily practices. As of this writing, there are hundreds of SNSs, with various technological affordances, supporting a wide range of interests and practices. While their key technological features are fairly consistent, the cultures that emerge around SNSs are varied. Most sites support the maintenance of pre- existing social networks, but others help strangers connect based on shared interests, political views, or activities. Some sites cater to diverse audiences, while others attract people based on common language or shared racial, sexual, religious, or nationality- based identities. Sites also vary in the extent to which they incorporate new information and communication tools, such as mobile connectivity, blogging, and photo/ video-sharing. Social networking sites are not only for you to communicate or interact with other people globally but, this is also one effective way for business promotion. A lot of business minded people these days are now doing business online and use these social networking sites to respond to customer queries. It isn't just a social media site used to socialize with your friends but also, represents a huge pool of information from day to day living. A social networking service is an online service, platform, or site that focuses on facilitating the building of social networks or social relations among people who, for example, share interests, activities, backgrounds, or real-life connections. A social network service consists of a representation of each user (often a profile), his/her social links, and a variety of additional services. Most social network services are web- based and provide means for users to interact over the Internet, such as e-mail and instant messaging. Online community services are sometimes considered as a social network
  • 13. 3 service, though in a broader sense, social network service usually means an individual- centered service whereas online community services are group-centered. Social networking sites allow users to share ideas, activities, events, and interests within their individual networks. 1.2 Domain Study As of May 2013, almost three quarters (72%) of online U.S. adults use social networking sites, up from 67% in late 2012. When we first started asking about social networking sites in February 2005, just 8% of online adults said they used social networking sites. Today, social networking site use is a major activity for internet users from a wide range of demographic groups. Younger adults are especially avid adopters, but social networking continues to grow in popularity for older adults as well. Six out of ten internet users ages 50-64 are social networking site users, as are 43% of those ages 65 and older. Although online seniors are less likely than other age groups to use social networking sites, adoption rates for those 65 and older have tripled in the last four years (from 13% in the spring of 2009 to 43% now). The main types of social networking services are those that contain category places (such as former school year or classmates), means to connect with friends (usually with self- description pages), and a recommendation system linked to trust. Popular methods now combine many of Facebook, Google+, YouTube, LinkedIn, Instagram, Pinterest, Tumblr and Twitter widely used worldwide; Nexopia in Canada; Badoo, Bebo, VKontakte (Russia), Delphi (also called Delphi Forums), Draugiem.lv (mostly in Latvia), Hi5 (Europe), Hyves (mostly in The Netherlands), iWiW (mostly in Hungary), Nasza-Klasa, Soup (mostly in Poland), Glocals in Switzerland, Skyrock, The Sphere, StudiVZ (mostly in Germany), Tagged, Tuenti(mostly in Spain), and XING in parts of Europe; Hi5 and Orkut in South America and Central America; Mxit in Africa; and Cyworld, Mixi, Orkut, renren, weibo and Wretch in Asia and the Pacific Islands. Many of these early communities focused on bringing people together to interact with each other through chat rooms, and encouraged users to share personal information
  • 14. 4 and ideas via personal web pages by providing easy-to-use publishing tools and free or inexpensive web space. Some communities - such as Classmates.com - took a different approach by simply having people link to each other via email addresses. In the late 1990s, user profiles became a central feature of social networking sites, allowing users to compile lists of "friends" and search for other users with similar interests. New social networking methods were developed by the end of the 1990s, and many sites began to develop more advanced features for users to find and manage friends. This newer generation of social networking sites began to flourish with the emergence of SixDegrees.com in 1997 followed by Makeoutclub in 2000, HubCulture and Friendster in 2002 and soon became part of the Internet mainstream. Friendster was followed by MySpace and LinkedIn a year later, and eventually Bebo. Friendster became very popular in the Pacific Island.Orkut became the first social networking in Brazil and than also grow fast in India (Madhavan, 2007). Attesting to the rapid increase in social networking sites' popularity, by 2005, it was reported that MySpace was getting more page views than Google. Facebook, launched in 2004, became the largest social networking site in the world in early 2009. Facebook was first introduced (in 2004) as a Harvard social networking (Cassidy, 2006). 1.3 Existing Systems According to the definition above, the first recognizable social network site launched in 1997. SixDegrees.com allowed users to create profiles, list their Friends and, beginning in 1998, surf the Friends lists. Each of these features existed in some form before SixDegrees, of course. Profiles existed on most major dating sites and many community sites. AIM and ICQ buddy lists supported lists of Friends, although those Friends were not visible to others. SixDegrees was the first to combine these features. SixDegrees promoted itself as a tool to help people connect with and send messages to others. While SixDegrees attracted millions of users, it failed to become a sustainable business and, in 2000, the service closed. Looking back, its founder believes that SixDegrees was simply ahead of its time (A.Weinreich, personal communication, July 11, 2007). While people were already flocking to the Internet, most did not have extended networks of friends who were online.
  • 15. 5 Early adopters.com explained that there was little to do after accepting Friend requests, and most users were not interested in meeting strangers. Classmates.com allowed people to affiliate with their high school or college and surf the network for others who were also affiliated, but users could not create profiles or list Friends until years later. From 1997 to 2001, a number of community tools began supporting various combinations of profiles and publicly articulated Friends. AsianAvenue, BlackPlanet, and MiGente allowed users to create personal, professional, and dating profiles— users could identify Friends on their personal profiles without seeking approval for those connections (O. Wasow, personal communication, August 16, 2007). Likewise, shortly after its launch in 1999, LiveJournal listed one-directional connections on user pages. LiveJournal’s creator suspects that he fashioned these Friends after instant messaging buddy lists (B. Fitzpatrick, personal communication, June 15, 2007)—on LiveJournal, people mark others as Friends to follow their journals and manage privacy settings. The Korean virtual worlds site Cyworld was started in 1999 and added SNS features in 2001, independent of these other sites (see Kim & Yun, this issue). Likewise, when the Swedish web community LunarStorm refashioned itself as an SNS in 2000, it contained Friends lists, guestbooks, and diary pages (D. Skog, personal communication, September 24, 2007). 1.4 Project Scope  This system provides users to register their various types of profile like social, personal, general, professional.  This system provides users to send a message to their friends. User can maintain the messages whatever messages he has send to users.  The system provides user to upload the photos so that user can maintain own profile picture.  This system provides the user to maintain their friend list and user can update their friend list.  This system provides user to send friend request to unknown users by searching their names.  This system provides user to unfriend an existing friend.
  • 16. 6  This system provides user to view their profile and profile of his/her friend or any user’s profile who have signed up on WinkShare.  This system provides the functionality of logout from their profile, because if he/she haven’t logged out from their profile then any user can open his/her profile by the same browser used by user.
  • 17. 7 CHAPTER 2 SYSTEM REQUIREMENTS 2.1 Literature Survey The Web-based social networking services make it possible to connect people who share interests and activities across political, economic, and geographic borders. Through e- mail and instant messaging, online communities are created where a gift economy and reciprocal altruism are encouraged through cooperation. Information is suited to a gift economy, as information is a non rival good and can be gifted at practically no cost. Facebook and other social networking tools are increasingly the object of scholarly research. Scholars in many fields have begun to investigate the impact of social- networking sites, investigating how such sites may play into issues of identity, privacy, social capital, youth culture, and education. Several websites are beginning to tap into the power of the social networking model for philanthropy. Such models provide a means for connecting otherwise fragmented industries and small organizations without the resources to reach a broader audience with interested users. Social networks are providing a different way for individuals to communicate digitally. These communities of hypertexts allow for the sharing of information and ideas, an old concept placed in a digital environment. In 2011, HCL Technologies conducted research that showed that 50% of British employers had banned the use of social networking sites/services during office hours. 2.2Functional Specifications
  • 18. 8 2.2.1 Server Object The Server class acts as a wrapper for all server functions for our social networking site. It essentially act as a link between all of the information such as accounts, account details, pages, notes, etc to our database. When any other model object such as a page is pulled from the server, a temporary copy is made. If that temporary copy is changed in any way. The new version must be sent to the server in order to update the permanent copy. The reason behind local copies is that all the necessary information for the object is sent over in one easy-to-use package. Then the update to the database can be done all at once by sending back that single object. There is no need for multiple functions or a function that takes a large number of parameters. 2.2.2 Account Object Each user who wants to use the site must create an account. This is the head class that all other objects use to determine what a user does and when the user did it. The account’s information has four purposes: hold the login information, hold friend information, hold profile information, and hold privacy information with such a large amount of information to keep track of, the Account class would be very large and difficult to work with. Therefore to ease the load, the Account class was broken up into three different classes. There is the actual account class which keeps track of login information and friend information. It also holds the other two classes within it. Profile information was outsourced to the Account Details class, and privacy settings were outsourced to the Privacy Settings class. The only time the Account class needs to be updated is when the user changes his/her username and/or password. All other settings are handled by the Account Details and Privacy Settings classes. 2.2.3 Account Details Object An Account Details object is a helper class created whenever a new Account object is created. The object contains all the information that shows up in the user’s profile. The user can edit this by modifying his/her profile. Overall, this class has no other purpose but to be a helper class to its account object. 2.2.4 Chat Session Object, Event Object, Link Object and Page Object
  • 19. 9 These objects contain unique information for a particular type of action a user performs. All of these contain a reference to the account that owns them. Each object is a ”working- copy” of an object in the Server. Anytime one of these objects is created on the Server, an entry of its creation is added to the news feed database. 2.2.5 Message Object A Message object is created when a user composes a new message to be sent to a friend. After it is confirmed that the friend is located in the database, the Message object adds its information to the database. When a user checks his or her inbox, a list of messages that were sent to the user will be shown in descending order of when they were received. 2.2.6 Wall Post Object A Wall Post object works very similar to a Message object. The only difference is that the Wall Post objects are viewable to all friends of the user. Another difference is that a Wall Post object can hold comments. If a user adds a wall post to his or her own account, their status will change to the new wall post. 2.2.7 Friends The most important feature is being able to add and remove friends. In our Social Networking site, making friends is a fairly straightforward process. Users can type in the name of a friend in the search bar at the top of their home page. The database is queried for an account that has the search term contained in the full name, any media files with the search terms in the description, any pages with the search terms in the titles, any links with the search terms in the titles, and any notes with the search terms in the title. For example, User A could search for User B in the search bar. After clicking on User B’s profile, User A will see a button that says Send Friend Request. Clicking on it will send an alert to User B that User A wants to be a friend. The friend request will now be in the friends list of User B, where he/she can either accept it or ignore it, letting it sit there indefinitely. If user B accepts the request, User A will be added to User B’s friends list and vice versa. Being friends has its advantages. For example, only friends can chat to each other. Also, friends can view any part of a profile that is marked as friends only. Finally, for a user to view his/her
  • 20. 10 friends and incoming friend requests, he/she just clicks on the friends tab which brings up a frame. 2.2.8 Account Creation When a user accesses the site for the first time, he/she must create an account before using any of the site features. The account creation process is broken into three sections. The first section deals with the login information and is required for the user to fill out. This includes the email, password, and password confirmation. The purpose behind the password confirmation is to ensure that the user didn’t accidentally mistype when creating a password. The second section deals with information about who you are such as name, location, and gender. Most of these fields are optional except for your name and gender. It wouldn’t be much of a social network if everyone was named anonymous. The final section deals with information about the users likes and dislikes, such as interests and activities. Unlike the other two sections, this section is completely optional. Once the user clicks create account, a new account, account details, and privacy settings are added to the server, and the user is brought back to the login page 2.2.9 Chatting One of the advantages of having friends is the ability to have live communications with them via chat. When a friend is online, he/she will appear in the chat tab as an available friend to chat with. To start a chat session, simply click on the name of the friend which will begin a new chat session. The little bar at the bottom will change from chat disabled to chatting with friend name as seen in the figure below. Also, the friend receiving the chat will get a notification that a new chat session has started. Then the two friends can chat with each other until one or both log out. The chat feature is a little more complex than others as it requires a combination of JavaScript and JQuery to work. When a user clicks on a friend name to begin a chat, a chat request is sent to the database. On every page there is a JQuery function that queries the server for any new chat requests once a second. It needs to be JQuery, so the client can request for the server to run a check and return any relevant information. If it was pure PHP, the page would never load completely, because the page cannot finish loading until the server is done all preprocessing. The JavaScript portion of JQuery allows the
  • 21. 11 client to ask the server to do more processing after the page has been loaded.[3] If there is a new chat request, a pop under is generated, notifying the receiver of the new chat that is starting or a new pending chat if the user is in another chat. When a user send a message, another JQuery function is called, to alert the server that it needs to update the chat session with a new message. At the same time, another JQuery function is running to ask the server once a second if the chat session has been updated. Overall, it is a lot of the client asking the server to send over any changes that exist. 2.2.10 Events In addition to messaging your friends, social networking sites are a great place to alert your friends of important upcoming events. For example, if a user is throwing a birthday party, he/she could create an event an invite friends he/she wants to attend or simply make it a public for anyone. The process of creating an event is as simple as filling out a form which looks like this. After filling out the form, the user will be brought to the standard confirmation page. He/she can then view the new event by clicking on the Events tab and clicking on the new event. If the user wishes to edit some information about the event, he/she can click on the edit link next to the event where a similar form to creating an event will be displayed with all the fields populated with the current event information. Storing the event is a fairly straightforward process. Once the form data is submitted, a new Event object is created storing the Account that created the event as well as all the information sent along with the form. That new event is then sent to the server, which creates a database query and stores the fields of the event object into equivalent fields of the event database table. Retrieving events is also a fairly straightforward process. A MySQL query is called to pull the contents of the event into an array, and that array is used to instantiate a new working copy of the event in an Event object. 2.3 Other features
  • 22. 12 All the other features, such as the wall pages, and notes are fairly similar. Their main purpose is to add additional places to have places for additional content. All are created using similar methods, and are stored similarly but are used for different purposes. 2.3.1 Wall The wall is a place where the account owner can express his current feeling or thoughts with a wall status. Other users can add their thoughts by creating wall posts that show up below the status. It is basically a way for many users to communicate publicly or simply leave their thoughts about each other 2.4 Non-Functional Specification  Secure access of confidential data by user name and password. This application is secure for every kind of its users, because if any user logout from any session then nobody will be able to access his profile without knowing his confidential password.  24 X 7 availability  Better component design to get better performance at peak time.  The database used here is robust, reliable & fast. So users will have to wait for the output very short time.  This application can be accessed from any type of platform.  There is no case of redundancy in the database so it will not take extra memory space. 2.5 Software Tools Specification 2.5.1 MySQL Workbench MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. MySQL Workbench is available on Windows, Linux and Mac OS X.
  • 23. 13 2.5.1.1 Design MySQL Workbench enables a DBA, developer, or data architect to visually design, model, generate, and manage databases. It includes everything a data modeler needs for creating complex ER models, forward and reverse engineering, and also delivers key features for performing difficult change management and documentation tasks that normally require much time and effort. 2.5.1.2 Develop MySQL Workbench delivers visual tools for creating, executing, and optimizing SQL queries. The SQL Editor provides color syntax highlighting, auto-complete, reuse of SQL snippets, and execution history of SQL. The Database Connections Panel enables developers to easily manage standard database connections, including MySQL Fabric. The Object Browser provides instant access to database schema and object. 2.5.1.3 Administer MySQL Workbench provides a visual console to easily administer MySQL environments and gain better visibility into databases. Developers and DBAs can use the visual tools for configuring servers, administering users, performing backup and recovery, inspecting audit data, and viewing database health. 2.5.1.4 Visual Performance Dashboard MySQL Workbench provides a suite of tools to improve the performance of MySQL applications. DBAs can quickly view key performance indicators using the Performance Dashboard. Performance Reports provide easy identification and access to IO hotspots, high cost SQL statements, and more. Plus, with 1 click, developers can see where to optimize their query with the improved and easy to use Visual Explain Plan. 2.5.1.5 Database Migration MySQL Workbench now provides a complete, easy to use solution for migrating Microsoft SQL Server, Microsoft Access, Sybase ASE, PostreSQL, and other RDBMS
  • 24. 14 tables, objects and data to MySQL. Developers and DBAs can quickly and easily convert existing applications to run on MySQL both on Windows and other platforms. Migration also supports migrating from earlier versions of MySQL to the latest releases. 2.5.2 Framework: Spring The Spring Framework is a Java platform that provides comprehensive infrastructure support for developing Java applications. Spring handles the infrastructure so you can focus on your application. Spring enables you to build applications from "plain old Java objects" (POJOs) and to apply enterprise services non-invasively to POJOs. This capability applies to the Java SE programming model and to full and partial Java EE. Examples of how you, as an application developer, can benefit from the Spring platform:  Make a Java method execute in a database transaction without having to deal with transaction APIs.  Make a local Java method an HTTP endpoint without having to deal with the Servlet API.  Make a local Java method a message handler without having to deal with the JMS API.  Make a local Java method a management operation without having to deal with the JMX API. 2.6 Hardware Requirements Processor : Intel Core i3 and above RAM : 4 gB and above Hard disk : 80GB and above Monitor : CRT or LCD monitor
  • 25. 15 Keyboard : Normal or Multimedia Mouse : Compatible mouse 2.7 Software Requirements Front End : Spring Tool Suit Language : JAVA Framework : Spring Back End : MySQL Wornkbench Operation System : Windows XP or above Browser : Any latest browser
  • 26. 16 CHAPTER 3 ADAPTED METHODOLOGY Agile SDLC model is a combination of iterative and incremental process models with focus on process adaptability and customer satisfaction by rapid delivery of working software product. Agile Methods break the product into small incremental builds. These builds are provided in iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves cross functional teams working simultaneously on various areas like −  Planning  Requirements Analysis  Design  Coding  Unit Testing and  Acceptance Testing. At the end of the iteration, a working product is displayed to the customer and important stakeholders. 3.1 AGILE MODEL Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In Agile, the tasks are divided to time boxes small time frames to deliver specific features for a release. Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer. Here is a graphical illustration of the Agile Model –
  • 27. 17 Fig.3.1.1. SDLC Agile Model The Agile thought process had started early in the software development and started becoming popular with time due to its flexibility and adaptability. The most popular Agile methods include Rational Unified Process 19941994, Scrum 19951995, Crystal Clear, Extreme Programming 19961996, Adaptive Software Development, Feature Driven Development, and Dynamic Systems Development Method DSDM 1995. These are now collectively referred to as Agile Methodologies, after the Agile Manifesto was published in 2001. Following are the Agile Manifesto principles −  Individuals and interactions − In Agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.  Working software − Demo working software is considered the best means of communication with the customers to understand their requirements, instead of just depending on documentation.  Customer collaboration − As the requirements cannot be gathered completely in the beginning of the project due to various factors, continuous customer interaction is very important to get proper product requirements.  Responding to change − Agile Development is focused on quick responses to change and continuous development.
  • 28. 18 3.2 Agile Vs Traditional SDLC Models Agile is based on the adaptive software development methods, whereas the traditional SDLC models like the waterfall model is based on a predictive approach. Predictive teams in the traditional SDLC models usually work with detailed planning and have a complete forecast of the exact tasks and features to be delivered in the next few months or during the product life cycle. Predictive methods entirely depend on the requirement analysis and planning done in the beginning of cycle. Any changes to be incorporated go through a strict change control management and prioritization. Agile uses an adaptive approach where there is no detailed planning and there is clarity on future tasks only in respect of what features need to be developed. There is feature driven development and the team adapts to the changing product requirements dynamically. The product is tested very frequently, through the release iterations, minimizing the risk of any major failures in future. Customer Interaction is the backbone of this Agile methodology, and open communication with minimum documentation are the typical features of Agile development environment. The agile teams work in close collaboration with each other and are most often located in the same geographical location. 3.3 Agile Model - Pros and Cons Agile methods are being widely accepted in the software world recently. However, this method may not always be suitable for all products. Here are some pros and cons of the Agile model. The advantages of the Agile Model are as follows −  Is a very realistic approach to software development.  Promotes teamwork and cross training.  Functionality can be developed rapidly and demonstrated.  Resource requirements are minimum.
  • 29. 19  Suitable for fixed or changing requirements  Delivers early partial working solutions.  Good model for environments that change steadily.  Minimal rules, documentation easily employed.  Enables concurrent development and delivery within an overall planned context.  Little or no planning required.  Easy to manage.  Gives flexibility to developers. The disadvantages of the Agile Model are as follows −  Not suitable for handling complex dependencies.  More risk of sustainability, maintainability and extensibility.  An overall plan, an agile leader and agile PM practice is a must without which it will not work.  Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.  Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.  There is a very high individual dependency, since there is minimum documentation generated.  Transfer of technology to new team members may be quite challenging due to lack of documentation.
  • 30. 20 CHAPTER 4 SYSTEM DESIGN 4.1 DATA FLOW DIAGRAM Data flow diagrams model the flow of data into, through, and out of an information system: • show the processes that change or transform data • show the movement of data between processes • represent a system as a network of processes which transform data flowing between them. The user screen flow shows what a user of the community will see. After successfully logging on, the user will be given various links (such as search users, search boards, view mail, etc.), and be able to select options from there, or go back to their home. 4.1.1 USE CASE DIAGRAMS A use case diagram is a graphic depiction of the interactions among the elements of a system. A use case is a methodology used in system analysis to identify, clarify, and organize system requirements. In this context, the term "system" refers to something being developed or operated, such as a mail-order product sales and service Web site. Use case diagrams are employed in UML (Unified Modeling Language), a standard notation for the modeling of real-world objects and systems. System objectives can include planning overall requirements, validating a hardware design, testing and debugging a software product under development, creating an online help reference, or performing a consumer-service-oriented task. For example, use cases in a product sales environment would include item ordering, catalog updating, payment processing, and customer relations. A use case diagram contains four components. The boundary, which defines the system of interest in relation to the world around it.
  • 31. 21  The actors, usually individuals involved with the system defined according to their roles.  The use cases, which are the specific roles played by the actors within and around the system.  The relationships between and among the actors and the use cases. 4.1.1.1 Login/Registration Fig 4.1.1.1 Login/ Registration page 4.1.1.2 Home page
  • 32. 22 Fig 4.1.1.2 Home page 4.1.1.3 Profile page Fig 4.1.1.3 Profile page 4.1.1.4 Message
  • 33. 23 Fig 4.1.1.4 Message page 4.1.1.5 Search page Fig 4.1.1.5 Search page 4.1.1.6 Friend Request Page
  • 34. 24 Fig 4.1.1.6 Friend Request page 4.1.2 Context Diagram The highest level data flow diagram is the context diagram. • The context diagram shows the interaction of the system with its environment in terms of data flows • The context diagram defines the boundary of the system (the scope of the system) • Only the data flows which leave the system and the data flows which come from outside the system are shown. 4.1.2.1 0 Level DFD: A level 0 DFD, also called a fundamental system model or context diagram represents the entire software element as a single bubble with input and output data indicated by incoming and outgoing arrows, respectively.
  • 35. 25 Fig 4.1.2.1 0 Level DFD 4.1.3 ENTITY RELATIONSHIP DIAGRAM The entity relationship model is a high level data model. It is based on a perception of a real world that consists of a collection of basic objects, called entities, and of relationship among these objects. It was developed to facilitate database design by allowing specification of an enterprise schema, which represent the overall logical structure of a database. Entity: An entity is an object that has its existence in the real world. It includes all those “things” about which data is collected. An entity may be a tangible object such as a student, a place or a part. It may also be non-tangible such as an event, a job title or a customer account. For example, if we say that a customer buys goods, it means customer and goods are entities. Diagrammatically, entities are represented in rectangles.
  • 36. 26 An Entity Set: It is a set of entities of the same type that share the same properties, or attributes. The set of all persons who are customers at a given bank, example, can be defined as the entity set customer. Attributes: Attributes are units that describe the characteristics or properties of entities. In a database, entities are represented by tables and attributes by columns. For example, a customer entity might have numerous attributes such as code, name and addresses. Similarly, the goods entity may have attributes like code and price. They are drawn in elliptical shapes along with the entity rectangles. Fig 4.1.3 Entity Relationship Diagram 4.2 Database
  • 37. 27 Data base is used to store the relevant information of the individuals. A database is a collection of rows and columns in which rows indicates the tuple and column indicates the domain of table. Database design is the process of producing a detailed data model of a database. This logical data model contains all the needed logical and physical design choices and physical storage parameters. Need to generate a design in a data definition language, which can then be used to create a database. A fully attributed data model contains detailed attributes for each entity. The term database design can be used to describe many different parts of the design of an overall database system. Principally, and most correctly, it can be thought of the logical design of the relation of the base data structures used to store the data. In the relational model these are the classes and named relationships. However, the term database design could also be used to apply to overall process of designing, not just the base data structure, but also the forms and queries used as part of the overall database application within the database management system (DBMS). Fig 4.2 List of Tables 4.3 DATA DICTIONARY COLUMNS user_id loginTime logoutTime DATA TYPE INT VARCHAR(45) VARCHAR(45) Table 4.3.1 logindetails
  • 38. 28 COLUMNS sender _id receiver_ id message status time DATA TYPE INT INT VARCHAR(160) VARCHAR (45) VARCHAR (45) Table 4.3.2 messages COLUMNS post_id post post_time likes user_id DATA TYPE INT VARCHAR(500) VARCHAR(45) INT INT Table 4.3.3 posts COLUM NS user_id fname lname email contact password DATA TYPE INT VARCH AR(45) VARCH AR(45) VARCH AR(45) INT VARCH AR(45) dob city state country gender registratio ndate dp VARCH AR(45) VARCH AR(45) VARCH AR(45) VARCH AR(45) VARCH AR(45) VARCH AR(45) LONGTE XT Table 4.3.4 registration COLUMNS Req_stat Sender_id Receiver_id time DATA TYPE VARCHAR(45) VARCHAR(45) VARCHAR(45) VARCHAR(45) Table 4.3.5 request
  • 39. 29 Colu mns commen t_id comment_us er_id user_name post_ id comments time DATA TYPE INT INT VARCHA R(45) INT VARCHAR( 160) VARCHA R(45) Table 4.3.6 tbl_comment COLUMNS liked_user_id post_id time DATA TYPE INT INT VARCHAR(45) Table 4.3.7 tbl_like
  • 40. 30 CHAPTER 5 WINKSHARE 5.1 SAMPLE SOURCE CODE 5.1.1 HomeController.java @Controller public class HomeController { @Autowired JdbcTemplate jdbcTemplate; private static final Logger logger = LoggerFactory.getLogger(HomeController.class); /** * Simply selects the home view to render by returning its name. */ @Autowired LoginService log; @Autowired LikeCommentService lk; @Autowired MessageService msgServ; @RequestMapping(value = {"/","/home"}, method = RequestMethod.GET) public String home(Locale locale, Model model) { try{ String user=null; HttpServletRequest req=((ServletRequestAttributes)RequestContextHolder.getRequestAttribut es()).getRequest(); HttpSession ses=req.getSession(false); user= ses.getAttribute("userId").toString(); if(user==null) return "index"; else { List<Map<String, Object>> CommentResponse=lk.viewComments(); List<Map<String, Object>> friendList = log.showFriends();
  • 41. 31 List<Map<String, Object>> messageNotification=msgServ.messageNotification(); // String selectPost = "select post from posts order by post_id desc"; List<Map<String, Object>> postResult = log.ShowPost(); List<Map<String, Object>> requestResponse = log.friendRequestNotification(); if(!requestResponse.isEmpty()) { int requestCount = requestResponse.size(); model.addAttribute("count",requestCount); model.addAttribute("request",requestResponse); } model.addAttribute("commentResponse", CommentResponse); model.addAttribute("postResult",postResult); model.addAttribute("friendList", friendList); model.addAttribute("msgNotify", messageNotification”); return "main"; } } catch(Exception ex){return "index";} } @RequestMapping(value = "/post", method = RequestMethod.GET) public String home2(Locale locale, Model model) { try{ String user=null; HttpServletRequest req=((ServletRequestAttributes)RequestContextHolder.getRequestAttribut es()).getRequest(); HttpSession ses=req.getSession(false); user= ses.getAttribute("userId").toString(); if(user==null) return "index"; else { List<Map<String, Object>> friendList = log.showFriends(); List<Map<String, Object>> postResult = log.ShowPost();
  • 42. 32 List<Map<String, Object>> requestResponse = log.friendRequestNotification(); if(!requestResponse.isEmpty()) { int requestCount = requestResponse.size(); model.addAttribute("count",requestCount); model.addAttribute("request",requestResponse); } model.addAttribute("postResult",postResult); model.addAttribute("friendList", friendList); return "main"; } } catch(Exception ex){return "index";} } @RequestMapping(value = "/logout", method = RequestMethod.GET) public String logout(Locale locale, Model model,HttpServletResponse res) { HttpServletRequest req=((ServletRequestAttributes)RequestContextHolder.getRequestAttribut es()).getRequest(); HttpSession ses=req.getSession(); ses.setAttribute("userId", null); ses.invalidate(); res.setHeader("Cache-Control","no-cache"); res.setHeader("Cache-Control","no-store"); return "index"; } } 5.1.2 main.jsp <!DOCTYPE html> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html lang="en"> <head> <title>WinkShare | News Feed</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
  • 43. 33 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.mi n.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js "></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min. js"></script> <link rel="stylesheet" href="${pageContext.servletContext.contextPath}/resources/css/style.cs s"/> <script src="${pageContext.servletContext.contextPath}/resources/js/script.js" ></script> <style> /* Set black background color, white text and some padding */ footer { background-color: #555; color: white; padding: 15px; } body { padding-top: 70px; padding-bottom:70px;} .deleteComment { position: absolute; z-index:1; color: white; font: bold Helvetica, Sans-Serif; letter-spacing: -1px; background: rgb(0, 0, 0); /* fallback color */ background: rgba(0, 0, 0, 0.7); padding: 10px; visibility:hidden; } .deleteBt:hover .deleteComment{ visibility : visible; } </style> </head>
  • 44. 34 <body> <div class="chat_box"> <div class="chat_head"> Friends </div> <div class="chat_body" > <c:forEach var="fList" items="${friendList}" > <a href="chat?chatid=${fList.user_id}" class="list-group-item" style="color:green;">${fList.fname} ${fList.lname} &nbsp; &nbsp;<label class="label label-primary"><c:forEach var="notify" items="${msgNotify}"><c:if test="${notify.sender_id eq fList.user_id }">New Message</c:if></c:forEach></label></a> </c:forEach> </div> </div> <c:if test="${empty messageResponse}"> <script> $(document).ready(function(){ $('.msg_box').hide(); }); </script> </c:if> <c:set var="uName" scope="page" value="${username}"></c:set> <c:set var="dPicture" scope="session" value="${displayPicture}"></c:set> <form action="sendMessage" method="post"> <div class="msg_box" style="right:290px;z-index:1;"> <div class="msg_head"><c:forEach var="fname" items="${name}"> ${fname.value}</c:forEach><div class="close">x</div> </div> <div class="msg_wrap"> <div class="msg_body" id="cBody" style="overflow:scroll;"> <c:choose> <c:when test="${messageResponse == 'Start a conversation !!'}"> <div>${messageResponse}</div> </c:when> <c:otherwise> <c:forEach var="msg" items="${messageResponse}" > <c:if test="${msg.receiver_id == userId}"> <div class="msg_a">${msg.message} </div></c:if>
  • 45. 35 <c:if test="${msg.sender_id == userId}"><div class="msg_b">${msg.message}</div></c:if> </c:forEach> </c:otherwise> </c:choose> <div class="msg_push"></div> </div> <div class="msg_footer"><span style="float:right;"><input type="text" hidden name="receiverId" value="${chatId}"><input type="submit" value="Send" id="btnSend" class="btn btn- primary"></span><textarea class="msg_input" name="message" required pattern=".*S+.*" title="Blank message cannot e sent!!" id="messageArea"></textarea></div> </div> </div> </form> <nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data- toggle="collapse" data-target="#myNavbar"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="home">WinkShare</a> </div> <div class="collapse navbar-collapse" id="myNavbar"> <ul class="nav navbar-nav"> <li class="active"><a href="home">Home</a></li> <li><a href="profile">Profile</a></li> <li><a href="viewRequest"><span class="glyphicon glyphicon- user" aria-hidden="true" ></span> </a><span class="badge" style="margin-left: 20px; margin-top: - 86px;">${count}</span></li> </ul> <form class="navbar-form navbar-right" role="search" action="searchF" method="post"> <div class="form-group input-group">
  • 46. 36 <input type="text" class="form-control" name="search" required pattern=".*S+.*" title="Search using First or Last name" placeholder="Search for friends"> <span class="input-group-btn"> <button class="btn btn-default" type="submit"> <span class="glyphicon glyphicon-search"></span> </button> </span> </div> </form> <ul class="nav navbar-nav navbar-right"> <li><a href="logout"><span class="glyphicon glyphicon- off"></span> Logout </a></li> </ul> </div> </div> </nav> <div class="container text-center"> <div class="row"> <div class="col-sm-2 well"> <div class="well"> <p><a href="profile">${uName}</a></p> <img src="/imagePath/${dPicture}" class="img-circle" height="65" width="65" alt="Avatar"> </div> </div> <div class="col-sm-7"> <div class="row"> <div class="col-sm-12"> <div class="panel panel-default text-left"> <div class="panel-body"> <form action="post" method="post"> <textarea required pattern=".*S+.*" title="Post can't be blank" autocomplete="off" name="postTxt" style="width:100%; resize: none; overflow:hidden; border-style:inset;margin-left:0px; margin-top:5px;padding:10px;" placeholder="Let every one know What are you thinking !!!"></textarea><br><br>
  • 47. 37 <input type="submit" class="btn btn- primary" value="Post Status" style="margin-left:0px;"> </form> </div> </div> </div> </div> <!-- Posts --> <c:set var="userid" scope="page" value="${userId}"></c:set> <c:forEach var="postData" items="${postResult}"> <div class="well"> <div class="well "> <div class="row"> <div class="col-sm-3"> <div class="well"> <p>${postData.fname} ${postData.lname}</p> <img src="/imagePath/${postData.dp}" class="img-circle" height="70" width="70" alt="Avatar"> </div> </div> <div class="col-sm-9"> <div class="well well-lg"> <p>${postData.post}</p> </div> </div> </div> </div> <c:set var="hashTag" scope="page" value="#"></c:set> <div> <span style="margin-left:-504px;"><button type="button" class="btn btn-link" data-toggle="collapse" data- target="${hashTag}${postData.post_id}">Comment</button></span><div style="margin-top: -34px; margin-left: -335px;"><form action="" method="post"><c:if test="${postData.liked_user_id == userid}"><input type="submit" name="Like" value="Dislike"class="btn btn-link" id="unlike" formaction="unLike?postId=${postData.post_id}" ></c:if><c:if test="${postData.liked_user_id != userid}"><input type="submit" name="Like" id="like" value="Like"class="btn btn-link" formaction="like?postId=${postData.post_id}"></c:if><span class="badge">${postData.likes}</span></form></div></div>
  • 48. 38 <form action="" method="post"> <div class="collapse" id="${postData.post_id}"><textarea autocomplete="off" name="comment" id="commentBox" rows="4" required pattern=".*S+.*" title="Please write something" style=" width:70%;resize: none; overflow:hidden; padding:10px;" placeholder="Comment!!!"></textarea><input type="submit" style="margin-top: -30px; margin-left: 15px;"formaction="comment?postId=${postData.post_id}" value="Comment" class="btn btn-info"></div></form> <c:forEach var="commentResult" items="${commentResponse}"> <c:if test="${commentResult.post_id == postData.post_id}"> <form action="" method="post"> <ul class="list-group"> <li class="list-group-item" ><span style="float:left;"><b>${commentResult.user_name}<input type="text" name="commentId" hidden value="${commentResult.comment_id}"></b></span><span style="margin- left:-353px;"> ${commentResult.comments}</span> <button type="submit" class="deleteBt" formaction="deleteComment" style="border: 0; overflow:hidden; background: transparent; margin-top:-0px; float:right;"> <img src="${pageContext.servletContext.contextPath}/resources/images/remove .png"/><span class="deleteComment">Delete Comment</span></button></li> </ul> </form> </c:if> </c:forEach> </div> </c:forEach> <nav class="navbar navbar-inverse"> <a class="navbar-brand" href="home">No More Post to show</a> </nav> </body> </html> 5.2 Screenshots
  • 49. 39 Fig 5.2.1 Sign up page Fig 5.2.2 Search Result page
  • 50. 40 Fig 5.2.3 user profile page Fig 5.2.4 Login page
  • 51. 41 Fig 5.2.5 Home page Fig5.2.6 Friends profile page
  • 52. 42 Fig 5.2.7 Friend request s page Fig 5.2.8 Chat page
  • 53. 43 Fig 5.2.9 Comment page Fig 5.2.10 Unknown user profile page
  • 54. 44 CHAPTER 6 TESTING 6.1System Testing System testing is a critical element of quality assurance and represents the ultimate review of analysis, design and coding. Test case design focuses on a set of techniques for the creation of test because that meet overall testing objective. When a system is developed it is hoped that it performs properly. The main purpose of testing an information system is to find the errors and correct them. The scope of system testing should include both manual and computerized operations. System testing is comprehensive evaluation of the programs, manual procedures, computer operations and controls. System testing is the process of checking whether the developed system is working according to the objective and requirement. All testing is to be conducted in accordance to the test conditions specified earlier. This will ensure that the test coverage meets the requirements and that testing is done in a systematic manner. The process of analyzing the software item to detect the differences between existing or required condition and evaluate the features of the software items. The thorough testing of the system before release of the software needs to be done vide the various test cases and modes so that the software becomes devoid of bugs and uses minimum space requirements as well as minimum time to perform. The test cases were selected beforehand with expected results defined and actual results recorded for comparison. The selection of test cases is done vide “White Box Testing” technique to check the internal programming logic and efficiency and vide ”Black Box Testing” technique to check software requirement fulfillment with intension of finding maximum number of errors with minimum effort and time. Although test cases are a design by considering the cyclomatic complexity, conditional test, still the software code is not in its optional form, as all other possible alternative parts in the software are not considered. At the integration level, the software will be passing to the third party tests which would further enhance the software optimality and efficiency. 6.1.1 TESTDATAIMPLEMENTATIONANDTHEIRRESULTON:
  • 55. 45 The quality and standardization of the software / application package depends truly on the various predefined testing norms and on the performances of the software over those norms. There are various standards existing in the software industry the engineered end product strives to achieve viz. ISO 9002 SEI CMM Level5 etc. These standards are achieved onl y when the concerned software fulfils the tests as per the respective testing norms predefined in them vide the various test cases and parameters using the CASE topologies. Generally, software is tested both on a stand-alone mode as well after integrating all the modules in the system vide deferent available testing methods/norms. The following Flow Graph methodology was used while testing the software: fig 6.1.1 Flow graph Here each circle represents one or more non branching procedural language or source code s t a t e m e n t s i n F l o w G r a p h . W h i l e p e r f o r m i n g C o n d i t i o n T e s t i n g D o m a i n T e s t i n g methodology was selected. While performing Loop Testing simple loops, concatenated loops, nested and unstructured loops were tested thoroughly. 6.1.2 TEST CHARACTERS : 1.A good test has a high probability of finding an error.
  • 56. 46 2 . A g o o d t e s t i s n o t r e d u n d a n t . 3.A good test should be “best of breed”. 4.A good test should be neither too simple nor too complex. 6.2 BLACK BOX TESTING: The method of Black Box Testing is used by the software engineer to derive the required results of the test cases: 1.Black Box Testing alludes to test that are conducted at the software interface. 2.A Black Box Test examines some fundamental aspect of a system with little regard for the internal logic structure of the software. 3.A limited number of important logical paths can be selected and exercised. 4.Important data structure can be probed for validity. Black box testing was performed to find errors in the following categories:- 7 Incorrect or missing functions 8 Graphics error. 9 Errors in data in binary format. 10 Error in data in integer format. 11 File error. 12 Pointer error. 13 Memory access error. 14 Variable error . 15 Performance error 6.3 WHITE BOX TESTING: White Box Testing is sometimes called Glass Box Testing. Using White Box Testing methods the software engineer can derive the following test cases:
  • 57. 47 1.Guarantee that all independent paths within a module have been exercised at least once. 2.Exercise all logical decisions on their true and false sides. 3.Execute all loops at their boundaries and within their operational bounds. 4.Exercise internal data structures to ensure the validity.50 In White Box Testing efforts were made to handle the following:- • Number of input parameters equal to number of arguments. •Parameters and arguments attributes match. • N u m b e r o f a r g u m e n t s t r a n s m i t t e d i s c a l l e d m o d u l e s e q u a l t o a t t r i b u t e s o f parameters.. •Unit system of argument transmitt ed is called modules equal unit s ystem of parameter. • Number of attributes and order of arguments to build in functions correct. •Any references to parameters not associated to build in functions correct. •Input only arguments altered. •Global variable definition consistent across module. •Files attributes correct. •Format specifications matches I/O specification. •Files opened before use. •File closed while working is going on. •I/O errors handled. • Any textual errors in output information. 6.4 UNIT TESTING:
  • 58. 48 The unit testing is performed to test the validity of the individual units. This is done in the coding phase with the interactive testing. Thus it itself constitutes a majority of functionality test for each logical unit. 6.5 INTEGRITION TESTING: W h e n a l l t h e d e v e l o p m e n t o f a l l t h e u n i t s o r m o d u l e s i s c o m p l e t e d a n d integrated the integrity test phase is started. In this phase the interface between the modules are tested. This phase basicall y verifies whether inter module exchange of information and events are as per required system behavior. 6.6 VALIDATION TESTING: Tests were performed to find conformity with the requirements. Plans and p r o c e d u r e s w e r e d e s i g n e d t o e n s u r e t h a t a l l f u n c t i o n a l r e q u i r e m e n t s a r e satisfied. The software was alpha-tested. There are two goals in preparing test plans. Firstly, a properly detailed test plan demonstrates that the program specifications are understood completel y. Secondly, the test plan is used during program testing to prove the correctness of the program. 6.7 TEST CASES Login: Sl No Input Values Test case Conditional being checked Result 1 Email Empty Please Enter valid Username Successful 3 Email Already Exists or not Login ID should be unique Successful
  • 59. 49 4 Password Empty Please Enter valid Password Successful 5 Password If wrong Password Enter Password Successful 6 Password Length Length should be less than or equal to 8 character Successful Table 6.7.1 login table Registration: Sl No Input Values Test case Conditional being checked Result 1. First Name Empty It must not be empty Successful 2 Last Name Empty Last Name must not be empty Successful 3 Email Empty Enter valid Email ID. Successful 4 Password Empty Enter valid Password. Successful 5 Password Length Minimum 8 characters required Successful 6 Confirm Password Empty Password and confirmation password must be same Successful 7 Date Of Birth Select Enter valid Username and Password. Successful Table 6.7.2 Registration table Edit Profile:
  • 60. 50 Sl No Input Values Test case Conditional being checked Result 1. First Name Null First Name must not be empty Successful 2 Last Name Empty Last Name must not be empty Successful 3 City Empty City must not be empty Successful 4 State Empty state must not be empty Successful 5 Pin code Empty PIN code must not be empty Successful 6 Country SELECT Please select country Successful Table 6.7.3 Profile table
  • 61. 51 CHAPTER 7 FUTURE SCOPE  Image and video sharing on wall.  Sharing of posts.  Rating feature on images for photographers.  Gallery to store images of user.  Block functionality to block unwanted users.  Friend suggestions.
  • 62. 52 CHAPTER 8 CONCLUSION As a web applications are evolving rapidly, one will take forward the other one towards empowering innovation, versatility and power in them. There are a number of business opportunities and grand challenges of bringing forth viable and robust web based technologies ahead for fully realizing the enormous strength of web application in this internet era and thereby meeting both the basic requirements and advanced expectations of internet users and providers. It is known to everyone that newly created software or product will contain bugs and faults, no matter how much prevention is taken. But the main feature of this project is the feature will make this project stand out from the rest which is the rating feature for the easy retrieval of the images. The security and P2P feature of image sharing and tagging is the newest feature which has both been used in this project and has been inspired from different other photo sharing social sites. A good project should have all the features that it says and should also have a few unique feature which this one has. This project “Wink Share” has been designed as per required specification of user. A worth analysis of designing principle has been followed in the development of this project. In the near future some new and enhanced features will be added to the above mentioned application such as Image Processing which is one of the best feature of this web application to, settings options and some UI enhancements.