Fuse Day 2013 - LiveCast v0.2

Our goal, in the Javascript group, for this Fuse Day was to get our hands dirty with a bunch of javascript technologies for end-to-end application development. The application is a remote teaching & presentation tool where a single "session owner" shares a code editor, canvas, presentation and more with other connected peers (i.e.. students). Our first run at this project during the previous fuse day focused on utilizing Web RTC (Real Time Communication) so the session owner and students could see each other. For this Fuse Day we decided to start from scratch so we can focus on the the current technologies instead of fixing old bugs.

We divided the project to 3 sub projects: Server, Client, UI/UX

Server 

The server is responsible for authenticating the users, delegating the messages between the peers and storing session information. We used the following NodeJS based Technologies and frameworks:

  • Architect - a framework to keep the different modules structured and loosely coupled.
  • Socket.IO - a framework for real time socket based client-server-client communication

To keep the server scalable we avoided from saving any state information in memory - so we threw a Redis server into the mix. Redis was chosen for it's speed and simplicity.

Client

The client is a single page application. As mentioned, it uses AngularJS as it's MV* framework.

UI/UX

The UI/UX part was to define and apply the applications layout and styling. We used basic Bootstrap styles. In the future we will want to use AngularUI for the styling.

 

Other Stuff Worth Mentioning

Grunt

We also wanted to get a taste of modern development and deployment processes so we used Grunt as a basis for the development/build/deployment tool. We started off with a pretty thorough boiler-plate

Tests

On the server side we used Jasmine-Node run by Grunt with the grunt-jasmine-node plugin.

 

Conclusion

The fused Day was very productive and we all got a chance to get a lot of real experience with relatively cutting edge technologies and frameworks. Our project is not yet complete but we have plenty to work with in the near future.

The project is stored @ https://github.com/tikalk/LiveCast

 

 

Javascript Architect

Frontend Group