CS 8803 Advanced Internet Application Development BUZZ-ing Space Project Report

advertisement
Spring 2008
BUZZing Space
CS 8803 Advanced Internet Application Development
Project Report
BUZZ-ing Space
A social network for Georgia Tech
Developed by
Madhav Deshpande
Purna Mehta
Shilpa Pal
Akshay Phadake
Kinjal Shah
(Computer Science Masters students of Georgia Tech)
1
Spring 2008
BUZZing Space
Table of Contents
1. About Buzz-ing space............................................................................................................................3
1.1 Introduction.....................................................................................................................................3
1.2 Architecture Diagram......................................................................................................................4
2. Applications...........................................................................................................................................5
2.1 Community Forums.........................................................................................................................5
2.1.1 Introduction.............................................................................................................................5
2.1.2 Architecture..............................................................................................................................5
2.1.3 Database Design......................................................................................................................6
2.1.4 Workflow.................................................................................................................................7
2.1.5 Future Work.............................................................................................................................9
2.2 Car Pooling....................................................................................................................................10
2.2.1 Introduction...........................................................................................................................10
2.2.2 Architecture............................................................................................................................10
2.2.3 Database Design....................................................................................................................11
2.2.4 Workflow...............................................................................................................................11
2.2.5 Future Work...........................................................................................................................13
2.3 Image Gallery................................................................................................................................14
2.3.1 Introduction...........................................................................................................................14
2.3.2 Architecture............................................................................................................................14
2.3.3 Database Design....................................................................................................................15
2.3.4 Workflow...............................................................................................................................16
2.3.5 Future Work...........................................................................................................................19
2.4 Job Finder......................................................................................................................................19
2.4.1 Introduction...........................................................................................................................19
2.4.2 Architecture............................................................................................................................19
2.4.3 Database Design....................................................................................................................20
2.4.4 Workflow...............................................................................................................................21
3. Conclusion...........................................................................................................................................22
2
Spring 2008
BUZZing Space
1. About Buzz-ing space
1.1 Introduction
We are proud to introduce the 'Buzz-ing Space' – a social network for Georgia Tech. It facilitates the
GATech family members to stay connected with each other irrespective of the time and distance
parameters. The applications supported by this module include Community Forums, Job Findings,
Photo Sharing and Car Pooling.
The motivation behind developing this application is to have all the Georgia Tech members together
such that they can be of great help to each other at the fastest pace.
People having common interest/field of study can form 'communities'. These communities are
associated with forums which allow the huge amount of information to be shared between the
members of the community. A naive user can post his queries on the forum and can get the response
from highly knowledgeable people around the campus. In case of the urgent requirements, it is also
possible to set up the meetings and get the query resolved as soon as possible.
Freshers at GATech have little idea about the university system. It would be of great help to them if
they are able to find seniors from their stream to come ahead and guide them in their needs. One such
need we have handled here is the Job Finder application. The employers can post their job
requirements on this portal. Students can view these postings and apply for the jobs matching their
profile. Employers can then study all the applications and chose the right candidate according to their
needs. This will save the efforts of both employers and students.
We always prefer to share the classic/useful/memorable things with our acquaintance. One of the
application that allows us to achieve this is the Photo Sharing application. A user is allowed to upload
pictures and tag them. By tagging images, we make it available to the other users who have images
with same tag / who are searching for images with that tag.
There may be many events going around/outside the campus that might be of interest to a group of
people. These people may not be knowing each other but they have the same schedule for that day.
The Car Pooling application helps bringing such people together. A user going for a particular event
can register himself on the portal. This information is publicly available to the other members. If the
registered user has a car, he can be of help to others who don't have a car and are seeking some
means of transportation.
3
Spring 2008
BUZZing Space
1.2 Architecture Diagram
The users, applications, and server communicate with each other as follows:
Community Forum
Job Finder
Database
Server
Application
Photo Sharing
Clients
Car Pooling
-
Clients involve the registered users (can be a GATech student / professor / staff / alumni)
The clients use the user interface to interact with the various applications (can be community
forum, job finder, photo sharing, carpooling)
− The application in turn deal with the database server (currently is WAMP environment) to get the
information and service the user according to their requests.
−
4
Spring 2008
BUZZing Space
2. Applications
2.1 Community Forums
2.1.1 Introduction
Communities form a basic building block of a Social Networking application. Especially, for an
Institution like Georgia Tech that has a long history (over a century) of educating people. At GATech,
we have over 18000 students (undergrad and grad) being studied under over 900 faculties. For such a
huge community, it is advantageous to have a way that can bind all the GATech members together at
one place. The Buzzing Space's application named 'Community' helps us to achieve this goal. All the
registered users can create/join a community. This communities are categorized based on the
Program of School as well as any specialized field within that program. Each community is then
associated with a forum where the members of the forum can post threads and the other members
can respond to these threads.
2.1.2 Architecture
Community
Forum
Application
(WAMP Server)
Community
Forum
Clients
Clients:
Server:
Database:
Registered users who are the GATech Community members/owners (can be
student, faculty, staff)
WAMP (Window Apache Mysql PHP) web server
Tables that stores information about the members/owners of the community and
threads of the forum
5
Spring 2008
BUZZing Space
2.1.3 Database Design
ER Diagram:
owns
participates
User
Community
contains
Forum
Database Schema:
login
username
password
community
community_name
owner
category
specific
description
community_user
comm_name
member
owner
accepted
rejected pending
forum
comm_name
title
message
id
6
name
email
Spring 2008
BUZZing Space
2.1.4 Workflow
The application work flow is as follows:
1) The user logins to Buzzing Space
2) The user accesses Community page. He can see the list of communities for which he is either
owner or a member. He can also view any pending invitation for joining a particular community.
He is being given a choice to wither accept or reject the invite.
7
Spring 2008
BUZZing Space
3) A user can create his own community by clicking the 'Create Community' tab. This page gives
him the options to enter the community name, the category it belongs to and the description
about the community. On creating the community, he is being given a choice to selectively
invite his friends to join this community.
8
Spring 2008
BUZZing Space
4) Every community is associated with a forum. On clicking a particular community, the page
leads to the corresponding forum page. Here, he is allowed to view all the previous threads
and reply to any of these threads. He is also given an option to post threads on this forum.
2.1.5 Future Work
1) Expertized Ranking: The user of a forum may be given a rank. The ranking may be given
based on the number of queries he has answered pertaining to a particular forum, the
accuracy/correctness of his replies, etc.
2) Privacy Preservation: The owner of a community may be given a choice such that he can
enforce various access permission among the members of the community.
9
Spring 2008
BUZZing Space
2.2 Car Pooling
2.2.1 Introduction
Car Pooling is a relatively new application in social networks. Although, there are large number of sites
available online with this application, it has never been a part of social networks. In Universities,
carpooling is common but there is no centralized way of doing it. There are numerous events around
the year which many students cannot attend just because they did not have ride to go to that place or
because they did not know any friend with a car going to that place. With car pooling application
available online, this becomes easy. The best part of the application is visualization of the results on
map which makes it more effective and easier to understand. Further, this application can be used for
online event planning such as attending various career fairs, conferences, interviews or plainly picnics.
2.2.2 Architecture
The architecture of this application mainly consists of 3 components: server, users and the car
owners database.
The server used here is basically WAMP server which provides Windows-Apache-MySQL-PHP
environment. This eliminates the integration issues of various platforms.
The users are basically students interested in car pooling and also students who have cars and want
to participate in car pooling. The car owners database contains the data of the people who have cars
and want to participate in car pooling. This database initially stores just the name, address and the
event for which the user is going. Then geocoder function is used to geocode the addresses and store
the latitude and longitude values in the database.
The car pooling application basically uses Google Maps API to represent the results for the query
posed by the user which are obtained from the car owners database.
Car Pooling
Application with
Google Maps API
(WAMP server)
Users
10
Car Owners
Database
Spring 2008
BUZZing Space
2.2.3 Database Design
Database Schema:
Table contributors
USERNAME
ADDRESS
LATITUDE
LONGITUDE
EVENT
2.2.4 Workflow
1. When the user starts the car pooling application, a form is displayed asking for the users’
address and event. The user also gets to select the radius within which he wants results.
2. When the user clicks on “Search Locations”, the application accesses the Car Owners’
database. It retrieves the name, address, event and distance from the users’ address. This is
displayed in the sidebar.
3. Using the above results, the application plots markers on the map. These markers also have
info window with the information retrieved from the database. The red marker shows the
address given by user and the blue marker shows the address retrieved from the database.
11
Spring 2008
BUZZing Space
4. When the radius is changed, then more results can be obtained from the database as seen in
the figure below.
12
Spring 2008
BUZZing Space
For Car Owners
1) The user clicks on the register tab given on the top right hand side of the page.
2) A form is displayed where the user with a car enters his details and form validation is done
3) The data obtained from the form is inserted into the database.If the data is inserted
successfully then the “Data Inserted successfully” message is displayed.
2.2.5 Future Work
The application retrieves results based on the event chosen. But the application can be scaled to
retrieve results based on the route of travel decided by the user. Currently, this application just
searches for results and displays them. But later on these results can be used to plan an event where
record of number of people attending the event can be estimated. Also, the driving directions for the
user from his address to the car pooling location can be displayed on just one click on the users’
details.
13
Spring 2008
BUZZing Space
2.3 Image Gallery
2.3.1 Introduction
Image Galleries on a social network are not only about storing images. It’s about sharing images
amongst your friends, creating virtual albums which can be shared and providing various features as
well. The image galleries currently available on social networking sites such as Orkut, Facebook have
only features for storing images. We provide additional features such as tagging of images, providing
search wherein you can search your friends images for images, sharing by which you can add you
friends images to your albums and displaying the images similar to the current image being viewed.
The potential of such features is that you can create albums consisting of images from you and your
friends that satisfy certain keywords instantly.
2.3.2 Architecture
Image Gallery
Application
Application
Database
File
Database
Users
As shown in the figure the application makes use of two databases:
1) Application Database.
2)File Database.
The application database is a relational database which contains information about the users, their
albums, images, image file names in the file database, etc.
The File Database stores the actual images. The images are stored as thumbnails and also the
original images which are resized for the need of application.
File database was kept separate for security reasons. The users will not have access to the image
files except from within the application.
14
Spring 2008
BUZZing Space
2.3.3 Database Design
ER Diagram:
Images
contai
ns
Album
Login
Database schema:
Table Login:
Username
Table Album:
Username
Password
Album_id
Table Image:
User Imag Image
nam e
_albu
e
_id
m
_id
Image
_name
Album_name
Tag1
T
ag2
Tag3
Album_desc
Imageimg_thu
mb
Shared
_username
Album_img_thum
b
Shared
_album_id
Implementation Details:
The file server has dedicated folders for each user. This folder is used to store the images which user
uploads to the server. Even though we have different folders for each user, it might happen that the
user uploads another image with same filename and extension. To take care of this, when the user
uploads any image to the server, we rename it using the time value. Since one user will upload one
image at a time and to its folder, there is no chance of overwriting the existing file.
This random filename is stored in the image table and the images are retrieved based on these.
15
Spring 2008
BUZZing Space
2.3.4 Workflow
1) The user can create a new album whenever he wants to upload an image or upload image
to an existing album.
2) When creating the album, the user can upload an image for the album.
3) Similarly the user can upload the image along with tags.
16
Spring 2008
BUZZing Space
4) While browsing through his friends’ profile, if the user finds the image interesting or pertaining
to some album he has already created, he can add that image.
17
Spring 2008
BUZZing Space
5) We also display similar images relative to the image being viewed. When the user
clicks on that image, he is taken to the view of that image.
18
Spring 2008
BUZZing Space
2.3.5 Future Work
1) Add more security by adding encryption
2) Create and organize albums automatically based on keywords.
3) Enhance search results
2.4 Job Finder
2.4.1 Introduction
Georgia Tech is a huge Institute where many new students arrive every semester. Many of them are
desirous of taking up a job on-campus to fund their living expenses. However, the absence of a
centralized service for this makes them pursue departments and professors all around campus. This
creates hassles for professors, staff as well as the students, who are clueless about the
consequences of mass spamming. It was precisely this factor that has motivated us to build a
prototype system which shall work as a centralized repository of on-campus jobs at Georgia Tech. In
addition, the application will provide facilities for self-directed specific job search, profile matching and
automated job applications. We believe this shall greatly reduce the brunt of applying everywhere from
the students, and the hassle of addressing hundreds of emails and applications for the individual
departments and professors.
2.4.2 Architecture
The system works as a traditional client-server application. The architecture is as shown in Figure 1.
Job
Repository
Job Search
Application
(WAMP Server)
Applicant
Profiles
Clients
List of
Application
s
Figure 1: Architecture of the Job Finder Application
19
Spring 2008
BUZZing Space
(a) Server:
We use the Windows-Apache-MySQL-PHP environment (WAMP) web server as the server for
hosting our application. It is a PHP-based web application.
(b) Client:
The clients are of two kinds:
(i)
Students:
Students use our system to search for jobs by creating profiles and uploading resumes.
(ii)
Job-providers:
Job providers will submit information about their job openings (on-campus) to our
application repository.
The clients use a simple web-browser to connect to our application’s server.
(c) Databases:
The application consists of three major databases:
1) Repository of Jobs:
This is the list of job openings available on campus.
2) Profiles of Applicants:
These are the job-skills and related profiles of applicant students for matching with the
desired requirements of a job.
3) Job Applications:
These are automated applications submitted online.
The database design is detailed in further sections.
2.4.3 Database Design
The database E-R model is as shown in Figure 2.
has
Student
Skills
Appli
es for
Applicatio
Job
Figure 2: E-R Model of the Database
20
Spring 2008
BUZZing Space
The schema diagram of the database is as shown in Figure 3.
STUDENT
STUD_SKILL
S
JOB
Job_Id
Username
Username
Manage
r
JOB_APPLICATION
Job_type_desi
red
Departmen
t
Password
Prog_lang_kno
wn
Job_typ
e
Skills_Desir
ed
Job_Id
Specific_skill
s
Hourly_P
ay
Certification
No_of_position
s
Username
Figure 3: Database Schema Diagram
2.4.4 Workflow
The application work flow is as follows:
1. A student adds the Job Search application to his/her profile on Buzzing Space.
2. During registration, the student enters profile data in the application form. The various data
collected are:
a) Job type desired
b) Specific Skills and Certifications
c) Programming Languages Known
d) An optional resume
21
Spring 2008
BUZZing Space
3. The student then clicks on ‘Submit’ and waits for automated profile matching for jobs.
4. Whenever the student logs into the system anew, he/she can view new job postings matching
their profile by clicking on the Job Search application tab.
5. If the student likes the job posting, they can click on an apply checkbox and submit. This will
automatically create an application for the job in the system.
For Job Providers:
1. The provider adds a job description entry on a job entry form.
2. The provider has to wait for automated job applications from the students.
3. The provider can then respond to selective applications.
3. Conclusion
We have designed and implemented the social networking application 'BUZZing Space' for Georgia
Tech. The main features include community forums, job finder, photo sharing and car pooling. All these
features embedded together, binds the GATech members with each other. It identifies the large
amount of information flowing around the campus and makes best use of it through various ways as
mentioned above. In the future, we would like to deploy this application on the GATech Servers with
some more added features integrated such as where am I, shortest route between two places, news
from various departments,etc.
22
Download