Challenge Overview
Overview
My Media Share currently allows uploading of photos which will simultaneously show in the user's TV
and be saved to their XCloud.
This contest will expand that functionality to include videos. Videos being large, will make use
of a multi-part upload. The multi-part upload must break the video file into multiple parts and
upload them separately through the client's API. The API is detailed here:
http://162.150.10.54:8080/ugc-api-docs/ and examples of correct usage will be found in the code
you will be enhancing.
Task Overview
Your code must:
- Detect that a file being uploaded is a video. All videos will be in mp4 format.
- Break the file up into pieces of no more than 10M each.
- Using OAuth and REST calls as shown in the existing code to execute mutiple calls to /media/files/{fileguid} as shown in the documentation here: http://162.150.10.54:8080/ugc-api-docs/#!/media/uploadPart to upload the entire file part by part.
- When all parts have been uploaded call /uploads/complete as shown here: http://162.150.10.54:8080/ugc-api-docs/#!/uploads/completeUpload
- The existing code has messages to the user telling them when a photo is being saved and when it is completely saved. Similar messages must be presented to the user for videos.
Verify Upload Result
In order to verify if upload succeeds, you'll need to use the My Media Apps (either Android or
iOS) and login with corresponding accounts to see if the photo is there.
We'll provide the mapping from AuthGuids to the accounts in the challenge forum.
Final Submission Guidelines
Security
Do not put OAuth details / credentials as plain text in Javascript code, instead we should try
to keep this encrypted and/or invisible from users of the web pages so they won't be able to use
these and modify other's data.
Errors
Please produce meaningful logs for errors, especially errors during upload so we can easily see
what's wrong when upload fails.
Testing
You need to provide manual demos to verify your implementation.
Installation
Provide installation instructions including a list of all packages that must be added to node.js.
Additionally, this app will run on ubuntu 14.04 in production. If any ubuntu packages need to be
installed include instructions for these.