CALBUDDY- A CALENDAR AND LOCATION SERVICES BASED SOCIAL NETWORK AIAD 8803 FINAL PROJECT REPORT GROUP MEMBERS- (GROUP 8) NISARG KADAKIA SAURIN KADAKIA ROHIT KUMBHAR ANKIT SHAH OBJECTIVES: In today's world, people operate in a more hectic and pressured environment than ever before. Additional demands are being placed on their competence, cooperation skills, cooperation volume and overall efficiency, at the same time as personal assistants and personal secretaries are becoming a rare species even in the highest ranks of management. The main drawback of a PC based calendar is the apparent lack of mobility. In an organization, the mobile needs of the users have been poorly catered to; for e.g. print-outs from the calendar system or traditional paper calendars, which must then be manually synchronized to the groupware calendar when back at the desktop. In our project we have incorporated a shared calendar which can be accessed via a mobile or a computer and can be shared amongst friends. E.g. a PDA might be used while in meetings, a desktop PC while in the office and a mobile phone during leisure time. Also, this serves to eliminate the problem of using multiple parallel calendars and suffering from missed appointments and double bookings due to it. Calbuddy extracts events from the calendars of you and your friends. Then, it mines the data from the events and analyzes the event venue, event date, event time and event title attributes. Based on the evaluation of these attributes, it constructs a possible meetup table. We have also integrated the concept of location based services and social networking to come up with Squeak. For e.g., let’s say Ankit goes to a restaurant at 14th Street and has Pizza which he doesn’t like. He can use the GUI in our application and enter his views about that restaurant. If his phone is GPS-enabled, he has the option of including his location else the location can be obtained from his service provider. When a person who has subscribed for location based messages enters that location, he gets the message that Ankit has left for that particular location. To conclude, the identified benefits of our project are as follows• • • • • • • Synchronization of calendars between the central server and mobile device Easy availability of future calendar over several years. Ubiquitous availability of calendar. Social networking. Extraction of calendar events for possible meetups Integration with location based services like squeak Potential commercial aspects 2 RELATED WORK: Our project is mainly inspired by Google calendars. It has made sharing and organizing of important day to day activities easy. Using Google Calendar, you can add events and invitations effortlessly, share with friends and family or keep things to yourself, and search across the web for events you might enjoy. It has been a breakthrough of sorts, gaining popularity among the masses which is clearly seen by its ever-increasing usage. Rave Wireless is another application deployed on mobile platforms. It is a turnkey mobile phone program targeted mainly at the university based audience. It includes features like alerts during emergencies to enable student/faculty to take quick action. The closest functionality that it has to our project is the formation of groups, clubs etc. It is similar in that we too allow sharing of calendars among a private community of sorts. Another interesting application deployed on mobile phones is Buddy Beacon. It implements a location-based service. It allows your GPS enabled cell phone to post your location and see the location of friends around you. This emulates our functionality of allowing users to share their locations during different parts of the day and giving alerts on possible meet-ups whilst near a friend’s location. However, integration of calendars as a web/mobile service has not been implemented before to the best of our knowledge. Applications developed have been either dedicated only as a web service or only on the mobile platforms. Hence, it is our endeavor to integrate these two platforms and provide device-independence to our users. 3 RESEARCH PROBLEMS ADDRESSED: Before starting the implementation of our project, we analyzed Google calendar and several social networking sites in detail. Then, all our group members discussed at length our views and opinions. We decided unanimously that we needed a social networking application which can integrate our calendars and improve user experience both from the calendar and the social network point of view. Thus, was born Calbuddy, a calendar cum location services based social networking application. Google calendar lets you create events and then lets you explicitly send notifications to your friends who you feel might be interested in knowing about those events. However, it does nothing more than this. What one would ideally desire is that once I enter my event in the calendar, the application would itself browse all my friends’ calendars and return those friends who plan to attend the same event. I would also appreciate if I get a message reminding me of who else if going for that event. The implications of this are phenomenal. I can then arrange for things like carpool, hooking up, etc. On the social network side, a site like Facebook does provide the facility of notifying friends about your events. But, in that as well, you might not necessarily be going to the same event and hence might find that notification insignificant from your point of view. What you would want is to receive alerts only for events that you plan to attend. Another aspect of our project is Squeak, which is a location based messaging application. Squeak lets you type messages on your GPS enabled mobile and send it to a number provided by our service. When any of your friends visits that location, he gets your squeaked message. Also, we felt the need to have the squeak available on the user’s profile for future modifications. For instance, if I initially post a squeak appreciating the quality of food available at a certain restaurant. I would want my friends to visit the restaurant and try that particular dish. However, if in the future the restaurant shuts down, I would not want my friends to receive useless squeaks about that restaurant from me. In this case, I would delete the squeak from my profile. In addition to the problems discussed above, we also focused on access control. We give the user full control of whom he wants to share his calendar with and whether or not he would like to send and receive squeaks. These options can be changed at a mere click of a mouse or are as easy as drag and drop. Lastly, we felt that any application needs to be sustainable must have some commercial value. We have incorporated location based and content based advertising as the main area of focus. To conclude, we addressed a wide range of research areas and finally came up with application-Calbuddy. 4 ARCHITECTURAL DESIGN SERVER ARCHITECTURE: 5 MOBILE CLIENT ARCHITECTURE: 6 Functional Components of Server 1) GUI a. Browser Service Interface: This enables a user to interact with the social networking site and provides various features such as registration, search friends, add friends, view matchups, access control and calendar viewing. b. Mobile Client Service Interface: This enables a user to have privacy by allowing them to keep location updates on or off. It displays the various meetups along with the date, start time and venue of event. c. Admin Interface: This interface enables the administrator to access all server-related configuration options and maintenance tasks. 2. Simple Data Management a. Social Network Manager: The social network manager handles the various issues related with social networks such as creation and deletion of profiles. b. Profile Location Service Manager: This component is responsible for locating profiles of people from the database when a search request is made through the GUI. c. Profile Calendar Service Manager: This component is used to handle the calendar service for each profile. d. Privacy Management Mechanism: This component gives full access control to the users by enabling them to set their private settings. Users can subscribe/unsubscribe to squeaks and control whether they want to share events with a friend in the social network. 3. Third Party Providers a. Location Service Providers: We intend to make use of location services provided by various cellular providers such as AT&T, Sprint, Verizon in order to give updates to friends who have GPS enabled phones when squeaks are used. b. Messaging Service: We intend to make use of location services provided by various cellular providers such as AT&T, Sprint, Verizon for messaging the validation code during registration and to send messages to various friends based on their location when squeaks are used. 7 c. Calendar Service Provider: The primary calendar service provider for Calbuddy is Google calendars. In the future we intend to extend our application by including other calendar service providers such as Microsoft Outlook and Yahoo calendars. Calbuddy will enable users to see possible meetups even if the users do not share the same calendar service provider. 4. Database We have used the MySQL database. The database schema used for the Calbuddy application is given below:- 8 5. Data Analysis a. Shared Calendar Analyzer: This component analyses the calendar data such as events, start time, end time and description for two friends and generates possible meetups for them. b. Location Data Analyzer: The location data analyzer analyses the location of a user and provides the squeak messages set by his friends for that particular location. Mobile Client Architecture 1. Mobile User Interface a. Buddy Location View: This gives us the location of a buddy with the help of location services. b. Buddy Calendar View: This gives us a view of the calendar of a buddy along with the meetups. c. Settings View: This is used to make changes to the settings of the calendar and the profile of the user. d. Calendar Query Service: This activity continuously syncs the user calendar with the main server, EVALUATION AND TESTING: Evaluation and testing will be divided into the following test cases1. Core test cases a) Creating profiles User should be able to create a profile, add other profiles as friends, create a group of friends and assign data settings to them. b) Update your location manually. User should have the capability of updating his/her location through the web interface. c) Turning off location update User should be able to turn off his/her location updates through the web interface d) User should be able to add external online calendars (e.g. Google Calendar through ICAL) to his event repository e) User should be able to create entries into the event repositories 9 f) User should be able to share his event repository with friends. g) View friends map. Overlay depicting friend position and last update timestamp. THREE MOST INTERESTING CONTRIBUTIONS 1) Our application sends alerts to only those users going to a common event and who are sharing calendars with each other. The message contains the details about the friend such as name, phone number and also event details such as venue, time, date and description. The events are displayed on the profile in a meetup section. 2) We estimate that our application will sit on a goldmine of valuable data which can be commercially exploited by potential advertisers. The advertisers can take advantage of location based data and even data extracted from event description. Let’s say that upon mining our database, we find that Cumberland mall is frequent in the event venue column. Now, if an advertiser has a shop or restaurant in that mall, next time when a user is alerted about a common event, the advertisement can be tagged along with the alert. Also, if the word coffee occurs frequently in the event description, an advertiser like starbucks, Seattle’s best coffee, etc. would be interested in advertising. Thus, it makes for a very interesting commercial proposition where we know in advance that the user would be visiting the location and accordingly the value of advertisement can be very high. 3) We propose to integrate different calendars. For the time being, our application supports Google calendar but in the future let’s say we have MSN calendar, Yahoo Calendar, etc. In such a scenario, we would ideally want to have one common application that deals with all the different types of calendars. What have you learnt through the hand-on experience of this project? Through the process of developing CalBuddy, we have gone through a thorough learning process. The project has enabled us gain insight into the design and motive behind the development of various social networks. CalBuddy is a specialized social network targeted mainly at meet-ups through calendar sharing and proposes a novel idea in this aspect, freeing the user from the tedious process of inviting guests. So, as we can see that this has also helped us exercise our mind and explore out creativity horizons. One of the major technologies learnt in the development is the new Google Android platform. Android is one of the newest technologies proposed by Google just 6 months ago. An interesting aspect of it is the ability to entirely develop the UI in xml and then provide the backend capability in java. This enhances its user interaction capability. However, we felt that Google still needs to put up some more videos and details about its usability. But with due course of time we think it will improve and be one of the widely used mobile platforms. 10 A component of out project required collecting data from the user’s Google calendar. For this we used the Gdata API. Through its usage and FAQ’s, we discovered how well documented and easy to use the API is. Right from setting up the environment to writing applications to exploit the data, Google has made it a trivial process to gain access to their data. Also, all the concepts gained in class have played a major role in making this project a reality. To sum it up, it has been an enthralling experience which has had its ups and downs but finally we have managed to get the better out of it. Concepts and techniques learnt in class that can be considered extensions to your project In class, we briefly looked at semantic annotations and lexical analysis which can be used to possibly enhance your social network via possible pattern matches. Analogous to this one extension that intuitively comes to mind is lexically and semantically analyzing the description or the title of various events in the user’s calendar and generating relevant meet-ups that semantically are the same. At the moment we do an exact comparison of the words to generate the meet-ups. However, this would give the user’s the freedom to give different titles having the same semantic meaning and still show up as possible meet-ups on their profile. Also, while studying location-based services we looked at issues involved in locationbased advertising. Although, most of these require some interaction or incentives for the users, our application removes this restriction. By annotating advertisements to squeaks, we ensure that the user does look at them since these annotations preclude some useful information for them. Hence, exploiting this idea the project can easily scale commercial standards. A main factor of its success lies in the fact that it is a social network and hence can reach out to a lot of people out there. REFERENCES: [1] Anna Sell, Pirkko Walden, " Mobile Digital Calendars: An Interview Study", Proceedings of the 39th Hawaii International Conference on System Sciences-2006. [2] http://www.ravewireless.com/campus.shtml [3] http://www.google.com/intl/en/googlecalendar/overview.html [4] http://www.ulocate.com/buddybeacon.php [5] http://citeseer.ist.psu.edu/cache/papers/cs2/545/http:zSzzSzwww.dcs.gla.ac.ukzSz~ste phenzSzpaperszSzIHMHCI2001_Walker.pdf/diary-in-the-sky.pdf [6] http://www.sci.utu.fi/projects/maantiede/kurssit/MAAN7663_GIS_and_Society/ lectures/3_navigation_121107.pdf 11