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

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

What's hot (20)

Moving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMSMoving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMS
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
Single Page Apps
Single Page AppsSingle Page Apps
Single Page Apps
 
Web Applications Development with MEAN Stack
Web Applications Development with MEAN StackWeb Applications Development with MEAN Stack
Web Applications Development with MEAN Stack
 
Introduction to mean stack
Introduction to mean stackIntroduction to mean stack
Introduction to mean stack
 
Mean stack
Mean stackMean stack
Mean stack
 
Get MEAN! Node.js and the MEAN stack
Get MEAN!  Node.js and the MEAN stackGet MEAN!  Node.js and the MEAN stack
Get MEAN! Node.js and the MEAN stack
 
Keystone.js 101
Keystone.js 101Keystone.js 101
Keystone.js 101
 
Host, deploy & scale Blazor Server Apps
Host, deploy & scale Blazor Server AppsHost, deploy & scale Blazor Server Apps
Host, deploy & scale Blazor Server Apps
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deployment
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
 
Introduction to the MEAN stack
Introduction to the MEAN stackIntroduction to the MEAN stack
Introduction to the MEAN stack
 
JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack development
 
Meanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore ChandraMeanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore Chandra
 
A Gentle Introduction to Blazor
A Gentle Introduction to BlazorA Gentle Introduction to Blazor
A Gentle Introduction to Blazor
 
Gatsby intro
Gatsby introGatsby intro
Gatsby intro
 
Future development stack ~ MeteorJS
Future development stack ~ MeteorJSFuture development stack ~ MeteorJS
Future development stack ~ MeteorJS
 
Azure Serverless Conf
Azure Serverless ConfAzure Serverless Conf
Azure Serverless Conf
 

Viewers also liked

St low fidelity prototype v2
St   low fidelity prototype v2St   low fidelity prototype v2
St low fidelity prototype v2
Luis Wong
 
How to Visualize a Business
How to Visualize a BusinessHow to Visualize a Business
How to Visualize a Business
Business Innovation by Design
 
Practical Product Innovation - Sydney CTO Summit
Practical Product Innovation - Sydney CTO SummitPractical Product Innovation - Sydney CTO Summit
Practical Product Innovation - Sydney CTO Summit
Mike Biggs GAICD
 
Blog-based courses in higher education: experience from Tallinn University
Blog-based courses in higher education: experience from Tallinn UniversityBlog-based courses in higher education: experience from Tallinn University
Blog-based courses in higher education: experience from Tallinn University
Hans Põldoja
 
Build Low Fidelity Wireframes
Build Low Fidelity WireframesBuild Low Fidelity Wireframes
Build Low Fidelity Wireframes
SV.CO
 
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
Open Source Thinking Tools in Digital Product Design- VIBE WIRE Open Source Thinking Tools in Digital Product Design- VIBE WIRE
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
Paper to prototype, or.... How I learned to stop worrying and love SciencePaper to prototype, or.... How I learned to stop worrying and love Science
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 ...
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
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
Sketching UX: Low-Fidelity Method; High-Fidelity ResultsSketching UX: Low-Fidelity Method; High-Fidelity Results
Sketching UX: Low-Fidelity Method; High-Fidelity Results
Rob Fitzgibbon
 
How To Write An Awesome Blog Post
How To Write An Awesome Blog PostHow To Write An Awesome Blog Post
How To Write An Awesome Blog Post
Arun Basil Lal
 
Paper to-prototype
Paper to-prototypePaper to-prototype
Paper to-prototype
Andrew Baker
 
Write awesome personalized donor thank you emails using GlobalGiving and Face...
Write awesome personalized donor thank you emails using GlobalGiving and Face...Write awesome personalized donor thank you emails using GlobalGiving and Face...
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...
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Mike Biggs GAICD
 
Low Fidelity Prototype
Low Fidelity PrototypeLow Fidelity Prototype
Low Fidelity Prototype
Negar Khalandi
 
AgileCamp Silicon Valley 2015: One Dollar Prototype
AgileCamp Silicon Valley 2015: One Dollar PrototypeAgileCamp Silicon Valley 2015: One Dollar Prototype
AgileCamp Silicon Valley 2015: One Dollar Prototype
Hyperdrive Agile Leadership (powered by Bratton & Company)
 
Personas in Interaction Design
Personas in Interaction DesignPersonas in Interaction Design
Personas in Interaction Design
Hans Põldoja
 
