SlideShare a Scribd company logo
1 of 24
Download to read offline
STACK
THE
Simona Clapan
simona@leanometry.com
{ JavaScript all the way }
Full-stack JavaScript
solution that helps you
build fast, robust and
maintainable production
web applications using:
WHAT DOES IT M.E.A.N.?
express
WHY M.E.A.N.?
SAME LANGUAGE, SAME OBJECTS.
{“_id”: ObjectId(“512638a28b799”),
“username” : “symonny” }
{“_id”: “512638a28b799”,
“username” : “symonny” }
{“_id”: “512638a28b799”,
“username” : “symonny” }
WHO USES NODE ?
TYPICAL APP ARCHITECTURE
❖ NoSQL cross-platform document-oriented
database system
❖ JSON-like documents with dynamic schemas
❖ Easier & faster to send data between client
and server (b/c data saved in JSON format)
❖ Local Install:
➡ MongoDB: http://www.mongodb.org/
❖ MongoDB-as-a-Service:
➡ Modulus: https://modulus.io
➡ Mongolab: https://mongolab.com
❖ A lightweight framework used to build single
and multi-page web applications in Node.JS
❖ Wrapper for the core Node.js HTTP module
objects.
❖ Provides functions for everything you may
need to build a modern web server
❖ Learn More: http://expressjs.com
express
❖ Client-side MVC framework: http://angularjs.org
❖ Problem: Updating page without reload
❖ Solution: Angular.js declarative, 2-way data
binding
❖ Server-side JavaScript platform built on V8
engine
❖ Helps building highly scalable and concurrent
applications rapidly
❖ Makes multithreaded server easy
❖ Event based concurrency
❖ Easy to modify and maintains apps, due to
piped modules
❖ Install from http://nodejs.org
APPS SUITED FOR NODE.JS
❖ E-Commerce
❖ Payment Processing
❖ Social Media
❖ Realtime Services
❖ Media Applications
❖ Enterprise Services
THE TOOLBOX
❖ https://www.npmjs.org/
❖ Over 80,000 packages
❖ To install a module:
➡ npm install [module-name]
➡ - g - flag for global
A NodeJS Module Package Manager
❖ Grunt - used to build, preview and test a project,
employing tasks curated by Yeoman and grunt-contrib.
http://gruntjs.com
➡ npm install -g grunt-cli
❖ Bower - used for dependency management, allowing
the download and management of front-end package.
http://bower.io
➡ npm install -g bower
MORE TOOLS
❖ Yeoman - used to build, preview and test a project.
http://yeoman.io
➡ npm install -g yo
❖ Yeoman Generator - plugin used to scaffold complete
projects or useful parts
➡ install generator: npm install -g [gener-name]
➡ run generator: yo [gener-name] [params]
MORE TOOLS
YEOMAN GENERATORS
❖ generator-angular-fullstack: AngularJS generator, integrated
with support for Express with optional MongoDB integration
❖ generator-meanstack: MEAN stack generator, compatible
with grunt-express
❖ generator-mean-seed: MEAN stack generator with batteries
like Mongo, Express, Angular, Yeoman, Karma, and Protractor
for automated testing.
YEOMAN GENERATORS
❖ generator-klei - MEAN stack generator uses Mongoose and
Stylus
❖ ultimate-seed-generator - MEAN stack generator with
batteries like Passport and Browserify
!
❖ https://github.com/leanometry/codecamp
DEMO
Contacts
Angular Components: 1 of 3
❖ Directives: allows you to extend HTML to answer the needs of web
applications. Directives let you specify how your page should be
structured for the data available in a given scope.
❖ Data Binding: allow defining the binding between the data in the
scope and the content of the views.
❖ Filters: allow modifying the way data is displayed.
❖ Partial Views: used specially in single page applications.
Angular Components: 2 of 3
❖ Modules: Apps are structured in modules that can depend on other
modules and can contain controllers, services, directives and filters
❖ Controllers contain the application behavior. Controllers populate
the scope with all the necessary data for the view. Using proper
separation of concerns, controllers should never contain anything
related to the DOM.
❖ Scope is used to link the controllers and the views to which they
are binded
Angular Components: 3 of 3
❖ Services: allow reusing code that should be abstracted from
controller. Services can be injected in controllers or in other
services.
❖ Dependency Injection: retrieves some elements of the application
that should be configured when the module will be loaded
❖ Events: $broadcast and $emit
Simona Clapan
simona@leanometry.com
THANK
YOU!
Resources
❖ https://mongolab.com
❖ https://github.com/angular-app/angular-app
❖ http://www.packtpub.com/angularjs-web-application-development/book
❖ https://www.nodejitsu.com/
❖ Node.js - http://nodejs.org
❖ MongoDB - http://mongodb.org
❖ MongoDB Training - http://education.10gen.com
❖ Mongoose - http://http://mongoosejs.com/
❖ Express - http://expressjs.com
❖ AngularJS - http://angularjs.org
❖ Bower - http://bower.io
❖ Yeoman - http://yeoman.io
❖ Grunt - http://gruntjs.com

