SlideShare a Scribd company logo
Introduction to Full-Stack
JavaScript
Presenter: Vageesh Bhasin, Mindfire Solutions
Date: 12 – May – 2014
Presenter: Vageesh Bhasin, Mindfire Solutions
About Me
By Profession:
 Current - Quality Analyst with Mindfire – Web Application Testing
 Prior - Quality Analyst with Infosys – Database Testing
By Hobby:
 Web application development
 Reading, learning and implementing newer technologies
Contact Me:
 Facebook: Link
 LinkedIn: Link
 My Blog: Link
 Email: vageesh_bhasin@outlook.com ,
vageeshb@mindfiresolutions.com
Agenda
 Introduction to JavaScript
 Why I chose to use JavaScript?
 Full-Stack JavaScript Components
 Work-flow Management Tools
 Demo on creating a small app
Presenter: Vageesh Bhasin, Mindfire Solutions
Introduction to JavaScript
 Is a Dynamic Programming Language
 Most commonly used in web browsers to allow client-side scripts to interact
with the users
 Syntax is related to C and copies many name and naming conventions from
JAVA
 But is otherwise unrelated to JAVA
 Can be used outside of browsers and with the influx of newer VMs and
platforms (notably Node.js), popularity of using JS at server-side has
increased
Presenter: Vageesh Bhasin, Mindfire Solutions
Why I chose to use JavaScript
 Started with my application development hobby with Ruby on Rails
 Learned fundamentals and architectural patterns – MVC, MVW*, etc.
 Had to learn client side libraries for user interaction and DOM manipulation
 Client-side Language vs Server-side Language:
 Different syntax
 Different semantics
 Total chaos :(
 The idea behind unified language on both sides:
 Homogenous programming experience
 Enables reuse of components and resources
 One language to rule them all (LoTR reference :) )
 Popularity rise because of Node.js, puts JS on server-side and also promotes Non-
blocking programming
 JS is the INTERNET
 VBScript's replacement to TypeScript (Compiles to JS)
 Flash's demise due to HTML5 and mobile market
Presenter: Vageesh Bhasin, Mindfire Solutions
Full-Stack JavaScript – High Level Overview
Client
Middleware
Server
Database
1
2
3
4
5
6
1. User Interactions
2. HTTP Requests
3. DB Queries
4. DB Response / JS Objects
5. JSON
6. DOM Updates
Full-Stack JavaScript Components – Server
 Node.js -
 Server-side JS Platform – Not just a SSJS
 Non-blocking I/O and asynchronous events
 Internally uses Google's V8 JavaScript engine
Example to create HTTP server using Node.js:
var http = require('http');
http.createServer(
function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Worldn');
}
).listen(8000);
console.log('Server running at http://localhost:8000/');
Presenter: Vageesh Bhasin, Mindfire Solutions
Full-Stack JavaScript Components – Server Components
 Server Components or Middleware are part of the pipeline
 The pipeline processes a request and generates a response
 A middleware component only addresses a part of a request and generates
only a part of a response
 It then delegates to the next piece in the pipeline
 When the last piece finishes processing, the response is sent to the client
 ExpressJS:
 A Node.js application framework that helps in building SPAs, MPAs and Hybrid
Applications
 A minimalistic and flexible framework
Presenter: Vageesh Bhasin, Mindfire Solutions
Full-Stack JavaScript Components – Database
 A database that uses JavaScript as its query language
 MongoDB:
 A document-oriented NoSQL Database
 Stores documents in BSON format
 Written in C++
 Developed by 10gen (now MongoDB Inc.)
 CouchDB:
 A NoSQL Database that stores data in JSON format
 Written in Erlang
 Opensource under Apache
 Personally use MongoDB in my development projects
Example of querying in MongoDB
db.people.find( { name : 'Vageesh' } ); // db.collection_name.find( { query_parameters } );
Presenter: Vageesh Bhasin, Mindfire Solutions
Full-Stack JavaScript Components – Client-Side
 There are many Client-Side frameworks to choose from to create SPAs
 The top three frameworks are:
 Angular.js
 Maintained by Google and Community
 Based on MVC design paradigm
 Only requires JS, HTML and CSS on client side
 Backbone.js
 Made by Jeremy Ashkenas (Created CoffeeScript and Underscore.js also)
 Not a complete framework but a library
 Based on MVP design paradigm
 Combine with Marionette.js to simplify construction of large scale SPAs
 Ember.js
 Made by Yehuda Katz (Core contributor of jQuery, RoR, SproutCore), Tom
