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

PPT
Full stack JavaScript - the folly of choice
PDF
ITT Flisol 2013
PPTX
MEAN Stack
PPTX
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
PDF
The MEAN Stack
PPTX
What is Mean Stack Development ?
PDF
MEAN Stack
KEY
SGCE 2012 Lightning Talk-Single Page Interface
Full stack JavaScript - the folly of choice
ITT Flisol 2013
MEAN Stack
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
The MEAN Stack
What is Mean Stack Development ?
MEAN Stack
SGCE 2012 Lightning Talk-Single Page Interface

What's hot (20)

PDF
Moving from PHP to a nodejs full stack CMS
PPTX
FULL stack -> MEAN stack
PPTX
MEAN Stack
PDF
Single Page Apps
PPTX
Web Applications Development with MEAN Stack
PPTX
Introduction to mean stack
PPTX
Mean stack
PPT
Get MEAN! Node.js and the MEAN stack
PDF
Keystone.js 101
PPTX
Host, deploy & scale Blazor Server Apps
PPTX
CQ5 Development Setup, Maven Build and Deployment
PDF
Beginning MEAN Stack
PDF
Introduction to the MEAN stack
PPTX
JavaScript Performance (at SFJS)
PPTX
Mean full stack development
PDF
Meanstack Introduction by Kishore Chandra
PPTX
A Gentle Introduction to Blazor
PPTX
Gatsby intro
PDF
Future development stack ~ MeteorJS
PPTX
Azure Serverless Conf
Moving from PHP to a nodejs full stack CMS
FULL stack -> MEAN stack
MEAN Stack
Single Page Apps
Web Applications Development with MEAN Stack
Introduction to mean stack
Mean stack
Get MEAN! Node.js and the MEAN stack
Keystone.js 101
Host, deploy & scale Blazor Server Apps
CQ5 Development Setup, Maven Build and Deployment
Beginning MEAN Stack
Introduction to the MEAN stack
JavaScript Performance (at SFJS)
Mean full stack development
Meanstack Introduction by Kishore Chandra
A Gentle Introduction to Blazor
Gatsby intro
Future development stack ~ MeteorJS
Azure Serverless Conf
Ad

Viewers also liked (20)

PDF
St low fidelity prototype v2
PDF
How to Visualize a Business
PDF
Practical Product Innovation - Sydney CTO Summit
PDF
Blog-based courses in higher education: experience from Tallinn University
PPTX
Build Low Fidelity Wireframes
PPTX
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
PDF
Paper to prototype, or.... How I learned to stop worrying and love Science
PDF
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
PPTX
Sketching UX: Low-Fidelity Method; High-Fidelity Results
PPTX
How To Write An Awesome Blog Post
PDF
Paper to-prototype
PPT
Write awesome personalized donor thank you emails using GlobalGiving and Face...
PDF
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
PDF
Low Fidelity Prototype
PDF
AgileCamp Silicon Valley 2015: One Dollar Prototype
PDF
Personas in Interaction Design
KEY
Creating Low Fidelity Prototypes
PDF
Importance of Wireframes in Web Design
PDF
Demystifying User Experience - General Assembly
St low fidelity prototype v2
How to Visualize a Business
Practical Product Innovation - Sydney CTO Summit
Blog-based courses in higher education: experience from Tallinn University
Build Low Fidelity Wireframes
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
Paper to prototype, or.... How I learned to stop worrying and love Science
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
Sketching UX: Low-Fidelity Method; High-Fidelity Results
How To Write An Awesome Blog Post
Paper to-prototype
Write awesome personalized donor thank you emails using GlobalGiving and Face...
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Low Fidelity Prototype
AgileCamp Silicon Valley 2015: One Dollar Prototype
Personas in Interaction Design
Creating Low Fidelity Prototypes
Importance of Wireframes in Web Design
Demystifying User Experience - General Assembly
Ad

Similar to Introduction to JavaScript Full Stack (20)