More Related Content

What's hot

What's hot (19)

Introduction to MERN
Introduction to MERNIntroduction to MERN
Introduction to MERN
 
Future development stack ~ MeteorJS
Future development stack ~ MeteorJSFuture development stack ~ MeteorJS
Future development stack ~ MeteorJS
 
MEAN Stack
MEAN Stack MEAN Stack
MEAN Stack
 
Single Page Application (SPA) using AngularJS
Single Page Application (SPA) using AngularJSSingle Page Application (SPA) using AngularJS
Single Page Application (SPA) using AngularJS
 
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
MEAN Stack - Introduction & Advantages - Why should you switch to MEAN stack ...
 
Part One: Building Web Apps with the MERN Stack
Part One: Building Web Apps with the MERN StackPart One: Building Web Apps with the MERN Stack
Part One: Building Web Apps with the MERN Stack
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
 
JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)JavaScript Performance (at SFJS)
JavaScript Performance (at SFJS)
 
Refactoring to a Single Page Application
Refactoring to a Single Page ApplicationRefactoring to a Single Page Application
Refactoring to a Single Page Application
 
Single Page Applications on JavaScript and ASP.NET MVC4
Single Page Applications on JavaScript and ASP.NET MVC4Single Page Applications on JavaScript and ASP.NET MVC4
Single Page Applications on JavaScript and ASP.NET MVC4
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applications
 
Client Vs. Server Rendering
Client Vs. Server RenderingClient Vs. Server Rendering
Client Vs. Server Rendering
 
Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6Angular on ASP.NET MVC 6
Angular on ASP.NET MVC 6
 
introduction to js
introduction to jsintroduction to js
introduction to js
 
Keystone.js 101
Keystone.js 101Keystone.js 101
Keystone.js 101
 
single page application
single page applicationsingle page application
single page application
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
 
Modern web application devlopment workflow
Modern web application devlopment workflowModern web application devlopment workflow
Modern web application devlopment workflow
 

Similar to The MEAN stack - SoCalCodeCamp - june 29th 2014

Similar to The MEAN stack - SoCalCodeCamp - june 29th 2014 (20)

Introduction to angular | Concepts and Environment setup
Introduction to angular | Concepts and Environment setupIntroduction to angular | Concepts and Environment setup
Introduction to angular | Concepts and Environment setup
 
JSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontendJSFest 2019: Technology agnostic microservices at SPA frontend
JSFest 2019: Technology agnostic microservices at SPA frontend
 
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
AngularJs
AngularJsAngularJs
AngularJs
 
Angularjs 131211063348-phpapp01
Angularjs 131211063348-phpapp01Angularjs 131211063348-phpapp01
Angularjs 131211063348-phpapp01
 
Mean stack Magics
Mean stack MagicsMean stack Magics
Mean stack Magics
 
Angular js
Angular jsAngular js
Angular js
 
Angular js 1.3 presentation for fed nov 2014
Angular js 1.3 presentation for fed   nov 2014Angular js 1.3 presentation for fed   nov 2014
Angular js 1.3 presentation for fed nov 2014
 
MEAN Stack Warm-up
MEAN Stack Warm-upMEAN Stack Warm-up
MEAN Stack Warm-up
 
Magnolia & Angular JS - an Approach for Javascript RIAs Delivered by a CMS
Magnolia & Angular JS - an Approach for Javascript RIAs Delivered by a CMSMagnolia & Angular JS - an Approach for Javascript RIAs Delivered by a CMS
Magnolia & Angular JS - an Approach for Javascript RIAs Delivered by a CMS
 
WebSDK - Switching between service providers
WebSDK - Switching between service providersWebSDK - Switching between service providers
WebSDK - Switching between service providers
 
GDG Ibadan #pwa
GDG Ibadan #pwaGDG Ibadan #pwa
GDG Ibadan #pwa
 
Application Model for Cloud Deployment
Application Model for Cloud DeploymentApplication Model for Cloud Deployment
Application Model for Cloud Deployment
 
Angular4 getting started
Angular4 getting startedAngular4 getting started
Angular4 getting started
 
Cloud Platform as a Service: Heroku
Cloud Platform as a Service: HerokuCloud Platform as a Service: Heroku
Cloud Platform as a Service: Heroku
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless World
 
Django simplified : by weever mbakaya
Django simplified : by weever mbakayaDjango simplified : by weever mbakaya
Django simplified : by weever mbakaya
 

Recently uploaded

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Recently uploaded (20)

Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 