Dale and community contributors
 Based on MVC design paradigm
 Uses templating library – Handlebars.js
 Which is best for you? Visit http://todomvc.com/
Presenter: Vageesh Bhasin, Mindfire Solutions
Workflow Management Tools
 Why do we need workflow management tools?
 Helps get started
 Maintains dependencies
 Enforces best practices
 Prepares your tools
 Fights regression
 Eases release process
 How to get Started?
 Seed projects – MEAN seeds, Ember seeds
 Generators – YEOMAN
 Git repositories – Personal or community repositories
 Maintain dependencies?
 Front-end package manager – Bower
 Back-end package manager – NPM
 Build your code and automate tasks?
 Grunt – Wider community support
 Gulp – Faster and simple
 Both are equally powerful
Presenter: Vageesh Bhasin, Mindfire Solutions
Workflow Management Tools – Contd.
 Testing:
 Test-Driven Development – Mocha
 Behavior-Driven Development – Jasmine
 Test runner – Karma
 Plenty of other testing and assertion libraries to choose from
 Browser Tools:
 Use Chrome dev tools plugins
 Use Firebug
 Use Ember plugin (for Ember.js debugging)
• Writing Code:
 IDEs - Eclipse(Nodeclipse & Enide), JetBrains plugin
 Text Editors – Sublime Text, VIM, Brackets
Presenter: Vageesh Bhasin, Mindfire Solutions
DEMO
Presenter: Vageesh Bhasin, Mindfire Solutions
Question and Answer
Presenter: Vageesh Bhasin, Mindfire Solutions
www.mindfiresolutions.com
https://www.facebook.com/MindfireSolutions
http://www.linkedin.com/company/mindfire-solutions
http://twitter.com/mindfires
Thank you

More Related Content

What's hot (20)

PDF
Moving from PHP to a nodejs full stack CMS
Make & Build
Ā 
PPTX
FULL stack -> MEAN stack
Ashok Raj
Ā 
PPTX
MEAN Stack
Dotitude
Ā 
PDF
Single Page Apps
Gil Fink
Ā 
PPTX
Web Applications Development with MEAN Stack
Shailendra Chauhan
Ā 
PPTX
Introduction to mean stack
Praveen Gubbala
Ā 
PPTX
Mean stack
RavikantGautam8
Ā 
PPT
Get MEAN! Node.js and the MEAN stack
Nicholas McClay
Ā 
PDF
Keystone.js 101
Alexander Roche
Ā 
PPTX
Host, deploy & scale Blazor Server Apps
Jose Javier Columbie
Ā 
PPTX
CQ5 Development Setup, Maven Build and Deployment
klcodanr
Ā 
PDF
Beginning MEAN Stack
Rob Davarnia
Ā 
PDF
Introduction to the MEAN stack
Yoann Gotthilf
Ā 
PPTX
JavaScript Performance (at SFJS)
Steve Souders
Ā 
PPTX
Mean full stack development
Scott Lee
Ā 
PDF
Meanstack Introduction by Kishore Chandra
Kishore Chandra
Ā 
PPTX
A Gentle Introduction to Blazor
Jose Javier Columbie
Ā 
PPTX
Gatsby intro
Ben McCormick
Ā 
PDF
Future development stack ~ MeteorJS
Victor Stan
Ā 
PPTX
Azure Serverless Conf
Jose Javier Columbie
Ā 
Moving from PHP to a nodejs full stack CMS
Make & Build
Ā 
FULL stack -> MEAN stack
Ashok Raj
Ā 
MEAN Stack
Dotitude
Ā 
Single Page Apps
Gil Fink
Ā 
Web Applications Development with MEAN Stack
Shailendra Chauhan
Ā 
Introduction to mean stack
Praveen Gubbala
Ā 
Mean stack
RavikantGautam8
Ā 
Get MEAN! Node.js and the MEAN stack
Nicholas McClay
Ā 
Keystone.js 101
Alexander Roche
Ā 
Host, deploy & scale Blazor Server Apps
Jose Javier Columbie
Ā 
CQ5 Development Setup, Maven Build and Deployment
klcodanr
Ā 
Beginning MEAN Stack
Rob Davarnia
Ā 
Introduction to the MEAN stack
Yoann Gotthilf
Ā 
JavaScript Performance (at SFJS)
Steve Souders
Ā 
Mean full stack development
Scott Lee
Ā 
Meanstack Introduction by Kishore Chandra
Kishore Chandra
Ā 
A Gentle Introduction to Blazor
Jose Javier Columbie
Ā 
Gatsby intro
Ben McCormick
Ā 
Future development stack ~ MeteorJS
Victor Stan
Ā 
Azure Serverless Conf
Jose Javier Columbie
Ā 

