PAGE 3.0 : Ling Liu CS 8803 - Advanced Internet Applications

advertisement
PROFESSOR: Ling Liu
COURSE: CS 8803 - Advanced Internet Applications
PAGE 3.0
PROJECT BY:
- CHINMAY BARVE
- DEVIKA KARNIK
- KANAN GARG
TABLE OF CONTENTS:
1.
Introduction and History
1
2.
Research Problem
2
3.
Technologies Used
2
4.
Objectives
3
5.
Architecture of the System
4
6.
Screen Shots
6
7.
Contributions of the project
9
8.
Evaluation
10
9.
Reflections
12
10.
Acknowledgements
13
11.
References
14
1.
1. INTRODUCTION:
This project derives its inspiration from the widespread growth of Social Networking sites that have
consumed every individual’s daily life. It is not rare to see teenagers staying up late at nights scrapping their
friends, joining communities that they relate to, adding friends and downloading applications that they find
‘cool’ and ‘interesting’. Although this phenomenon of Social Networking is relatively new to the online
world, its rapid growth leaves little doubt that it can be used for dealing with issues bigger than just
scrapping friends.
HISTORY OF SOCIAL NETWORKING:
Social Networking sites are defined as sites that allow individuals to firstly, construct a public or semi-public
profile within a bounded system, secondly, articulate a list of other users with whom they share a
connection, and thirdly, 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. These sites cater to
wide range of audiences, 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.
Long before the advent of Social Networks, people used the Web for social communication in the form of
Bulletin Boards for sharing common interests or to focus on a local community such as that for gaming or
DIY computer projects. One of the most prominent of such systems was FidoNet, a BBS network which
allowed the transfer of file and data to people around the world. [1]
Next came the Online Services in the 1990s, which as the name goes, provided a lot of services such as
news, travel reservations, shopping and social hubs to its user. As the number of internet users grew across
the globe so did the Online Services which began to build communities around groups that were varied in
their nature. [1] Later came the Web1.0 and more importantly Friendster which was the first popular
website which contained most of the feature seen in the social networks today.
The earliest Social Networking Sites started out in 1995, with Classmates.com being the first of its kind to
allow users to keep in touch with their classmates from kindergarten to college with its biggest base being
the USA. In 1997, SixDegrees.com was created which allowed its users to create their profiles, maintain a
friends list and send invites to other mutual friends (friend of friends). This last activity was what started
the whole phenomenon of social networks. MySpace was founded in 2003 to promote independent music
and the socialite scene across the globe. Aside from being able to listen to new music and finding out about
the latest party, MySpace was a fun and artistic site where users could create unique profiles and share
their favorite videos with friends. The latest on the scene of SNS are Facebook and Orkut started in 2004
and have their biggest client base in US and Brazil respectively.
Although these sites started off with a view to encompass small communities, they have penetrated deep
into the online world spreading to all nations and ethnicities. Orkut.com is one of the biggest online
community which has its biggest population of users in Brazil followed by India, while MySpace and
FaceBook are more prominent in USA.
2. RESEARCH PROBLEM:
Our project is motivated by these social networking sites in that we too, are developing a networking site
wherein people can send invites to their friends for any event that they are organizing while on the other
hand the invitees can view their invitations respectively. This is the most basic facility provided by our site.
The primary goal of the site is to help people get together and meet their friends. Instead of having to make
phone calls and texting to invite friends for an event, this site provides a simplistic way for the friends to
communicate.
The basic research problem that this project caters to is the lack of existence of many such sites. It is seen
that most of the sites today which involve the planning of events do not take the invitees’ preferences into
consideration. This can be a major issue as many a times it is required that the preferences of the guests be
known.
There are times when the event is held at an inconvenient place for most of the attendees. Due to which
many of them may not be able to the event. Thus, our site takes these minute details into consideration,
while organizing a party. Also the meal preference of all the attendees is considered.
3. TECHNOLOGIES USED:
As the project, we had a little hesitation between using Java or C# as our language. We finally decided on
using the .Net platform along with MS-SQL Server 2005 for the database.
1. VISUAL STUDIO 2008 (IDE): WEB APPLICATION:
For the purposes of developing our application, we used Visual Studio 2008 and C# as our primary
language. To implement the Web Services we made use of the .Net framework 3.5 because it is more
robust and flexible.
Both the web services and the application were developed using this platform. While ASP.Net was used
for the application development, C# was used to implement the functionalities and the Web services.
Another reason to choose this platform was the ease of deployment of Web services using .Net
platform.
2. MS SQL Server:
We used the MS SQL server for the deployment of our databases. These databases are currently
residing on our server which is configured to support MS SQL Server 2005.
The ease of integration of Visual Studio with the SQL Server helped us choose the above mentioned
platforms for the purposes of our project.
4. OBJECTIVES:
Our Web Application has many functions which obliviates the users from performing manual and menial
tasks such as calling friends when organizing an event. The main objectives of our project are the following:
1. Creating a social networking site for organizing events: This is the primary goal of our project.
The site that we are developing has the following features:
 Creating an account: The user first needs to create an account on our site and enter his basic
