Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Project Overview

Based on the recently-released SDK, emulator, and example app provided by Nymi, and using an API public key that we provide, build a very simple iOS (iPhone5+) application that discovers and validates a Nymi device.  The result should be to display the derived Nymi profile ID on the screen.  This is an initial prototype based on existing code base - we just want to get a minimal application built, using the emulator.

Wait, what's a Nymi you ask?  From their site: "The Nymi is a wristband that authenticates the identity of the wearer. It uses cardiac rhythm as a biometric identifier, much like a fingerprint."  Brivo Labs intends to use the Nymi band as a way of authenticating a user so they access and interact with physical spaces through the SAM API.

Competition Task Overview

For this challenge, we'll build a minimal application based the provided Randivoo NymiValidator code base:

  • The User Interface for this iOS can be extremely minimal, just enough to perform the validation. But it must be based on the provided code base.
  • Check our previous challenge that built a minimal provision app, we'll also provide the code in challenge forum for your reference
  • Get the latest SDK from and emulator from challenge forum, note this is not the public version!
  • See this page for an overview of the "Validating" operation, and see concept diagram in the challenge forum (bottom part) specifically for this contest
  • Nymi provides a sample application that you may use as a starting point (see the "Examples" directory in the SDK download from nymi)
  • We will provide a public key in the forum, and you will be responsible for hosting this somewhere (dropbox, S3, etc) for the application to fetch it over HTTPS.

More Details

Please take the provide Randivoo Kiosk code (randivoo_NymiValidator_e6cdc18.zip) and Nymi examples and use the latest Nymi SDK to discover and validate Nymis that are already provisioned. The result for this version is to simply display the Nymi Profile ID in a little text area in the bottom right of the screen.

Envision the kiosk displaying its home screen (Check in / Check out buttons). The discover nymi call will only be active on this screen. When a valid nymi approaches, in the bottom right you see a label pop up with "Nymi Profile ID: <id number>"

More info on that flow can be found in the diagram mockup_NymiBrivoGoRandivoo.png

You will also need to call the Signning service in SAM during the validate process to sign a nonce value. The "/nymi/sign" SAM service is used so that the private key used for signing can remain safely on the SAM server and not distributed to the mobile app. But the signing is an essential part of the validation process.

Here is a POSTMAN screenshot of the call to the signing service on SAM
http://screencast.com/t/uEhZYaGzY0HT

Randivoo already handles communication with SAM, and so that can be used as a guide for this new /nymi/sign call. (Same Oauth, headers, etc).

Timeline

This challenge has shorter submission / review / appeals timeline so make sure you pay attention to these!

Technology Overview

  • iOS
  • SAM
  • Nymi

Documentation Provided

Register to download documents from challenge forum.



Final Submission Guidelines

Submission Deliverables

  • Provide functioning iOS source code and any instructions (written or video) needed to run it with the Nymi emulator

Final Submission

For each member, the final submission should be uploaded to the Online Review Tool.

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30045582