The MEAN stack - SoCalCodeCamp - june 29th 2014

  • 2. Full-stack JavaScript solution that helps you build fast, robust and maintainable production web applications using: WHAT DOES IT M.E.A.N.? express
  • 3. WHY M.E.A.N.? SAME LANGUAGE, SAME OBJECTS. {“_id”: ObjectId(“512638a28b799”), “username” : “symonny” } {“_id”: “512638a28b799”, “username” : “symonny” } {“_id”: “512638a28b799”, “username” : “symonny” }
  • 6. ❖ NoSQL cross-platform document-oriented database system ❖ JSON-like documents with dynamic schemas ❖ Easier & faster to send data between client and server (b/c data saved in JSON format) ❖ Local Install: ➡ MongoDB: http://www.mongodb.org/ ❖ MongoDB-as-a-Service: ➡ Modulus: https://modulus.io ➡ Mongolab: https://mongolab.com
  • 7. ❖ A lightweight framework used to build single and multi-page web applications in Node.JS ❖ Wrapper for the core Node.js HTTP module objects. ❖ Provides functions for everything you may need to build a modern web server ❖ Learn More: http://expressjs.com express
  • 8. ❖ Client-side MVC framework: http://angularjs.org ❖ Problem: Updating page without reload ❖ Solution: Angular.js declarative, 2-way data binding
  • 9. ❖ Server-side JavaScript platform built on V8 engine ❖ Helps building highly scalable and concurrent applications rapidly ❖ Makes multithreaded server easy ❖ Event based concurrency ❖ Easy to modify and maintains apps, due to piped modules ❖ Install from http://nodejs.org
  • 10. APPS SUITED FOR NODE.JS ❖ E-Commerce ❖ Payment Processing ❖ Social Media ❖ Realtime Services ❖ Media Applications ❖ Enterprise Services
  • 12. ❖ https://www.npmjs.org/ ❖ Over 80,000 packages ❖ To install a module: ➡ npm install [module-name] ➡ - g - flag for global A NodeJS Module Package Manager
  • 13. ❖ Grunt - used to build, preview and test a project, employing tasks curated by Yeoman and grunt-contrib. http://gruntjs.com ➡ npm install -g grunt-cli ❖ Bower - used for dependency management, allowing the download and management of front-end package. http://bower.io ➡ npm install -g bower MORE TOOLS
  • 14. ❖ Yeoman - used to build, preview and test a project. http://yeoman.io ➡ npm install -g yo ❖ Yeoman Generator - plugin used to scaffold complete projects or useful parts ➡ install generator: npm install -g [gener-name] ➡ run generator: yo [gener-name] [params] MORE TOOLS
  • 15. YEOMAN GENERATORS ❖ generator-angular-fullstack: AngularJS generator, integrated with support for Express with optional MongoDB integration ❖ generator-meanstack: MEAN stack generator, compatible with grunt-express ❖ generator-mean-seed: MEAN stack generator with batteries like Mongo, Express, Angular, Yeoman, Karma, and Protractor for automated testing.
  • 16. YEOMAN GENERATORS ❖ generator-klei - MEAN stack generator uses Mongoose and Stylus ❖ ultimate-seed-generator - MEAN stack generator with batteries like Passport and Browserify
  • 18. Angular Components: 1 of 3 ❖ Directives: allows you to extend HTML to answer the needs of web applications. Directives let you specify how your page should be structured for the data available in a given scope. ❖ Data Binding: allow defining the binding between the data in the scope and the content of the views. ❖ Filters: allow modifying the way data is displayed. ❖ Partial Views: used specially in single page applications.
  • 19. Angular Components: 2 of 3 ❖ Modules: Apps are structured in modules that can depend on other modules and can contain controllers, services, directives and filters ❖ Controllers contain the application behavior. Controllers populate the scope with all the necessary data for the view. Using proper separation of concerns, controllers should never contain anything related to the DOM. ❖ Scope is used to link the controllers and the views to which they are binded
  • 20. Angular Components: 3 of 3 ❖ Services: allow reusing code that should be abstracted from controller. Services can be injected in controllers or in other services. ❖ Dependency Injection: retrieves some elements of the application that should be configured when the module will be loaded ❖ Events: $broadcast and $emit
  • 23. ❖ https://mongolab.com ❖ https://github.com/angular-app/angular-app ❖ http://www.packtpub.com/angularjs-web-application-development/book ❖ https://www.nodejitsu.com/
  • 24. ❖ Node.js - http://nodejs.org ❖ MongoDB - http://mongodb.org ❖ MongoDB Training - http://education.10gen.com ❖ Mongoose - http://http://mongoosejs.com/ ❖ Express - http://expressjs.com ❖ AngularJS - http://angularjs.org ❖ Bower - http://bower.io ❖ Yeoman - http://yeoman.io ❖ Grunt - http://gruntjs.com