Viewers also liked (20)

PDF
St low fidelity prototype v2
Luis Wong
Ā 
PPT
GBL
Martin Sillaots
Ā 
PDF
How to Visualize a Business
Business Innovation by Design
Ā 
PDF
Practical Product Innovation - Sydney CTO Summit
Mike Biggs GAICD
Ā 
PDF
Blog-based courses in higher education: experience from Tallinn University
Hans PƵldoja
Ā 
PPTX
Build Low Fidelity Wireframes
SV.CO
Ā 
PPTX
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
Mike Biggs GAICD
Ā 
PDF
Paper to prototype, or.... How I learned to stop worrying and love Science
Chris McQueen
Ā 
PDF
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
Startup AddVenture by CCC Startups
Ā 
PPTX
Sketching UX: Low-Fidelity Method; High-Fidelity Results
Rob Fitzgibbon
Ā 
PPTX
How To Write An Awesome Blog Post
Arun Basil Lal
Ā 
PDF
Paper to-prototype
Andrew Baker
Ā 
PPT
Write awesome personalized donor thank you emails using GlobalGiving and Face...
Marc Maxson / GlobalGiving
Ā 
PDF
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Mike Biggs GAICD
Ā 
PDF
Low Fidelity Prototype
Negar Khalandi
Ā 
PDF
AgileCamp Silicon Valley 2015: One Dollar Prototype
Hyperdrive Agile Leadership (powered by Bratton & Company)
Ā 
PDF
Personas in Interaction Design
Hans PƵldoja
Ā 
KEY
Creating Low Fidelity Prototypes
Valeria Gasik
Ā 
PDF
Importance of Wireframes in Web Design
Hitesh Mehta
Ā 
PDF
Demystifying User Experience - General Assembly
Mike Biggs GAICD
Ā 
St low fidelity prototype v2
Luis Wong
Ā 
How to Visualize a Business
Business Innovation by Design
Ā 
Practical Product Innovation - Sydney CTO Summit
Mike Biggs GAICD
Ā 
Blog-based courses in higher education: experience from Tallinn University
Hans PƵldoja
Ā 
Build Low Fidelity Wireframes
SV.CO
Ā 
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
Mike Biggs GAICD
Ā 
Paper to prototype, or.... How I learned to stop worrying and love Science
Chris McQueen
Ā 
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
Startup AddVenture by CCC Startups
Ā 
Sketching UX: Low-Fidelity Method; High-Fidelity Results
Rob Fitzgibbon
Ā 
How To Write An Awesome Blog Post
Arun Basil Lal
Ā 
Paper to-prototype
Andrew Baker
Ā 
Write awesome personalized donor thank you emails using GlobalGiving and Face...
Marc Maxson / GlobalGiving
Ā 
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Mike Biggs GAICD
Ā 
Low Fidelity Prototype
Negar Khalandi
Ā 
AgileCamp Silicon Valley 2015: One Dollar Prototype
Hyperdrive Agile Leadership (powered by Bratton & Company)
Ā 
Personas in Interaction Design
Hans PƵldoja
Ā 
Creating Low Fidelity Prototypes
Valeria Gasik
Ā 
Importance of Wireframes in Web Design
Hitesh Mehta
Ā 
Demystifying User Experience - General Assembly
Mike Biggs GAICD
Ā 
Ad

Similar to Introduction to JavaScript Full Stack (20)