Creating Low Fidelity Prototypes
Creating Low Fidelity PrototypesCreating Low Fidelity Prototypes
Creating Low Fidelity PrototypesValeria Gasik
 
Importance of Wireframes in Web Design
Importance of Wireframes in Web DesignImportance of Wireframes in Web Design
Importance of Wireframes in Web DesignHitesh Mehta
 
Demystifying User Experience - General Assembly
Demystifying User Experience - General AssemblyDemystifying User Experience - General Assembly
Demystifying User Experience - General Assembly
Mike Biggs GAICD
 

Viewers also liked (20)

St low fidelity prototype v2
St   low fidelity prototype v2St   low fidelity prototype v2
St low fidelity prototype v2
 
GBL
GBLGBL
GBL
 
How to Visualize a Business
How to Visualize a BusinessHow to Visualize a Business
How to Visualize a Business
 
Practical Product Innovation - Sydney CTO Summit
Practical Product Innovation - Sydney CTO SummitPractical Product Innovation - Sydney CTO Summit
Practical Product Innovation - Sydney CTO Summit
 
Blog-based courses in higher education: experience from Tallinn University
Blog-based courses in higher education: experience from Tallinn UniversityBlog-based courses in higher education: experience from Tallinn University
Blog-based courses in higher education: experience from Tallinn University
 
Build Low Fidelity Wireframes
Build Low Fidelity WireframesBuild Low Fidelity Wireframes
Build Low Fidelity Wireframes
 
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
Open Source Thinking Tools in Digital Product Design- VIBE WIRE Open Source Thinking Tools in Digital Product Design- VIBE WIRE
Open Source Thinking Tools in Digital Product Design- VIBE WIRE
 
Paper to prototype, or.... How I learned to stop worrying and love Science
Paper to prototype, or.... How I learned to stop worrying and love SciencePaper to prototype, or.... How I learned to stop worrying and love Science
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 ...
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
John Biggs - How to Get the Word Out About Your Product - Startup AddVenture ...
 
Sketching UX: Low-Fidelity Method; High-Fidelity Results
Sketching UX: Low-Fidelity Method; High-Fidelity ResultsSketching UX: Low-Fidelity Method; High-Fidelity Results
Sketching UX: Low-Fidelity Method; High-Fidelity Results
 
How To Write An Awesome Blog Post
How To Write An Awesome Blog PostHow To Write An Awesome Blog Post
How To Write An Awesome Blog Post
 
Paper to-prototype
Paper to-prototypePaper to-prototype
Paper to-prototype
 
Write awesome personalized donor thank you emails using GlobalGiving and Face...
Write awesome personalized donor thank you emails using GlobalGiving and Face...Write awesome personalized donor thank you emails using GlobalGiving and Face...
Write awesome personalized donor thank you emails using GlobalGiving and Face...
 
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
Design Thinking in Praxis - Future of Digital Festival- General Assembly with...
 
Low Fidelity Prototype
Low Fidelity PrototypeLow Fidelity Prototype
Low Fidelity Prototype
 
AgileCamp Silicon Valley 2015: One Dollar Prototype
AgileCamp Silicon Valley 2015: One Dollar PrototypeAgileCamp Silicon Valley 2015: One Dollar Prototype
AgileCamp Silicon Valley 2015: One Dollar Prototype
 
Personas in Interaction Design
Personas in Interaction DesignPersonas in Interaction Design
Personas in Interaction Design
 
Creating Low Fidelity Prototypes
Creating Low Fidelity PrototypesCreating Low Fidelity Prototypes
Creating Low Fidelity Prototypes
 
Importance of Wireframes in Web Design
Importance of Wireframes in Web DesignImportance of Wireframes in Web Design
Importance of Wireframes in Web Design
 
Demystifying User Experience - General Assembly
Demystifying User Experience - General AssemblyDemystifying User Experience - General Assembly
Demystifying User Experience - General Assembly
 

Similar to Introduction to JavaScript Full Stack

Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
JohnTaieb
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web Technologies
GeekNightHyderabad
 
State of modern web technologies: an introduction
State of modern web technologies: an introductionState of modern web technologies: an introduction
State of modern web technologies: an introduction
Michael Ahearn
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
Sachin Walvekar
 
Bootstrap or React for Front-End Web Development.pdf
Bootstrap or React for Front-End Web Development.pdfBootstrap or React for Front-End Web Development.pdf
Bootstrap or React for Front-End Web Development.pdf
WPWeb Infotech
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
Evan Mullins
 