information such as name, phone number, email address and a photo (if desired).
 Make a friend list: The user now can create his friend list, by sending friend invites to his friends
who are currently using this site.
 Send Invites: The user can send invites to all/some of his friends on his friend-list. This includes
entering the name of the event, description of the event, the venue and time of the event, meal
preferences and also the location preferences.
 View Invitation: The user can view the invitations that he/she has received. This will include the
event name and description, the date and venue of the event and their meal and location
preferences that needs to be filled out by them. In the end, the invitee has an option of RSVPing
to the event, depending on their schedule. The invitee can also see all the other attendees to the
event.
This takes place on the Web Application side.
2.
Creating Web Services: Once the users have filled in their information, this information will be
sent to our Web service. The functions of our Web Service are the following:
 Collecting the responses: The responses from the invitees will be collected and processed by the
web service. It will be inserted in a database which keeps all the information regarding the party
and the attendees.
 Responding to the Organizer: The web service will be responsible for responding to the
organizer regarding the number of people attending the event along with their location and
meal preferences. This will be displayed on the side of the organizer after everyone has RSVPed.
3. Creating Databases: For the purposes of this project, we have built two databases, namely:
 Profile Information: This is on the side of the Web Application and is used to store the names
and the passwords of all of its users. Any time a new user signs up, his information gets stored in
the database. Along with this the profile of the users is also stored here. This may include the
email addresses, his friend list, phone number, photo, albums and so on.
 Web Service databases: The Web Service has one main database. It keeps a track of all the
information that the organizer has entered. This will include the event name and description, his
event’s location and date and a list of all the invitees. On the other hand, once the invitations
have been sent out, the responses from the invitees is also stored in this database. This includes
their responses to the event, whether or not they are attending it and their meal and location
preference.
Once this is done our Web Service will calculate the number of attendees along with their meal
and location preferences and send it back to the Web application for it to be displayed on the
organizers side.
Thus, the main objective of our project is to deploy a Web Service which provides the functionalities of
helping other web sites keep a track of their information. The web application is obliviated of all the
trouble required in doing so.
4.
ARCHITECTURE OF OUR SYSTEM (DESIGN PROTOTYPE):
Organizer
Information
5
WEB SERVICES
1
.
2.
[Type a quote 4
from the
.
or the
WEB APPLICATIONS document
summary of an
interesting point.
You can position
the text box
anywhere in the
document. Use
the Text Box
Tools tab to
change the
formatting of the
pull quote text
SOCIAL NETWORKING SITES box.]
2
3
.
Profile
Information
Information
6
APIs
API’s
Google
(Google,
Maps,
Boorah )
Boorah
MAIN COMPONENTS:
1. WEB APPLICATION: This includes all the Social Networking sites which may make use of the Web Service.
In our project Page 3.0 is the social networking site which uses the web services published on the web.
2. PROFILE INFORMATION DATABASE: This includes all the profile information that the user fills out when
signing up with Page 3.0. This includes username, passwords, email addresses and other personal
information like phone number, photo and so on.
The first table consists of Friend information which has user_id and frd_userid in it. The next table is
that of Login which includes the usernames and passwords.
3. OTHER API’s: The web application also uses the other Api’s such as GoogleMaps, Boorah, Amazon for
various reasons.
 GoogleMaps is used to show the location of the event and help the invitees to reach the place of
the event. On feeding their current location they will be able to see how far they are from the
location of the event.
 Boorah is an api which is used to get an idea of the ratings of the restaurants, how cheap/
expensive the menu is. This comes in handy when the inviter needs to see which restaurant will
be best fitting for all the invitees who RSVPed.
4. WEB SERVICE: This forms the crux of our project. Here is where all the actual functions are performed.
 It takes care of extracting the information from the ‘invitations’ and putting it in the ‘organizer’
database.
 After this it sends the invites to the required people.
 Once the invitees respond with their meal and location preferences, it again updates the
‘calculation’ database.
 The RSVPs calculated and their choices, is again sent back to the organizer which can be seen by
