Skip to content

Latest commit

 

History

History
65 lines (58 loc) · 2.84 KB

README.md

File metadata and controls

65 lines (58 loc) · 2.84 KB

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