PPTX
Front End Development | Introduction
JohnTaieb
Ā 
ODP
Netbeans65 Osum Slides
Abhishek Gupta
Ā 
PPTX
Progressive Web Applications - The Next Gen Web Technologies
GeekNightHyderabad
Ā 
PPT
State of modern web technologies: an introduction
Michael Ahearn
Ā 
PDF
Making Of PHP Based Web Application
Sachin Walvekar
Ā 
PPTX
Detailed_Java_Full_Stack_Presentation.pptx
manomkpsg
Ā 
PDF
Bootstrap or React for Front-End Web Development.pdf
WPWeb Infotech
Ā 
PDF
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
Evan Mullins
Ā 
DOCX
AseemMahajan_Resume
Aseem Mahajan
Ā 
DOCX
ResumeMichaelAndrewBergerApril2016LinkedIn
Michael Berger
Ā 
PPTX
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
Bojan Veljanovski
Ā 
PPTX
Front End Lecture 1.pptx
malise2997
Ā 
DOC
RajeshBalu_Resume
Rajesh Balu
Ā 
PPTX
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
Ā 
DOC
Dineshotham Kumar Khambhammettu
Dineshotham Kumar Khambhammettu
Ā 
DOC
Diwyanshu Tomar_CV_UI Developer
diwyanshu
Ā 
PDF
All You Need to Know About Using Node.pdf
iDataScientists
Ā 
PDF
Asp Net Vs Vue JS Which One You Should Choose for Development.pdf
Integrated IT Solutions
Ā 
PPTX
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Brian Culver
Ā 
PPTX
Web application framework
Pankaj Chand
Ā 
Front End Development | Introduction
JohnTaieb
Ā 
Netbeans65 Osum Slides
Abhishek Gupta
Ā 
Progressive Web Applications - The Next Gen Web Technologies
GeekNightHyderabad
Ā 
State of modern web technologies: an introduction
Michael Ahearn
Ā 
Making Of PHP Based Web Application
Sachin Walvekar
Ā 
Detailed_Java_Full_Stack_Presentation.pptx
manomkpsg
Ā 
Bootstrap or React for Front-End Web Development.pdf
WPWeb Infotech
Ā 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
Evan Mullins
Ā 
AseemMahajan_Resume
Aseem Mahajan
Ā 
ResumeMichaelAndrewBergerApril2016LinkedIn
Michael Berger
Ā 
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
Bojan Veljanovski
Ā 
Front End Lecture 1.pptx
malise2997
Ā 
RajeshBalu_Resume
Rajesh Balu
Ā 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
Ā 
Dineshotham Kumar Khambhammettu
Dineshotham Kumar Khambhammettu
Ā 
Diwyanshu Tomar_CV_UI Developer
diwyanshu
Ā 
All You Need to Know About Using Node.pdf
iDataScientists
Ā 
Asp Net Vs Vue JS Which One You Should Choose for Development.pdf
Integrated IT Solutions
Ā 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Brian Culver
Ā 
Web application framework
Pankaj Chand
Ā 
Ad

More from Mindfire Solutions (20)