him when he logs back in.
This web service is published on the web and can be used by any social networking site that needs to
perform these functions.
5. DATABASES USED BY THE WEB SERVICES (‘ORGANIZER INFORMATION’):
The database used by the web services to perform its functions.
The first table used is that for storing all the information from the organizer. This table is stored in the
‘Organizer Information’ which includes event_id, userid, event_name, host, venue, date, type and
event_info.
The second table is that of event invitation. It has invitation_id, user_id, invitee_id, event_id and stuatus
as its columns.
The last table is that of user which consists of username, passwords and name in its database.
5. SCREEN SHOTS:
Login Page:
Home Page (Profile Page):
Organize Event:
View Invitations:
6. CONTRIBUTIONS OF THE PROJECT:
This project started out with an intention to establish a social networking site where people would join in and
make their own friends from those already on the network. In the advent of any event that needs to be hosted
by them, they would send out an invitation consisting of various details necessary to plan an event. This social
networking site primarily focused on organizing events based on the preferences of the invitees may it be the
restaurants, the location, budget (at times) and so on.
However, realizing that this would result in a massive amount of work and after discussing with Prof. Ling Liu,
we decided to focus the bulk of our effort on creating a web service which could be used by many other related
web sites that involved the same functionalities. As a result, the contributions of this project are the following:
1. MIDDLE-WARE – DEVELOPING A WEB SERVICE:
As already specified, the main focus of our project is on the development of a web service which has the
following functions:
 Create_Event(): This is a service which is called by the application when an event is created.
Whenever, the user creates an event, the web application calls this function whose primary
purpose is that of taking all the information from the invitation form and putting it all in the
database.
 Get_Event_Count_By_Invitee(): This function returns a count of all the events that have been
posted by the invitees.
 Get_Event_Count_By_Host(): This function returns a count of all the events that are being
hosted by the host names.
 Get_Invitation_Count(): This function returns the count of the number of invitations that a
particular user has received.
 Get_Events_By_Invitee(): This function returns to the user a list of events that he is an invitee
to.
 Get_Events_by_Host(): This returns a list of all the events that the particular user is a host of.
 Get_Guest _List(): This function will return to the user the guest list of all the parties that he is
hosting by name and party id.
 RSVP(): This returns whether an invitee has RSVPed to an event that a particular user has
posted.
 Delete_Event(): This function is called once an event is deleted.
2. DEVELOPING A SOCIAL NETWORKING SITE IN THE FORM OF PAGE 3.0:
Here we developed a social networking site which has already been discussed in the previous sections.
The site poses as the front end of the web service and can be used by people to make accounts and
send out invitations. This site is still in its nascent stages with basic functionalities. The functionalities of
the web site are the following:
 Organize_Events(): Here the organizer can post his event by filling out a form which consists of
the information required about the event such as location, meal, time, invitees and so on.
 View_Invites(): Here the user can view his invites and fill out a form where his preferences are
recorded.
 View_parties_hosted(): Here the user can see all the current parties being hosted by his friends
on his friend-list.
The features of this site are:
 Making your own profile: This includes the name, photos, email address, about me, interests
and the friends on your list.
 Viewing your friend’s List: Here one can view their friend’s list as and when needed.
