This year, the project for the fuseday (a day we're all experimenting new technologies) was a remote youtube controller application.
The idea is having an app which will functions as 2 clients:
- remote controller application - html +js based - which serves as a remote for a youtube client on another machine
- screen application - which serves as the screen app (aka slave) - it will get notifications from the remote app
node.js - we chose sails.js - an mvc framework which runs on nodejs and inspired by ruby on rails framework. sails was rather easy to follow, and since its very well structured nature, it allowed us to work separately on modular features without interrupting each other and integrating all with ease.
Also, sails.js is already bundled with socket.io, structured MVC methodology wiring, built in REST api for creation and much more (if digged in).
we chose passport.js for supporting social login to the app - so the app can connect its screen and remote instance to the current user and identify the relevant screens and remotes easily.
Along passport.js, we used the cloud based mongohq service for user management, and specifically, for saving the user's session.
We used Polymer for creating encapsulated custom elements (aka web components). Polymer really felt like angular's directive - and even took it to higher new levels.
Polymer brings good and solid methodology and a new era of development while taking into consideration good work flows such as:
- easy data binding ()
- template engine
- large ready to use ui polymers elements as well as functional elements (polymer-ajax)
- modular approach for creating modular components
Frontend Styling and Grid layout
we chose to work with zurb's Foundation 5 framework plain css. The docs are very resourceful, easy to follow examples and nice flat design as a starting point. One of its strongest points is the mobile first approach which is implemented nicely into its selector's api.
we chose to work with mongodb. eventualy, we worked with a cloud base monog hosting service - mongohq - which was quite easy to configure with sails.js
As a final note, along side grunt as a build & deployment tool, we deployed the application to the cloude service of nodejitsu. The deployment process is quite easy and saves many configuration steps which are done behind the scenes.