ResumeMichaelAndrewBergerApril2016LinkedIn
ResumeMichaelAndrewBergerApril2016LinkedInResumeMichaelAndrewBergerApril2016LinkedIn
ResumeMichaelAndrewBergerApril2016LinkedInMichael Berger
 
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
Bojan Veljanovski
 
Front End Lecture 1.pptx
Front End Lecture 1.pptxFront End Lecture 1.pptx
Front End Lecture 1.pptx
malise2997
 
RajeshBalu_Resume
RajeshBalu_ResumeRajeshBalu_Resume
RajeshBalu_ResumeRajesh Balu
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
Kushan Lahiru Perera
 
Dineshotham Kumar Khambhammettu
Dineshotham Kumar KhambhammettuDineshotham Kumar Khambhammettu
Dineshotham Kumar Khambhammettu
Dineshotham Kumar Khambhammettu
 
Diwyanshu Tomar_CV_UI Developer
Diwyanshu Tomar_CV_UI DeveloperDiwyanshu Tomar_CV_UI Developer
Diwyanshu Tomar_CV_UI Developerdiwyanshu
 
All You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdfAll You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdf
iDataScientists
 
Asp Net Vs Vue JS Which One You Should Choose for Development.pdf
Asp Net Vs Vue JS Which One You Should Choose for Development.pdfAsp Net Vs Vue JS Which One You Should Choose for Development.pdf
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
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Brian Culver
 
Web application framework
Web application frameworkWeb application framework
Web application framework
Pankaj Chand
 
Angular JS Basics
Angular JS BasicsAngular JS Basics
Angular JS Basics
Mounish Sai
 

Similar to Introduction to JavaScript Full Stack (20)

Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web Technologies
 
State of modern web technologies: an introduction
State of modern web technologies: an introductionState of modern web technologies: an introduction
State of modern web technologies: an introduction
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
 
Bootstrap or React for Front-End Web Development.pdf
Bootstrap or React for Front-End Web Development.pdfBootstrap or React for Front-End Web Development.pdf
Bootstrap or React for Front-End Web Development.pdf
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 
AseemMahajan_Resume
AseemMahajan_ResumeAseemMahajan_Resume
AseemMahajan_Resume
 
ResumeMichaelAndrewBergerApril2016LinkedIn
ResumeMichaelAndrewBergerApril2016LinkedInResumeMichaelAndrewBergerApril2016LinkedIn
ResumeMichaelAndrewBergerApril2016LinkedIn
 
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
AngularJS + NancyFx + MongoDB = The best trio for ultimate SPA by Bojan Velja...
 
Front End Lecture 1.pptx
Front End Lecture 1.pptxFront End Lecture 1.pptx
Front End Lecture 1.pptx
 
RajeshBalu_Resume
RajeshBalu_ResumeRajeshBalu_Resume
RajeshBalu_Resume
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
Dineshotham Kumar Khambhammettu
Dineshotham Kumar KhambhammettuDineshotham Kumar Khambhammettu
Dineshotham Kumar Khambhammettu
 
Diwyanshu Tomar_CV_UI Developer
Diwyanshu Tomar_CV_UI DeveloperDiwyanshu Tomar_CV_UI Developer
Diwyanshu Tomar_CV_UI Developer
 
All You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdfAll You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdf
 
Asp Net Vs Vue JS Which One You Should Choose for Development.pdf
Asp Net Vs Vue JS Which One You Should Choose for Development.pdfAsp Net Vs Vue JS Which One You Should Choose for Development.pdf
Asp Net Vs Vue JS Which One You Should Choose for Development.pdf
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
Angular JS Basics
Angular JS BasicsAngular JS Basics
Angular JS Basics
 

More from Mindfire Solutions

Physician Search and Review
Physician Search and ReviewPhysician Search and Review
Physician Search and Review
Mindfire Solutions
 
diet management app
diet management appdiet management app
diet management app
Mindfire Solutions
 
Business Technology Solution
Business Technology SolutionBusiness Technology Solution
Business Technology Solution
Mindfire Solutions
 
Remote Health Monitoring
Remote Health MonitoringRemote Health Monitoring
Remote Health Monitoring
Mindfire Solutions
 
Influencer Marketing Solution
Influencer Marketing SolutionInfluencer Marketing Solution
Influencer Marketing Solution
Mindfire Solutions
 
ELMAH
ELMAHELMAH
High Availability of Azure Applications
High Availability of Azure ApplicationsHigh Availability of Azure Applications
High Availability of Azure Applications
Mindfire Solutions
 
