Key Information

Register
Submit
Status: ‌Cancelled zero submissions

Challenge Overview

1.0    Project Overview

In this project, we have built Randivoo Mobile (RM) iPhone app that uses Bluetooth Low Energy (BLE) to interact with iBeacons (http://en.wikipedia.org/wiki/IBeacon). When someone walks toward a door that is equipped with an Estimote beacon (http://estimote.com), his/her iPhone will receive signals from the beacon and send out a command to open the door. This part has already been finished. The next step is to add functionalities to the app so that it can interact with smartwatches such as Pebble Watch (https://getpebble.com/).

1.1    Competition Task Overview

In this contest, we will add functionalities to the existing app, so that it can interact with Pebble Watch. The remaining part of the app should be left untouched, and all the existing functions should work as they are now. There will be no UI changes in the contest. The details are listed below. The existing code and account information can be found in the contest forum.

1.1.1   Integrate the Pebble SDK

In this contest, you will need to integrate the Pebble SDK for iOS (https://developer.getpebble.com/). Since you may not have a Pebble Watch, it is not required to do testing. You just need to follow the developers' guide and add the relevant code. The usage of the framework can be found here. The testing will be done in final fixes, and the winner will need to help with the final integration.

1.1.2   Push Notification

In this contest, we will need to use push notification to communicate between different phones. We current do not have a push notification server for you to use, so you may use PubNub (http://www.pubnub.com/) to send push notifications. It has 30 days free trial, which should be enough for this contest. If you want to use other ways to send push notifications, please post in the forum or contact the copilot to confirm.

1.1.3   Two Modes

The app will have two different modes depending on which type of account is used to login. If the user logs in as a normal user, the app should function in visitor mode. If the user logs in as an admin, the app should function in sponsor mode.

1.1.3.1   Visitor Mode

In visitor mode, if the phone gets close to a known beacon (the distance should be configurable), which has a door assigned to it, the app should send a push notification to the sponsor. This should be done in the background. The push notification should include some information for the sponsor to identify the visitor and the door to be opened. The functions to setup beacons already work in the current app. You will need to login as admin, find the beacon in the radar, and activate the beacon. (After this is done, you will need to logout and login as a visitor to test the visitor mode.)

1.1.3.2   Sponsor Mode

In sponsor mode, if the phone gets a push notification (in foreground or background mode), the app should connect to the Pebble Watch and send a message through the Pebble iOS framework. This should be done in the background, and you may use application:didReceiveRemoteNotification:fetchCompletionHandler: to achieve this when the app is inactive.

After the message is sent, the app should wait for a response for up to 30 seconds (that is how long the application:didReceiveRemoteNotification:fetchCompletionHandler: delegate can wait). If the message is "NO", or if there is no message received for 30 seconds, just disconnect from the Pebble Watch. If the message is "YES", the app should call an API to open the door (the implementation already exists in OpenDoorViewController.m), send a push notification back to the visitor to inform him/her that "Door is opened", and then disconnect from the Pebble Watch.

1.1.4   Deployment Guide

The deployment guide should be detailed enough so that reviewers can easily follow the steps to test your submission (including sending push notifications).



Final Submission Guidelines

1. All source code. 2. Deployment guide

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30042091