TABLE OF CONTENTS (HIDE)

Webapp Terminologies

Server-Side

Node.js

JavaScripts typically run under a web browser (such as Chrome, Firefox). Node.js is a JavaScript engine that allows you to run JavaScript in standalone manner, without using a browser.

Node.js can also be used as a web server. This is popular because you can use the same JavaScript language to program the client as well as the server.

Databases

[TODO]

Client-Side

HTML/CSS/JavaScript

HTML (Hypertext Markup Language), CSS (Cascading Style Sheet) and JavaScript form the back bone of client-side programming - HTML for the contents, CSS for the layout, and JavaScript for the behavior and Logic.

Ajax

[TODO]

jQuery

jQuery (@ http://jquery.com) is a JavaScript Library. It is a small script (about 96kB minified) written in JavaScript called "jquery.js", which greatly simplifies JavaScript programming by providing cross-browser supports for DOM elements selection and manipulation, event handling, Ajax request/response processing and animation.

jQuery is highly popular. In May 2015, JQuery is used by 64.2% of all the websites. Among the JavaScript libraries/frameworks, jQuery's market share is 95.2% (Ref: http://w3techs.com/technologies/overview/javascript_library/all). In other words, most of the developers nowadays program in jQuery, rather than raw JavaScript.

AngularJS

AngularJS is a client-side JavaScript MVC (Model-View-Controller) Framework (like backbone.js and ember.js), which helps you to organize your JavaScripts in MVC manner.

AngularJS is meant to replace jQuery, which is simply a JavaScript library.

Architectures and Design Patterns

RESTful Web Services

REST (Representational State Transfer) is a Web Service architecture (like SOAP). In term of implementation, it uses Ajax to send an asynchronous HTTP GET or POST request to the server, and receives the response as an object typically represented in JSON.

MVC (Model-View-Controller)

MVC is an architectural design pattern that clearly separates the Model (Data), View (UI or Presentation), and Controller (Business Logic).

The model is the backbone of the application, which is generally the data behind the application, usually fetched from the server. The view is the UI that the users see and interacts with. The controller is the business logic, such as fetching and processing data (model), and send the data to the UI (view).

SPA (Single Page Application)

SPA is an architectural design pattern specifying the user experience to be achieved in which the web page should never be refreshed but only data is queried and returned throughout the interaction sequence of the user with the application. In practice, we use Ajax to send an asynchronous HTTP GET or POST request to the server, and update the appropriate portion of the web page based on the response received.

SPAs are applications that have one entry HTML page (e.g., index.html); all the application content is dynamically added to and removed from that one page.

Data-Exchange Format

JSON (JavaScript Object Notation)

JSON (@ http://json.org/) is a data format. JSON is similar to XML but smaller and lighter than XML. JSON is a lightweight, text-based, human-readable format for data-interchange. JSON format is based on JavaScript Object (and Array) syntaxes, hence, called JavaScript Object Notation. For example,

{ "students": [
    {"firstName":"Paul",  "lastName":"Lee"},
    {"firstName":"John",  "lastName":"Smith"},
    {"firstName":"Mary", "lastName":"Jones"}
]}

REFERENCES & RESOURCES