PPTX
After the LAMP, it's time to get MEAN
PDF
An introduction to Node.js
PPTX
Full stack development using javascript what and why - ajay chandravadiya
PPTX
Introduction to Node js
PPTX
FULL STACK DEVELOPMENT UNIT ONE NOTES IN PPT
PDF
Meetup. Technologies Intro for Non-Tech People
PDF
IBM InterConnect: Java vs JavaScript for Enterprise WebApps
PDF
Node.js
PPTX
Advanced Web Technology.pptx
PPTX
Javascript frameworks
PPT
Intro to SPA using JavaScript & ASP.NET
PPTX
mearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptx
PDF
Mean Stack - An Overview
PDF
Node.js #digpen presentation
ODP
Javascript Update May 2013
PPTX
074Aman.pptx
PDF
Frontend as a first class citizen
PPTX
Beginners Node.js
PPTX
Latest Web development technologies 2021
PDF
Node js vs Django: Which is Better Backend Framework.pdf
After the LAMP, it's time to get MEAN
An introduction to Node.js
Full stack development using javascript what and why - ajay chandravadiya
Introduction to Node js
FULL STACK DEVELOPMENT UNIT ONE NOTES IN PPT
Meetup. Technologies Intro for Non-Tech People
IBM InterConnect: Java vs JavaScript for Enterprise WebApps
Node.js
Advanced Web Technology.pptx
Javascript frameworks
Intro to SPA using JavaScript & ASP.NET
mearn-stack-new_ccvbhbhvgvgcdszsxdxfcf.pptx
Mean Stack - An Overview
Node.js #digpen presentation
Javascript Update May 2013
074Aman.pptx
Frontend as a first class citizen
Beginners Node.js
Latest Web development technologies 2021
Node js vs Django: Which is Better Backend Framework.pdf

More from Mindfire Solutions (20)

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

Recently uploaded (20)

PPTX
Independent Consultants’ Biggest Challenges in ERP Projects – and How Apagen ...
PPTX
TRAVEL SUPPLIER API INTEGRATION | XML BOOKING ENGINE
PDF
How to Set Realistic Project Milestones and Deadlines
PDF
Software Development Company - swapdigit | Best Mobile App Development In India
PDF
SBOM Document Quality Guide - OpenChain SBOM Study Group
PPTX
Phoenix Marketo User Group: Building Nurtures that Work for Your Audience. An...
PDF
DOWNLOAD—IOBit Uninstaller Pro Crack Download Free
PPTX
Advanced Heap Dump Analysis Techniques Webinar Deck
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
PPTX
Presentation - Summer Internship at Samatrix.io_template_2.pptx
PDF
solman-7.0-ehp1-sp21-incident-management
PDF
OpenAssetIO Virtual Town Hall - August 2025.pdf
PDF
Science is Not Enough SPLC2009 Richard P. Gabriel
PDF
10 Mistakes Agile Project Managers Still Make
PPTX
AI Tools Revolutionizing Software Development Workflows
PDF
OpenColorIO Virtual Town Hall - August 2025
PDF
Canva Desktop App With Crack Free Download 2025?
PPTX
Relevance Tuning with Genetic Algorithms
PDF
Ragic Data Security Overview: Certifications, Compliance, and Network Safegua...
PPTX
Beige and Black Minimalist Project Deck Presentation (1).pptx
Independent Consultants’ Biggest Challenges in ERP Projects – and How Apagen ...
TRAVEL SUPPLIER API INTEGRATION | XML BOOKING ENGINE
How to Set Realistic Project Milestones and Deadlines
Software Development Company - swapdigit | Best Mobile App Development In India
SBOM Document Quality Guide - OpenChain SBOM Study Group
Phoenix Marketo User Group: Building Nurtures that Work for Your Audience. An...
DOWNLOAD—IOBit Uninstaller Pro Crack Download Free
Advanced Heap Dump Analysis Techniques Webinar Deck
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Presentation - Summer Internship at Samatrix.io_template_2.pptx
solman-7.0-ehp1-sp21-incident-management
OpenAssetIO Virtual Town Hall - August 2025.pdf
Science is Not Enough SPLC2009 Richard P. Gabriel
10 Mistakes Agile Project Managers Still Make
AI Tools Revolutionizing Software Development Workflows
OpenColorIO Virtual Town Hall - August 2025
Canva Desktop App With Crack Free Download 2025?
Relevance Tuning with Genetic Algorithms
Ragic Data Security Overview: Certifications, Compliance, and Network Safegua...
Beige and Black Minimalist Project Deck Presentation (1).pptx

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