PDF
Physician Search and Review
Mindfire Solutions
Ā 
PDF
diet management app
Mindfire Solutions
Ā 
PDF
Business Technology Solution
Mindfire Solutions
Ā 
PDF
Remote Health Monitoring
Mindfire Solutions
Ā 
PDF
Influencer Marketing Solution
Mindfire Solutions
Ā 
PPT
ELMAH
Mindfire Solutions
Ā 
PPT
High Availability of Azure Applications
Mindfire Solutions
Ā 
PPTX
IOT Hands On
Mindfire Solutions
Ā 
PPTX
Glimpse of Loops Vs Set
Mindfire Solutions
Ā 
ODP
Oracle Sql Developer-Getting Started
Mindfire Solutions
Ā 
PPT
Adaptive Layout In iOS 8
Mindfire Solutions
Ā 
PPT
Introduction to Auto-layout : iOS/Mac
Mindfire Solutions
Ā 
PPT
LINQPad - utility Tool
Mindfire Solutions
Ā 
PPT
Get started with watch kit development
Mindfire Solutions
Ā 
PPTX
Swift vs Objective-C
Mindfire Solutions
Ā 
ODP
Material Design in Android
Mindfire Solutions
Ā 
ODP
Introduction to OData
Mindfire Solutions
Ā 
PPT
Ext js Part 2- MVC
Mindfire Solutions
Ā 
PPT
ExtJs Basic Part-1
Mindfire Solutions
Ā 
PPT
Spring Security Introduction
Mindfire Solutions
Ā 
Physician Search and Review
Mindfire Solutions
Ā 
diet management app
Mindfire Solutions
Ā 
Business Technology Solution
Mindfire Solutions
Ā 
Remote Health Monitoring
Mindfire Solutions
Ā 
Influencer Marketing Solution
Mindfire Solutions
Ā 
High Availability of Azure Applications
Mindfire Solutions
Ā 
IOT Hands On
Mindfire Solutions
Ā 
Glimpse of Loops Vs Set
Mindfire Solutions
Ā 
Oracle Sql Developer-Getting Started
Mindfire Solutions
Ā 
Adaptive Layout In iOS 8
Mindfire Solutions
Ā 
Introduction to Auto-layout : iOS/Mac
Mindfire Solutions
Ā 
LINQPad - utility Tool
Mindfire Solutions
Ā 
Get started with watch kit development
Mindfire Solutions
Ā 
Swift vs Objective-C
Mindfire Solutions
Ā 
Material Design in Android
Mindfire Solutions
Ā 
Introduction to OData
Mindfire Solutions
Ā 
Ext js Part 2- MVC
Mindfire Solutions
Ā 
ExtJs Basic Part-1
Mindfire Solutions
Ā 
Spring Security Introduction
Mindfire Solutions
Ā 

Recently uploaded (20)

PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
Ā 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
Ā 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
Ā 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
Ā 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
Ā 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
Ā 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
Ā 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
Ā 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
Ā 
PDF
ģœ ė‹ˆķ‹°ģ—ģ„œ Burst Compiler+ThreadedJobs+SIMD ģ ģš©ģ‚¬ė”€
Seongdae Kim
Ā 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
Ā 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
Ā 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
Ā 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
Ā 
PDF
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
Ā 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
Ā 
PPTX
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
Ā 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
Ā 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
Ā 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
Ā 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
Ā 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
Ā 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
Ā 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
Ā 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
Ā 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
Ā 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
Ā 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
Ā 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
Ā 
ģœ ė‹ˆķ‹°ģ—ģ„œ Burst Compiler+ThreadedJobs+SIMD ģ ģš©ģ‚¬ė”€
Seongdae Kim
Ā 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
Ā 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
Ā 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
Ā 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
Ā 
Understanding the Need for Systemic Change in Open Source Through Intersectio...
Imma Valls Bernaus
Ā 
Human Resources Information System (HRIS)
Amity University, Patna
Ā 
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
Ā 
Tally software_Introduction_Presentation
AditiBansal54083
Ā 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
Ā 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
Ā 

