Hands-On Web Application with Javascript Frameworks and NoSQL

Why this book?

In the last few years, we came across different client side projects which were traditionally built on J2ee or other Open Source Technologies such as PHP, Ruby etc. On the other hand, the year 2013 saw increasing popularity of several javascript frameworks like Angular.js, Backbone.js which in turn gained momentum in client side development. These strong winds of change were brought about structural framework, coding and performance enhancement in development and production environment became absolutely imperative. On top of that emerging small sized projects and start-up companies have shown growing interest in adapting those new technologies.Evolving trends for storing non-structure data within repository is collectively called nosql in 2013. It is obvious that these fresh trends are clearly coming with new set of tools in software which revolve around javascript and nosql related repositories.Today javascript is not merely used for client side validation. It offers server side development for web applications along with node.js platform. In this book, we have tried to show start-up experimentation with some of these tools.

What is the aim?

The aim of this book is to show the use of some of the above mentioned tools in application and how we can start development of application with those tools. The book deals with some of the Proof-of-Concept Applications with the help of those tools. Apart from that,brief descriptions of some important aspects of these tools have also been incorporated . Being a developer from the very begining of my career, I always tried to find the codes which I can put together to generate new concepts in work. This book is a collective outcome of my efforts and experimental view with that acumen in mind. So there will be continuous updation of fresh knowledge from time to time.One personal opinion of mine is, working with new technologies like Javascript and NoSql related products is fun and I am thoroughly enjoying this phase. Also just to accompany, I am not an author but a programmer by profession; so writing things with all the theories and explanations was not my intention, rather I prefer to include practical working examples.

Who is the book for?

People with web programming backgound with javascript knowledge will find this book useful because this book is a collective knowledge source of usages of Javscript based tools and different application areas with those. The chapters of the book are explained with important aspects of the tools and covered with various coding explanations rather than just original theories. It is worth mentioning that I tried to incorporate explanations of the concepts as and when required. This book is not for beginner programmer but for the programmers with intermediate knowledge and for advanced programmers who have already known the traditional web programming with age-old J2ee, PHP, Dot net or other open source web technologies (like me..).

Content Introduction

Starting the Web Server with Javascript

Why taken here?

Node.js is a platform built on Google Chrome's javascript Runtime. Now-a-days we work even in Server Side with Javascript. Here we have introduced the basic concepts behind Node.js Server. We have used node.js for most of the work here, where the server side interaction were required. We expect node.js will be used in several applications in coming days and eventually replace some of the server side traditional server platforms.

Javascript in OOP Way - some interesting study

Why taken here?

As all of the chapters are experimentation with Javascript in different areas of client side, server side work and nosql execution command, we just tried to aquire basic concepts of Object Orientation with Javascript with code. Explanation of Code is written side-by-side within code as comments.These basic knowledges will help us as we will work in different solutions with javascript in later chapters.

A Simple jQuery images Slider Plugin with minimal effects

Why taken here?

In development time, We have seen many of our javascript and JQuery work to be re-used within pages or projects. So we have learned to code those works with the nice plugin feature of JQuery. Here we thought to include the plugin development with JQuery is worth to include in this ebook.

Simple Bar Graph with d3.js and Prototype.js - a Javascript Class based Approach

Why taken here?

D3.js is a visualisation library in Javascript. Also propotype.js is a good framework to make the javascript classes. We had taken the Javascript class based approach to work with D3.js for making graphs. We had focused on the code pattern here.

Concepts in Angular.js Application Development

Why taken here?

In recent time, client side javascript MVC/MVP (Model-View-Presenter) frameworks are greatly used in Applications. Now within many such javascript Frameworks, Angular.js is backed by Google. So we understood the growth of this Javascript Framework within biggest programming community and go through the learning cycle for this framework. This framework is well-documented and the tutorial/documentation links are provided in the book chapters as required. To us, Angular.js is de-facto choice for our work in client side work in Web Application.

Different Aspects of Angular.js

Why taken here?

There are various concepts in Angular.js which are needed to be mastered. We have discussed some of the topics in different Chapters such as Angular.js Service and Dependency Injection, Angular.js $watch and $observe, Angular.js Promise and Deferred Api

JavaScript Testing Framework - Jasmine - a quick study

Why taken here?

In programming, testing was always an important aspect and will remain that. In server side development, there are different frameworks for unit testing, integrattion testing, load testing etc. So there should have those couterpart of testing enviornments in client side javascript development also. One of such is Jasmine - a unit testing framework in javascript. We have gone through the coding part for the framework.

Angular.js Tests with Jasmine

Why taken here?

As we had earlier discussed about Angular.js as our favourite choice of Client side development, we had included the ways of testing of those work with Jasmine Framework.

jQuery Plugin under Angular.js Directive - a more clean html approach

Why taken here?

Earlier we had discussed about creating JQuery Plugins. Here is a little deviation of that plugin with Angular.js Directive, which has relatively clean signature on the Web Page.

D3.js in Angular.js Directive - a relief from D3 svg code in HTML Page

Why taken here?

As a visualisation libray, d3.js is a fantastic library in javascript. But writing of the code with d3.js was something tedius job for our junior developers. So we tried to made that code compacted in Angular.js Directive and here we have shown one of those working way.

Simple Bar Graph in Angular Directive with d3.js and Prototype.js -- a Javascript Class based Approach

