Challenge Overview

Build an iOS app (optimized for the iPad), that will read a QR code, parse the data, and post a chatter message via the salesforce Chatter API.  Use the Salesforce mobile SDK (https://developer.salesforce.com/page/Mobile_SDK).  Native or Hybrid are both acceptable, but the QR scanning experience must be fast and stable.

We are providing an HTML mockup of a previous, similar app from which you can base the look and feel of the app.  But, you will be responsible for generating a modified user interface that includes QR scanning instead of reading characters from a bluetooth device.

The QR code data consists of four fields, separated by double tildas.

First Name Last Name~~Company~~Lead/ContactID~~Owner User

concrete example:

Bobby Banana~~Acme Corp.~~00350000027Wnww~~00550000002ivcO

The person's name and company are used to display the welcome message on the screen.

All oauth client IDs, etc. can be stored as build parameters.  Additionally, there should be three functional parameters that are defined at build time:

  1. Chatter Group ID
  2. Location Name
  3. Timeout period, default 5s

The chatter post should:

  1. Post to the pre-defined chatter group
  2. Mention the "owner user" from the QR code data
  3. The text should be: "@{owner user} your contact {full name} has arrived at the {Location Name}"
  4. If @{owner user} is blank, do not chatter

A log should be written after every check-in.  This should be implemened as EITHER a simple CSV file that is sync'd periodically with some cloud storage, OR a direct insert into a cloud sheet like structure.   Pre-approved platforms for this: Smartsheet, Google Apps/drive, Dropbox.  Data should include:

  1. date/time
  2. ALL data parsed from the QR code
  3. Location Name

Application Flow:

  1. The default state of the app should be in "QR scanning" mode.  Use the camera facing the user, and display the live feed on the screen, with an indication of where the qr code should be positioned.  Use your creativity and best practices to make this a pleasant experience.
  2. If data is successfully parsed from the QR code, then display the "welcome" message with the user's name and company
  3. In the background, send message to chatter API and save the log.
  4. Timeout after 5 seconds (make the duration configurable), and include a non-intrusive "countdown timer" to show the user when they will be directed back to the scanning screen
  5. If there is an error parsing the code, display a simple error message instead of step #2 above, and omit #3

You are responsible for obtaining your own salesforce dev org (free) in order to test with the Chatter API.  You are also responsible for your own google, dropbox or smartsheet for your testing.  A sample qr code is attached (PNG file), but you'll have to deal with the fact that the userID won't exist in your salesforce dev org.



Final Submission Guidelines

Provide an xcode project

Instructions document or readme file

ELIGIBLE EVENTS:

2015 topcoder Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30046132