Frameworks & Libraries - UofM-COMP4350-4/NBGI GitHub Wiki
Server
- Node.js - For the main server language; js-based, with many applicable libraries (http://nodejs.org/)
- Socket.IO - For live realtime connections between the server and clients (http://socket.io/)
- Restify - For providing easy RESTful APIs separate from the socket-based communication (http://mcavage.me/node-restify/)
- Ecstatic - If we decide against using Restify, Ecstatic can alternatively provide us with static page serving on port 80 for deploying the webapp. (https://github.com/jesusabdullah/node-ecstatic)
- Passport - User authentication library with support for local, Google-based, and Facebook-based authentication (http://passportjs.org/)
- Mocha - Simple flexible library for easy and automated testing (http://visionmedia.github.io/mocha/)
Server Database Options
Still need to decide on something. Possible options:
- Plain SQL along with the flat-file storage
- CouchDB (http://couchdb.apache.org/)
- Mongodb (https://github.com/mongodb/node-mongodb-native)
- Mongoose ODM - which is a convenience wrapper around MongoDB (http://mongoosejs.com/)
- Redis (http://redis.io/)
Webapp Client
- EnyoJS - Cross-platform scalable modular web client framework which can me arranged in MVC, and uses a lot of the concepts Zapp has mentioned thus far (singletons, factory machine, interfaces, etc.) (http://enyojs.com/)
- Socket.IO - Same as mentioned from the server section; provides 2-way communication with the server (http://socket.io/)
- OSG.JS - OpenSceneGraph WebGL-based port for use with the Chess game (http://osgjs.org/)
- IEWebGL - WebGL support plugin for IE 7-10, for IE-compatibility with the Chess game (http://iewebgl.com/)
- Mocha - Simple flexible library for easy and automated testing in-browser, with PhantomJS, or with Selenium (http://visionmedia.github.io/mocha/)
iOS iPad Client
- Socket.IO iOS - iOS library for using Socket.IO 2-way connections (https://github.com/pkyeck/socket.IO-objc)
- OpenSceneGraph - Library for 3D modelling for the Chess (http://www.openscenegraph.org)