The midterm election for 2014 will be a historic low turn-out voter. It is due in part because the communication vehicle is as old as politic itself. It is in analogous to a sales person using a typewriter to create his sales pitch. Politicians, from local school board race, to state senate race, to national senate race and to presidential race, desperately need a mobile campaign app that reaches "Generation X" and "Millennials Generation".

PoliForce build on the unbreakable Salesforce.com cloud sets the gold standard for a political campaign mobile app.

The strategy has 3 parts: (1) the PoliForce mobile app for iOS and Android build as a hybrid app with HTML5, CSS3, Jquery, Twitter Bootstrap, and the newly code book-engine. It will use Force.com to compile and deploy the app. One of the key strategy for using hybrid is the flexibility and adoption of HTML5/CSS3 on mobile devices for viewing video, audio and animation to spice up the display page.

(2) The "data" are store on Force.com cloud, so update the Hillary campaign app, or any other candidate campaign app, are easily and securely update.

(3) Use the Force.com desk top app for entering the "data". Furthermore, the data-entry app can be release as a separate iOS and Android App for candidate's campaign manager to use. The analytic tracking is include in this data-entry, data-management app.

That is the strategy, but I can only complete on the book-engine code. In other words, there are a lot of code but not much UI to show, but I am super happy with the coding done in the past two days.

The architecture of the PoliForce is elegant and powerful, therefore, I will continue to work on it after this hackathon. It should take about 1 more month to complete all 3 parts.

The PoliForce's book-engine MVC model is as follow.

When we start at a screen/object [a page concept] it will invokes the "refreshView()" which call the "getHtmlView()". The right-sibling page will call its own "refreshView()", "unbindControl(), and "refreshData()". The right-right-sibling page will call its "releaseData()" and "releaseView()" which remove it from the DOM.

Similar code on the left-sibling and the left-left-sibling.

Once the page is trigger on "enterView()" which "slide" into view,and do "bindControl" which trigger "startAnimation()" and/or auto "startAudio()" and/or auto "startVideo()".

The completed class are: s6b-auth.js s6b-controller.js s6b.extention-lib.js s6b-init-app.js s6b-mobile-util.js s6b-model-book.js s6b-model-template.js s6b-model.js s6b-view.js

The code is clean and fully self-document.

Share this project:

Updates