Why taken here?

Another varialtion of the above chapter with Prototype.js introduction, which eventually made the d3.js code within javascript classes

Simple Bar Graph in Angular Directive with d3.js and Prototype.js -- Element based Directive Definition

Why taken here?

Again another varialtion of the above chapter, here we have introduced new tags/elements in html with Angular.js Element Directive. More detail code can be found in http://phloxblog.in/angulard3/start.html

Creating Google Chrome Extension to add a Custom RSS Feed Reader

Why taken here?

Browser extension is a evolving technology to show up and engage reader now-a-days. We have gone through creating a RSS Feeder within one Chrome Extension here. We have made the rss reader for our blog here.

Task List with Angular.js, HTML5 Local Storage and Decorate with Bootstrap in Google Chrome Extension

Why taken here?

The chrome browser extension is changed here and added with a task list. This is developed using Angular.js and HTML5 Local Storage. Our final extenteion is here - Task list and feed reader. Add it to your chrome browser if you feel so.

Preliminary Concepts of Graph Database

Why taken here?

In recent time, graph databases emerges as a part of nosql data repositories. One of the famous graph database is neo4j. We have shown the concepts in Graph Databases like node, relationships in the chapter. In next few chapters we have shown an case study and commands for accessing several nodes and relationships in Neo4j.

Quick Glance at Neo4j Cypher Queries for Sample Graph Database

Why taken here?

This is continuation of the previous chapter and some of the useful queries are shown here within graph databases.

Develop Web Application with Node.js, Express.js REST Service and Neo4j (neo4j-js module)

Why taken here?

We have taken Angular.js as our client side developement framework, node.js for server side development and neo4j as backend data repository for making the proof-of-concept application. Codings are doucmented in line. Reader can completely download those codes from Github also, for which, links are given in the chapter.

A Quick Primer on MongoDB

Why taken here?

Within nosql family, as like neo4j, mongodb is also becoming increasingly popular among recent development. It is a document oriented database and all data are stored in Binary JSON (BSON) format within mongodb. This chapter is a quick introduction of the mongodb commands.

Single Page Application with Angular.js, Node.js and MongoDB (MongoJS Module)

Why taken here?

We have used Angular.js as our client side developement framework, node.js for server side development and mongodb as backend data repository for making the proof-of-concept application. Codings are doucmented in line. Several important concepts like cross domain request etc are discussed within the application. Reader can completely download those codes from Github also, for which, links are given in the chapter.

Web Application with Highchart.js, Node.js, Express.js and MongoDB(Mongo-JS Module)

Why taken here?

Applications with different charting and analytics aspects are general reqirement in web applications. We have taken Highchart.js for charting application requirement, node.js for server side development and mongodb as backend data repository for making the proof-of-concept application. Codings are doucmented in line.

Real-time Data update with Angular.js, Node.js and Socket.io

Why taken here?

This time we have experimented with rela time data update application with javascript and taken a simple stock market simulation model. We have used Angular.js for client side UI requirement, Socket.IO and node.js for server side development for making the proof-of-concept application. Codings are doucmented in line.

Single Page Application with Angular.js, Node.js and CouchDB (Cradle Module)

Why taken here?

We have taken Angular.js as our client side developement framework, node.js as server side development and couchdb as backend data repository for making the proof-of-concept application. Codings are doucmented in line. Several important concepts like cross domain request, creating view in couchdb etc are discussed within the application. Reader can completely download those codes from Github also, for which, links are given in the chapter.

Developing Java REST web applications with Backbone.js

Why taken here?

As our last work here, we have taken a different javascript framework backbone.js for client side development and made a j2ee based REST Web service server with MySQL as backend and integrated those to make an application. While learning we have taken help of http://coenraets.org/blog/2011/12/backbone-js-wine-cellar-tutorial-part-2-crud/ to make this application. We had made some value addition here to make the Java Jersey based REST Web service server.

Our note to reader

The book will be updated every month from February 2014 with application of new frameworks in Javascript.Reader should expect the monthly update of the book at the beginning week of the next month. So happy reading...

Update Topic - February 2014

1> POST requests with Google DART, Node.js and MongoDB
2> Node.js Unit Testing with Should.js

Synopsis

Born in Kolkata, India in 1977, Piyas De made headstrong effort to learn, develop, deliver, teach, and share his knowledges based on different type of software languages and technologies especially on Java/J2EE and related open source technologies. Being A Sun Microsystems Certified Enterprise Architect with more than 10 long years of professional IT experience in various areas such as Architecture Definition, Define Enterprise Application, Client-server/ e-business solutions.

He is in LinkedIn - http://www.linkedin.com/in/piyasde

His GitHub Profile - https://github.com/piyasde

His Google Plus Profile - https://google.com/+piyasde

He learns and writes on different aspects of open source technologies like Angular.js, Node.js, MongoDB, Google DART, Apache Lucene, Text Analysis with GATE and related Big Data technologies in his blog – www.phloxblog.in.
Apart from his professional excellence, he is happily married with Ketaki and has son named Titas. Also he is an enthusiast in the field of teaching and a humble book worm who takes immense pleasure while reading books not only on technologies but also on humour, suspense, comedy and many more.Impeccable affinity toward knowing the distant corners of technologies became the actual force of penning down fresh technological outlooks as he imbibs them time to time.