University of Maryland at College Park CMSC 424 Database Design Fall 2006 Application Development Project 1 Overview The GPS and wireless technologies have reached a point where it is possible to monitor the locations of people vehicles etc at a very fine granularity fairly cheaply e g some cellphones already have inbuilt GPS devices that are accessible to the user look at http www accutracking com This is already used quite heavily for vehicular applications such as cabs shuttle services UMD shuttles are scheduled to be outfitted with GPS within next year etc We will explore one such possible application in this project The main goal of this project is to design an end to end application that allows storing and interacting with the time varying location information about registered users of the system The location information is assumed to be collected using some GPS device and should be stored in the latitude longitude format The database should also store information about interesting locations e g cafes Finally a simple social network based on a symmetric friend relationship should be maintained More details on the kind of data to be stored and queries to be supported are provided below Though we will not focus on them note that there are many privacy concerns with this application that you will encounter and that you should think about You are free to change the details as long as the main functions described here are supported In case of drastic changes you might want to talk to the TA or me first The project description is intentionally somewhat vague you are free to decide what kind of interfaces to support etc 2 Data A brief description of the data that needs to be stored in the database follows People Information about the people who have agreed to be monitored This includes the information about the name home location see below work location etc GPS Information The GPS location information for the people in the database along with the times at which the readings were taken Assume that the granularity of the time is minutes Note that this does not necessarily mean the information is available for every minute1 Also historical information needs to be stored and can t be discarded 1 You may choose to make that assumption to simplify the rest of the tasks 1 Friends Information about peoples friends Assume this is a symmetric relationship Locations A location e g a cafe is a rectangular region specified using the coordinates same as the GPS information Some auxiliary information about locations e g whether it is a cafe or a parking lot etc should also be stored This information could be stored as free text or using a set of categories Home and work for each person are locations as well different for each person Each location has a unique name of some sort that could be an address Along with that a set of common locations are also stored e g a cafe Locations may be nested 3 Tasks Queries There are two sets of tasks queries that you need to support The main tasks are provided below You may choose to add and or substitute other tasks depending on the emphasis of your project For most of the tasks you should provide a web based interface The first set of tasks relates to the information that is stored in the database Insert a new location Insert information about a new location Along with GPS coordinates and other fixed information e g type of location street address web url etc it should be possible to enter arbitrary free text about the location Register for the monitoring service A new user can register to use the service Some information about the user would be collected while registering and the user also has to choose a username and password to log in Along with the password a secret passphrase should also be stored per user see below for the use of this GPS location updates We will assume that the location updates arrive at the system in XML format Here is an example of an update location update username X username latitude X latitude longitude X longitude time X time location update Write a stand alone program that will take as input one such update and insert the information into the database A web based interface is not appropriate for this task since it needs to be executed at a very high rate 2 The second set of tasks relate to the user interaction with the system Here are some of the tasks which should be provided Add friends Users can add someone as their friend if they know the username and the secret passphrase for that user this is a crude way to authenticate if you want to set up a more elaborate authentication scheme that would be fine too Where are my friends The output should be a list of the friends along with locations unknown if location information is not available or outdoors if the current location does not fall inside any known location If multiple locations match because of nesting show all of them There should be a refresh button on the results page to manually refresh the answer Browse historical data Given a period in the past list the locations names the user was at and the fractioin of time the user spent in each of the locations Make and state clearly assumptions about missing location data Search through locations Given some information about a location list all the locations that match Monitor the number of people at a given location Given a location identified by some form of unique id show the number of people currently inside that location There should be a refresh button on the results page to manually refresh the answer Look for abnormal patterns For example find pairs of people who seem to have met often and far from either person s home or work location during last week month The various parameters of the query how far from the home work locations etc should be taken as input from the user Populating the tables Populate the tables manually with sufficient tuples 10 100 each to demonstrate the functionality of the system Feel free to use made up geographic coordinates etc Actual geographic information can also be obtained from many sources For example Wikimapia http wikimapia org is a good source for such information You might be able to find real GPS traces from the web as well Extra credit There are many directions that you can explore to enhance your project for extra credit upto 20 of the project grade 4 of the total grade Some suggestions Sophisticated exposure of the location information Users might want a more fine grained
View Full Document
Unlocking...