azoff/verbatim — pull request #52 by azoff (2014-04-15 08:49:45+00:00)
Title: Canonical Sources + Web-Based Caption Editor

Closes #30

Synopsis
------------
This patch allows users to be the canonical source for a venue. To do so, one need only to log into our [brand new online editor][1] and start typing away. Captions are then sent to the user's PubSub channel using [the same logic in the app][3].

Screenshot
---------------
![screenshot][16]

Technical | Web Client
-----------------------------
This feat of modern engineering was accomplished using several platforms and tools:
- The [site itself][1] is hosted using [github pages][4]
- As a result, you can find the source code for the site in [the gh-pages branch][5]
- The site is built using [jekyll][6]; build instructions can be found in [the readme][7]
- Foursquare integration was done using [a modified version][8] of [Marelle][9]
- Caption creation was done using [Parse Cloud Functions][10] and the [Parse JS SDK][11]
- Literally, all the logic for the editor can be found in [the app controller][12] and [the cloud code definition file][13]. You can also view [the cloud code file on parse][14]

Technical | Mobile App
-----------------------------
There were only two changes made to the mobile app:
- Addition of a VBUser `canonical` property, to demarcate whether or not the user is signed in via an editor. It's important to note that I have [some cleanup work][2] to do after this is merged.
- Changed all of the Parse model objects to prefix with "VB". The rationale was that the Parse JS SDK [assigns "User" objects ACL permissions][15]. By prefixing all our models, parse doesn't treat them any differently. This is a security vulnerability on our side, but one that we shouldn't care about right now :)

[1]:http://azoff.github.io/verbatim
[2]:https://github.com/azoff/verbatim/issues/51
[3]:https://github.com/azoff/verbatim/blob/master/verbatim/core/VBPubSub.m#L78
[4]:https://pages.github.com/
[5]:https://github.com/azoff/verbatim/tree/gh-pages
[6]:http://jekyllrb.com/
[7]:https://github.com/azoff/verbatim/blob/gh-pages/README.md
[8]:https://github.com/azoff/verbatim/blob/gh-pages/js/lib/marelle.min.js
[9]:https://github.com/praized/marelle
[10]:https://parse.com/docs/cloud_code_guide?language=JavaScript#functions
[11]:https://parse.com/docs/js_guide#cloudfunctions
[12]:https://github.com/azoff/verbatim/blob/gh-pages/js/app.js
[13]:https://github.com/azoff/verbatim/blob/gh-pages/parse/cloud/main.js
[14]:https://www.parse.com/apps/verbatim/cloud_code/script/main.js
[15]:https://parse.com/docs/js_guide#users-security
[16]:http://f.cl.ly/items/3I2G2A0k0w2g1r3U3k1w/Image%202014-04-15%20at%201.27.21%20AM.png