EECE 451 Project Description, Spring 2016

American University of Beirut · Mobile Networks and Applications · 2 pages

All EECE 451 files
EECE 451 Project Description, Spring 2016, page 1

Stuck on a question? A tutor can walk you through it.

EECE 451 Project Description, Spring 2016, page 2

More EECE 451 files

Show the text of this project
EECE 451 – Mobile Networks and Applications Spring 2015-2016 Application Project Requirements Objective: Design and Implement a Mobile Application (Android or IOS) with communications capabilities. Application Capabilities: • Checks the connectivity state of various networking protocols on the device (Bluetooth, cellular, and WiFi) and displays their status. • Detects devices with Wi-Fi P2P enabled and displays related info about them. • The phone has to identify itself, using a MAC address or a phone number. The phone number can be obtained programmatically through the application itself, or interactively through an option menu provided to the user. More points will be awarded for the approach with automatic retrieval of the phone number. • Lists in a Grid the set of previously detected devices along with associated information (latest time of detection within a configurable time frame). Allow for the ability of sorting the entries by one of the columns. • When the phone detects a device, it keeps track of the length of detection (i.e., time range), and stores this information locally (deviceID, last time of detection, and last time range). It also keeps track of the number of times it detected this device, and the cumulative duration of detection (i.e., including current and all past detection events). Also, when a device is detected for the first time, give the user a change to tag it with a descriptive name, and so afterwards, refer to these devices through the user interface using that name. • Have each device send any new information it gathers about detected other devices to a root server. The server will therefore contain records about each device and its neighborhood history. • The server will therefore: o Collect “device neighborhood” information from the various mobile devices in the network (device name, date and time of last detection, frequency of detection, and cumulative time of detection). You will need to design the communication protocol between the server and the phone. o Runs an algorithm that creates a graph that connects all the devices in accordance with the information they sent. Each vertex (node) in the graph must have a label (name of mobile device, if available; else its id), and each edge (link) must have a pair of weights: (frequency of connectivity, cumulative duration). The graph is generated upon a request from a mobile user (mobile device), and should be generated in accordance with the following parameters: § Date/Time range: This has to do with generating a graph of the devices that connected to each other between March 1, 2016; 8:00AN and March 10, 2016; 4:00pm. § Concerned devices: Specifies one device, which will create a star graph for all devices that connected to the specified device; or all, in which case the graph will include all the devices in the server. § Extra: this is up to you to define (if you can think of one or more additional parameters). An example is a geographic location. You will gain additional points for such an option. o Allow the server to cache previously created graphs, so that when a graph is requested by a given user, the server can serve the cached graph if no new neighborhood information have been sent by phones. • Moreover, enable users when they register with the server to receive graph update notifications. If a user has turn on the notification option, whenever any other user has asked the server to generate a graph, the server will send a notification through an SMS message natively (from within this application, not through any other default SMS app) to all phones that turned on the notification option. • Once you have completed the development, move around with your phone so that it collects and sends to the server a non-trivial number of connection events. You will get additional points if you show through your results how connections increase within given times (e.g., breaks between classes) and in particular locations (e.g., in front of College Hall). Evaluation and Grading: Given the level of proficiency of Android programming among the group members, a group may fully implement some of the above requested capabilities, all of them, or add more capabilities that serve the same theme (“Device neighborhood Information Management”). A “perfect” grade is however based on accomplishing all of the above objectives. Due Dates: • A progress report is due on April 14 (to be uploaded to Moodle) - a demo may be requested to show progress. • The project code is due on May 8 (to be uploaded to Moodle), and a demonstration is required on May 9 (all project members are required to participate, explain the details of their contributions, and answer questions about the code).