Introduction to JavaScript Full Stack

  • 1. Introduction to Full-Stack JavaScript Presenter: Vageesh Bhasin, Mindfire Solutions Date: 12 – May – 2014
  • 2. Presenter: Vageesh Bhasin, Mindfire Solutions About Me By Profession:  Current - Quality Analyst with Mindfire – Web Application Testing  Prior - Quality Analyst with Infosys – Database Testing By Hobby:  Web application development  Reading, learning and implementing newer technologies Contact Me:  Facebook: Link  LinkedIn: Link  My Blog: Link  Email: [email protected] , [email protected]
  • 3. Agenda  Introduction to JavaScript  Why I chose to use JavaScript?  Full-Stack JavaScript Components  Work-flow Management Tools  Demo on creating a small app Presenter: Vageesh Bhasin, Mindfire Solutions
  • 4. Introduction to JavaScript  Is a Dynamic Programming Language  Most commonly used in web browsers to allow client-side scripts to interact with the users  Syntax is related to C and copies many name and naming conventions from JAVA  But is otherwise unrelated to JAVA  Can be used outside of browsers and with the influx of newer VMs and platforms (notably Node.js), popularity of using JS at server-side has increased Presenter: Vageesh Bhasin, Mindfire Solutions
  • 5. Why I chose to use JavaScript  Started with my application development hobby with Ruby on Rails  Learned fundamentals and architectural patterns – MVC, MVW*, etc.  Had to learn client side libraries for user interaction and DOM manipulation  Client-side Language vs Server-side Language:  Different syntax  Different semantics  Total chaos :(  The idea behind unified language on both sides:  Homogenous programming experience  Enables reuse of components and resources  One language to rule them all (LoTR reference :) )  Popularity rise because of Node.js, puts JS on server-side and also promotes Non- blocking programming  JS is the INTERNET  VBScript's replacement to TypeScript (Compiles to JS)  Flash's demise due to HTML5 and mobile market Presenter: Vageesh Bhasin, Mindfire Solutions
  • 6. Full-Stack JavaScript – High Level Overview Client Middleware Server Database 1 2 3 4 5 6 1. User Interactions 2. HTTP Requests 3. DB Queries 4. DB Response / JS Objects 5. JSON 6. DOM Updates
  • 7. Full-Stack JavaScript Components – Server  Node.js -  Server-side JS Platform – Not just a SSJS  Non-blocking I/O and asynchronous events  Internally uses Google's V8 JavaScript engine Example to create HTTP server using Node.js: var http = require('http'); http.createServer( function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello Worldn'); } ).listen(8000); console.log('Server running at http://localhost:8000/'); Presenter: Vageesh Bhasin, Mindfire Solutions
  • 8. Full-Stack JavaScript Components – Server Components  Server Components or Middleware are part of the pipeline  The pipeline processes a request and generates a response  A middleware component only addresses a part of a request and generates only a part of a response  It then delegates to the next piece in the pipeline  When the last piece finishes processing, the response is sent to the client  ExpressJS:  A Node.js application framework that helps in building SPAs, MPAs and Hybrid Applications  A minimalistic and flexible framework Presenter: Vageesh Bhasin, Mindfire Solutions
  • 9. Full-Stack JavaScript Components – Database  A database that uses JavaScript as its query language  MongoDB:  A document-oriented NoSQL Database  Stores documents in BSON format  Written in C++  Developed by 10gen (now MongoDB Inc.)  CouchDB:  A NoSQL Database that stores data in JSON format  Written in Erlang  Opensource under Apache  Personally use MongoDB in my development projects Example of querying in MongoDB db.people.find( { name : 'Vageesh' } ); // db.collection_name.find( { query_parameters } ); Presenter: Vageesh Bhasin, Mindfire Solutions
  • 10. Full-Stack JavaScript Components – Client-Side  There are many Client-Side frameworks to choose from to create SPAs  The top three frameworks are:  Angular.js  Maintained by Google and Community  Based on MVC design paradigm  Only requires JS, HTML and CSS on client side  Backbone.js  Made by Jeremy Ashkenas (Created CoffeeScript and Underscore.js also)  Not a complete framework but a library  Based on MVP design paradigm  Combine with Marionette.js to simplify construction of large scale SPAs  Ember.js  Made by Yehuda Katz (Core contributor of jQuery, RoR, SproutCore), Tom Dale and community contributors  Based on MVC design paradigm  Uses templating library – Handlebars.js  Which is best for you? Visit http://todomvc.com/ Presenter: Vageesh Bhasin, Mindfire Solutions
  • 11. Workflow Management Tools  Why do we need workflow management tools?  Helps get started  Maintains dependencies  Enforces best practices  Prepares your tools  Fights regression  Eases release process  How to get Started?  Seed projects – MEAN seeds, Ember seeds  Generators – YEOMAN  Git repositories – Personal or community repositories  Maintain dependencies?  Front-end package manager – Bower  Back-end package manager – NPM  Build your code and automate tasks?  Grunt – Wider community support  Gulp – Faster and simple  Both are equally powerful Presenter: Vageesh Bhasin, Mindfire Solutions
  • 12. Workflow Management Tools – Contd.  Testing:  Test-Driven Development – Mocha  Behavior-Driven Development – Jasmine  Test runner – Karma  Plenty of other testing and assertion libraries to choose from  Browser Tools:  Use Chrome dev tools plugins  Use Firebug  Use Ember plugin (for Ember.js debugging) • Writing Code:  IDEs - Eclipse(Nodeclipse & Enide), JetBrains plugin  Text Editors – Sublime Text, VIM, Brackets Presenter: Vageesh Bhasin, Mindfire Solutions
  • 13. DEMO Presenter: Vageesh Bhasin, Mindfire Solutions
  • 14. Question and Answer Presenter: Vageesh Bhasin, Mindfire Solutions