Key Information

Register
Submit
The challenge is finished.

Challenge Overview

INTRODUCTION
This is the next challenge in a series to develop an iPhone app for Cardinal Health which allows users to virtually fill a “change jar” with ideas of changes they will make in their lives, or in the lives of someone they know. This challenge will focus on integrating social user authentication via AWS Cognito.

REQUIREMENTS
Make the updates/changes to the following screens/functionality in the existing app.

Settings Screen
-- Remove the email field and related functionality/logic

-- Do not display on first launch of the app
-- If logged in - display the user’s name (or user id) and authentication mechanism
-- If not logged in - display image buttons for available services which direct the user to authenticate via the selected service.
-- Display this screen if a user attempts to submit a new Action and is not authenticated
    -- Continue the action POST following successful authentication
-- The app should maintain the authentication token for the lifecycle of the session
    -- If the token has expired, the user will need to re-authenticate

Submit Action
-- Submitting an action will now require user authentication (no longer using an email address)
-- The authentication mechanism used (Facebook, Twitter or Google) as well as the service’s user identifer must be passed with the POST of a new action

My Actions
-- A user must be authenticated to see their own actions
-- Use the authentication mechanism (AuthSource) and service user id to determine the user’s actions
    -- This helps to distinguish between users with similar names/user ids across services

New Actions
-- All Actions displayed in this view must be accessible to all users regardless of authentication status
-- This also includes the count on the notification indicator in the navigation area

All Actions
-- All Actions displayed in this view must be accessible to all users regardless of authentication status

Search
-- Search results should be based upon the Action title and content (if not already)

Cognito Resources
https://aws.amazon.com/cognito
http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html
https://docs.aws.amazon.com/cognito/devguide/identity/external-providers

Add settings for the Cognito Identity Pool ID and Region to the app so it can easily be configured for production use.

Screen References

screens1.pngscreens2.png

SETUP
-- See the challenge forums for details on adding yourself to the GitLab group if you are not already a member
-- Fork the mobile-change-jar repository and work off of the tc_challenge_5 branch
-- Add harrywynn as a member of your forked repository with Reporter access



Final Submission Guidelines

-- All code should be written in Swift and be well commented
-- Code must compile with Xcode 7 against iOS SDK 9.2, deployment target of iOS 8.0
-- Develop for iPhone size classes, with orientation locked to portrait
-- Use storyboards for all views and navigation
-- All storyboards/strings should be implemented with localization support
-- Use Core Data for local device storage
-- Upload your source project as a zip
-- User with the winning submission will be required to do a merge request in Gitlab

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30051846