IOT Hands On
IOT Hands OnIOT Hands On
IOT Hands On
Mindfire Solutions
 
Glimpse of Loops Vs Set
Glimpse of Loops Vs SetGlimpse of Loops Vs Set
Glimpse of Loops Vs Set
Mindfire Solutions
 
Oracle Sql Developer-Getting Started
Oracle Sql Developer-Getting StartedOracle Sql Developer-Getting Started
Oracle Sql Developer-Getting Started
Mindfire Solutions
 
Adaptive Layout In iOS 8
Adaptive Layout In iOS 8Adaptive Layout In iOS 8
Adaptive Layout In iOS 8
Mindfire Solutions
 
Introduction to Auto-layout : iOS/Mac
Introduction to Auto-layout : iOS/MacIntroduction to Auto-layout : iOS/Mac
Introduction to Auto-layout : iOS/Mac
Mindfire Solutions
 
LINQPad - utility Tool
LINQPad - utility ToolLINQPad - utility Tool
LINQPad - utility Tool
Mindfire Solutions
 
Get started with watch kit development
Get started with watch kit developmentGet started with watch kit development
Get started with watch kit development
Mindfire Solutions
 
Swift vs Objective-C
Swift vs Objective-CSwift vs Objective-C
Swift vs Objective-C
Mindfire Solutions
 
Material Design in Android
Material Design in AndroidMaterial Design in Android
Material Design in Android
Mindfire Solutions
 
Introduction to OData
Introduction to ODataIntroduction to OData
Introduction to OData
Mindfire Solutions
 
Ext js Part 2- MVC
Ext js Part 2- MVCExt js Part 2- MVC
Ext js Part 2- MVC
Mindfire Solutions
 
ExtJs Basic Part-1
ExtJs Basic Part-1ExtJs Basic Part-1
ExtJs Basic Part-1
Mindfire Solutions
 
Spring Security Introduction
Spring Security IntroductionSpring Security Introduction
Spring Security Introduction
Mindfire Solutions
 

More from Mindfire Solutions (20)

Physician Search and Review
Physician Search and ReviewPhysician Search and Review
Physician Search and Review
 
diet management app
diet management appdiet management app
diet management app
 
Business Technology Solution
Business Technology SolutionBusiness Technology Solution
Business Technology Solution
 
Remote Health Monitoring
Remote Health MonitoringRemote Health Monitoring
Remote Health Monitoring
 
Influencer Marketing Solution
Influencer Marketing SolutionInfluencer Marketing Solution
Influencer Marketing Solution
 
ELMAH
ELMAHELMAH
ELMAH
 
High Availability of Azure Applications
High Availability of Azure ApplicationsHigh Availability of Azure Applications
High Availability of Azure Applications
 
IOT Hands On
IOT Hands OnIOT Hands On
IOT Hands On
 
Glimpse of Loops Vs Set
Glimpse of Loops Vs SetGlimpse of Loops Vs Set
Glimpse of Loops Vs Set
 
Oracle Sql Developer-Getting Started
Oracle Sql Developer-Getting StartedOracle Sql Developer-Getting Started
Oracle Sql Developer-Getting Started
 
Adaptive Layout In iOS 8
Adaptive Layout In iOS 8Adaptive Layout In iOS 8
Adaptive Layout In iOS 8
 
Introduction to Auto-layout : iOS/Mac
Introduction to Auto-layout : iOS/MacIntroduction to Auto-layout : iOS/Mac
Introduction to Auto-layout : iOS/Mac
 
LINQPad - utility Tool
LINQPad - utility ToolLINQPad - utility Tool
LINQPad - utility Tool
 
Get started with watch kit development
Get started with watch kit developmentGet started with watch kit development
Get started with watch kit development
 
Swift vs Objective-C
Swift vs Objective-CSwift vs Objective-C
Swift vs Objective-C
 
Material Design in Android
Material Design in AndroidMaterial Design in Android
Material Design in Android
 
Introduction to OData
Introduction to ODataIntroduction to OData
Introduction to OData
 
Ext js Part 2- MVC
Ext js Part 2- MVCExt js Part 2- MVC
Ext js Part 2- MVC
 
ExtJs Basic Part-1
ExtJs Basic Part-1ExtJs Basic Part-1
ExtJs Basic Part-1
 
Spring Security Introduction
Spring Security IntroductionSpring Security Introduction
Spring Security Introduction
 

Recently uploaded

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 

Recently uploaded (20)

E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 

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: vageesh_bhasin@outlook.com , vageeshb@mindfiresolutions.com
  • 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