Hercules MyMedia iOS App - Backend library updates for new service calls and data entities

Key Information

Register
Submit
The challenge is finished.

Challenge Overview

The Hercules Personal Content DVR application is a stand-alone iOS app, allowing users to upload their own video content they recorded on their phone or tablet camera into their DVR for playback on their TV and syncing with other devices.

A new backend library is being developed in the application.  This assembly will move the existing library out of it's existing project into a new project and will add in some new calls for new API methods and data entities that have been added to the backend services, along with some unit tests for those new calls.

No UI work will be done as part of this assembly.  A new UI will be integrated to work with this new library, but that is out of scope for this assembly.

Code:

The existing code is in the forum for just the backend library.  If you want access to the full codebase of the existing app, which you shouldn't necessarily need for this assembly, please let me know.

New services

There are new data entities and services in the backend API.  The documentation for the backend API can be found here:

http://docs-ugc.comcast.net

We are going to add the following operations to the UgcAPI class:
 

  • Get all tags
  • Get a single tag
  • Create a new tag
  • Update an existing tag
  • Delete a tag
  • Add a tag to a file (see operation under "files")
  • Remove a tag from a file (see operation under "files")
  • Share a file with other users
  • Remove files shared with other sues
  • Get all shared file

In addition, we need to support these new data entities in the code:

  • ExifData (referenced as a property from a file)
  • UserInfo (referenced as part of the sharedToUsers and sharedFromUsers properties of a file)
  • Tag
     

New properties

Make sure that the properties in the code match the properties in the API.  There are new properties for shares, tags, and exifData on the files for instance.  We want to make sure the iOS code matches the API exactly.

Unit tests
 
Unit tests are required for the new methods listed above only.  Please make sure to cover success and failure cases as best you can.  
 
Deliverables:
 
  • Updated XCode project with new code and unit tests
  • Deployment guide
     


Final Submission Guidelines

Please see above

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30046810