6. EVALUATION:
The evaluation of a social networking site is more qualitative than quantitative. This does not mean that there
is no quantification of results. For the purposes of evaluation of our site and application, we have used some of
the metrics that are most commonly used for the evaluation of a social networking site.
Following are the metrics that we used for the evaluation of Page 3.0:
1. Security and Privacy:
The security offered by the site is inbuilt in that by adjusting the Settings option in the application, the
user can decide how much information to disclose. Some users can allow their profile to be seen by
‘Friends of friends’ while some might allow it to be seen only by ‘Friends’.
All the information regarding the event is shown only on the homepage of the user and not anywhere
else. So there is no disclosure of information.
2. Flexibility:
The Web Service that we have implemented is flexible in that it can be used by other applications that
want to make use of the similar functionalities as offered by Page 3. Since the Web Service is separate
from the application, it is possible for the other applications to send requests such as ‘calculation of
RSVPs’ to our Web Service which will then return the number of people who have RSPVed to the event.
Thus, our system is flexible in this way.
3. Scalability:
The database that we have implemented is hosted at a real server which can handle thousands of users.
Since the database can handle thousands of users, the application is highly scalable and many users can
sign up for Page 3, before it starts experiencing some problems. This makes our Web site highly
scalable.
4. Stress Testing:
The database that we are using resides on a real server which is capable of handling many real time
requests. Even by adding many users, who issue requests simultaneously, there will be no issues as the
server is capable of handling many requests.
Apart from the above mentioned performance evaluation methods, we also performed qualitative
evaluation based on the following metrics:
1. Definition of the social network’s purpose and audience:
This goal deals with defining a social networking site’s purpose and its potential audience. For Page 3.0,
the purpose is to have a user build his community of friends by adding them to his/her friend list and
then use this site to organize events between himself and his friends. This is the primary goal with the
intention that a user is alleviated of the burden of calling up people when trying to organize a party.
Also friends can be alerted of an event by the user instead of the user forgetting to call the
acquaintance at all.
The audience that Page 3.0 caters to is anybody over the age of 13 years and is capable of making a
profile and has events to organize. There are no restrictions as to who can join the network. This is
because we want to facilitate the interaction between people by having them organize events and then
leave it to their invitees to come up with the meal and location preferences.
2. Customizing the social network’s design and seeding it with good content:
For this our site allows users to edit and customize their profiles according to their liking and
preference. They can select the friends that they want and reject the requests from those not needed.
For customization, we have provided the users with the facility of uploading their pictures on the
profile. The one distinction between social networks and online communities is that social networks
allow users to project their elevated profiles to look more like a user homepage that displays a very rich
and contextual set of information. Also, the member home pages are not peripheral to the discussions
or a subset of the community; they are at the very core of the system .
For good content we have implemented various features. Firstly, there is a link that allows you to view
all of your invitations. Secondly, the site is not cluttered with unnecessary feeds, ads, notifications and
information not pertaining to the user that are prominent with other social networking sites. As our
primary goal is to help facilitate the interaction amongst friends by helping them organize events and
parties with people close to them, we have kept our interface to the bare minimum, only including that
information which is necessary and will promote the user in making a quick and speedy invite and
generate an equally quick and speedy response from the invitee.
3. Easy contribution from members:
As the members form the core of any social networking site, we feel that any member should be able to
contribute his information to the site with equal fairness and that there should be no community
manager to keep a track of all the site information. Each member has an equal opportunity to post his
invites and respond to parties that he has been invited to.
4. Network Centric Navigation:
Social networking enables a new level of community navigation. As discussed previously, members have
home pages and displayed on those pages are explicit links to other members and groups. Further,
groups display links to members who have joined the group. This structure helps members find other
members that are on the site but they didn’t know about.
This feature is also present in our networking site.
8. REFLECTIONS:
The Original Idea (Proposal):
This project has been very interesting right from the proposal to its actual implementation. The project had
started out as an idea to implement a site which will help people in connecting with each other for a single
purpose of organizing events and parties.
We had originally proposed to include a lot of api’s in our project. Some of them were GoogleMaps, Boorah,
Amazon, Billmonk and so on, all attending to different functionalities.
GoogleMaps Api: We wanted to implement GoogleMaps to show the location of the event so that everybody
attending it would have an idea of where the event is being held.
Boorah api: Boorah is an api which provides an evaluation of the restaurants that are located in the vicinity of
the event along with the restaurant’s ratings, their specialties, the cuisines offered, the menu, prices and so on.
Amazon’s api: We wanted to implement Amazon’s api to help the invitees collaborate together to purchase a
gift for the organizer. This api would help the invitees pick out a gift from Amazon’s web site with everyone’s
agreement. The idea was to implement a concept of ‘shared gift’ for the event holder.
Billmonk api: With the concept of shared gifts came the concept of splitting the cost of the gift. This led us to
include the Billmonk api in our application where the invitees could easily keep a track of the money matters
between themselves when settling on a gift for the organizer.
The Actual Project:
The actual project, as can be seen from the report, is quite different from our proposed work. After our
meeting with Prof. Ling Liu, we decided to focus on the middleware more than the application. Thus, evolved
the idea of ‘Web Services’ a third party agent, which performs some functionality on the behalf of the
application. The core of our effort, as stated before, has been on the development and the publishing of the
web services.
Web Services - A New Concept: As none of us had ever worked on web services before it was a fairly new idea
to us. This involved intense research about this concept in the initial phases of project. After having a good idea
about web services, the next obstacle was the technology to be used. After several discussions we decided on
using ASP.Net with C# as the primary language for front end with MS –SQL 2005 as the back end.
The Project As It Stands Today:
Although the interface does not have a lot of api’s, there is still a very good web site with a clear purpose. The
web service is published and is running for all the function stated above in this report. The back end is also
capable of adding new users as an when they join and maintaining all the user information.
9. ACKNOWLEDGEMENTS:
We would like to thank Professor Dr.Ling Liu for her support and guidance throughout the development of this
project. She has helped us at every stage of the project, right from the proposal to the actual deployment of
the project.
10. REFERENCES:
[1] Unravelling the Web Services Web - An introduction to SOAP, WSDL and UDDI - Francisco Curbera
[2] Lessons from Giant Scale Web Services - Eric A. Brewer
[3] Web Services Architecture - http://www.w3.org/TR/ws-arch/wsa.pdf
[4] Modeling Stateful Resources with Web Services - Ian Foster
[5] Web Services Eventing - Don Box
Download