SOLID MVVM AMD Real Time jQueryMobile SPA
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
client
database
installation
planning
qa
server
.gitattributes
.gitignore
LICENSE
README.md

README.md

The SmartJs Realtime Mobile Application Framework

SmartJs is a recursive acronym that stands for

SOLID MVVM AMD Real Time jQueryMobile SPA

What's that mean? I have a website that attempts to explain it.

Patterns and Practices

  • SPA - Single Page Application
  • MVVM - Model View ViewModel
  • Module - Independent components with no shims or globals
  • SRP - Single Responsibility Principle
  • OCP - Open/Closed Principle
  • DI/IOC - Dependency Injection / Inversion of Control
  • Pub/Sub - Publisher Subscriber pattern
  • Virtual Pub/Sub - crosses device boundaries throughout connected system

Technologies

Demo App Features

  • Realtime chatrooms
  • Dynamic memberlist
  • Persistent topics
  • Realtime feedback on chat room member list
  • Event based: Client to Server, Server to Client, Client to Client, Client to Group, Server to Group
  • Segregate network traffic into subscriber groups
  • Virtual event pub/sub
  • Queueing network events in case of latency/unavailability of server
  • Persistent local device member
  • Implement 100% height jQuery mobile view as Amd module
  • Implement Js "Schema" module to prevent fragmentation of data model
  • Implement naming conventions to reliably identify dependencies
  • Client can connect to a different Server technology with 1 file change
  • Narrow Client/Server interface consisting of only 2 extensible functions, implements OCP
  • Knockout binding helper to keep jQueryMobile listview refreshed, separates View concerns from ViewModel
  • Facade pattern for improved Pubsub traffic logging
  • Facade pattern for intuitive localStorage interface
  • Facade pattern for logging to console if config.isTest
  • Enterprise ready starter project, easy to customize or build upon
  • Free license, anybody can use and contribute

Todo

  • Security - Oath
  • Social - Implement Hackbook as AMD module
  • Improve validation
  • Improve UI
  • Demonstrate Client to Client PM feature
  • Demonstrate Phonegap API around a device feature, probaby camera, so implement chat room picture feature
  • More unit testing

See the full TODO.md checked into the github project