Advantages of using Javascript
Web application technologies continue to move forward at a fast pace
using html5 and javascript that are already integrated into many
browsers with javascript engine such as V8-Chrome, Nitro-Safari,
SpiderMonkey-Firefox, Tamarin-Adobe, Chakra-IE, etc.
JavaScript is a lighweight-interpreted language that means it needs an
"interpreter". In this case, the interpreter is the web browser.
Technologies such as geolocation, local storage, canvas, webGL, web
workers, web sockects, etc rely heavily on javascript.
JavaScript standard is ECMAScript (ECMA-262 and ECMA-402). As of
2012, all modern browsers fully support the latest approved
ECMAScript Edition 5.1 (June 2011). Older browsers support at least
ECMAScript 3. A 6th major revision of the standard is being worked on.
Supported by any devices running any OSes such as desktop, tablet,
mobile with iOS, Android, Windows, Windows Mobile, Linux, etc.
Is a client side technology and moving into server side technology,
which interface thru standard http and restful web service.
End-to-end development cycle using javascript components, modules,
plugin, framework, etc. as shown in below diagram;
Frontend Interface
UI Template
KendoUI
Scripting Lang
CoffeeScript
Mobility
Cordova
Framework
Angular
KineticJS
LiveScript
HammerJS
Backbone
Ionic
TypeScript
Polymer
JavaScript
YUI
SailsJS
Knockout
ExtJS
Application Service
Server
NodeJS
Library
Handlebars
Impress
StrongLoop
Dojo
Underscore
LoopBack
jQuery
Bootstrap
RequireJS
JayData
jsChart
LeapJS
Buster
Jasmine
QUnit
Mocha
Build, Deployment and Integration
TestSwarm
Selenium
Grunt
Bower
Gulp
NightWatch
Code Quality
jsHint
jsPerf
jsFiddle
Unit Test
Karma
Protractor
jsLint
Sonar
Mostly supported and maintained by google, facebook, microsoft,
yahoo, adobe and open source community.
JavaScript language is documented in the Mozilla Developer Network
(MDN), is the official Mozilla Foundation website for development
documentation of web standards and all well-known Mozilla projects.
TPC/OHCIS requirement
- Serverless environment where each workstation is both the client and
server itself
Able to install, configure and startup remotely based on widget guide
by user
To have complete or selective features with remote auto update
capabilities
A very lightweight application server to run in standard desktop
hardware specification
To support both online and offline (outreach) mode without interruption
of services
Business logic processing at the client side to support offline mode
References
Karma is a JavaScript test-runner built with Node.js, and meant for unit
testing.
Protractor is for end-to-end testing, and uses Selenium Web Driver to drive
tests.
Both have been made by the Angular team.
Buster is a JavaScript test-runner built with Node.js, which is very modular
and flexible. It comes with it's own assertion library and support Node
testing.
TestSwarm provides distributed continuous integration testing for
JavaScript.
Jasmine is a behavior-driven development framework for testing your
JavaScript code. It does not depend on any other JavaScript frameworks. It
does not require a DOM. Is a client-side test-runner that might interest
developers familiar with Ruby or Ruby on Rails.
QUnit is a powerful, easy-to-use JavaScript unit test suite. It's used by the
jQuery, jQuery UI and jQuery Mobile projects and is capable of testing any
generic JavaScript code.
Sinon is a Standalone test spies, stubs and mocks for JavaScript. No
dependencies, works with any unit testing framework.
Selenium is a set of different software tools each with a different approach
to supporting test automation.
WebDriver is a tool for automating testing web applications, and in
particular to verify that they work as expected. It aims to provide a friendly
API that's easy to explore and understand, which will help make your tests
easier to read and maintain. It's not tied to any particular test framework, so
it can be used equally well with JUnit, TestNG or from a plain old "main"
method.