Drop unused controller action and view.
Tweaks.
Adds plumbing for file upload to S3.
basic file upload with carrierwave direct
vendor dropzone.js js library
extract secret key base to the environment
add restforce gem
use canvas request decode from restforce

Also store needed context required across pages into the users encrypted
cookie session. Space is limited however and a better solution for
production environments could be to use the rails cache store backed by
redis or memcache.
remove dropzone.js
add resque
add basic job to process file
update the salesforce record
rename canvas_controller#post to boot
extract context method into concern
extract canvas context and split up canvas controller
remove canvas page parameters from global user state

Using cookie store for the canvas 'parameters', means if the user opens
another tab with different 'parameters' it will corrupt the page
specific state. Only store global user state, and rely on sending around
the canvas parameters encoded in the url.
add mini magick for image processing
stub parameters in canvas spec
add watermark to file processing
upload file in background with progress