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.
- 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
- Require Js - implement AMD
- Knockout Js - implement MVVM
- Jquery Mobile with markup generated by Codiqa UI - implement SPA
- nowjs running inside Node.js - implement realtime webserver
- mongoDB with the node-mongodb-native driver - implement persistence
- Cordova/Phonegap - target 99% devices
- Lodash - implement model projections
- Jasmine - implement Unit Testing
- 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
- 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