Introduction
This is an introductory page about the "Individual Systems Practical" assignment.
The topic of the assignment is "Real Time Canvas", and it concerns ways and techniques for creating webapps which support real time communication and interaction among the users of the application.
What follows is a synopsis on the real-time concept in the web and the technologies which will be explored, as well as a few thoughts and directios with regards to future development of this platform.
Synopsis
For the scope of this assignment, a real time communication interface will be built on top of a minimal, web-based implementation of the Pictionary game, where the players will be interacting with each other by means of a canvas, which will be showing what the drawer draws in real time, and input fields which will propagate the guesses to the other players and the drawer.
Tools and libraries that will be used:
- Node.js for the server-side logic
- Express.js framework for structuring the app
- Socket.io for the real-time communication infrastructure
- Jade templating language for defining the layout
- JQuery for client-side DOM manipulation
- Twitter's Bootstrap for wrapping the layout with basic CSS
- Heroku cloud services for hosting the application demo
Future Work
Real time interfaces in the web offer noumerous application potentials, for various types of distributed applications and (web)services. A few examples are mentioned below:
- Web-based board games: following the same implementation philosophy of my project, all types of board games (turn-based or concurrently playable) whose rules can be implemented through message-passing between the players, can now be implemented in the browser, in a native way, without third-party plugins or software required from the user's side and with complete transparency of what the nature of the server is.
- Streaming API's: such interfaces enforce distribution of information in real time and to multiple users at once, which is the quintessence of a streaming API. Thus, in a web-based real time environment, we have the possibility to implement such API's with a very administrator-frienldy and lightweight server infrastructure, capable of handling distribution, concurrency and data volume issues with good performance.