Index
A
- Access Token / OAuth authentication
- advanced features, Mongoose
- exploring / Exploring a few advanced features in Mongoose
- instance methods / Instance methods
- static methods / The static methods
- virtuals / Virtuals
- validations / Validations
- middleware / Middleware
- advantages, JSON Web Token (JWT)
- Cross-Origin Resource Sharing (CORS) / Token-based authentication – using JWT
- scalability / Token-based authentication – using JWT
- mobile / Token-based authentication – using JWT
- security / Token-based authentication – using JWT
- Agile Manifesto
- Angular
- product image files, uploading / Uploading files in Angular
- AngularJS
- about / AngularJS, Understanding AngularJS and the client directory structure
- client-side structure / Client-side structure
- directives / Directives
- modules / Modules
- routing, with AngularUI router / Routing with AngularUI router
- controllers / Controllers and scopes
- scopes / Controllers and scopes
- templates / Templates
- CRUD functionality, adding for products / CRUD-ing products with AngularJS
- RESTful APIs, testing / Testing RESTful APIs in AngularJS
- unit testing / Unit testing
- AngularJS debugger / The AngularJS debugger
- AngularJS tools
- installing / Installing AngularJS tools
- AngularUI router
- used, for routing / Routing with AngularUI router
- ApacheBench (ab) / ApacheBench
- application
- deploying to cloud / Deploying the application to the cloud
- deploying, in multi-server environment / Deploying applications in a multi-server environment
- application, deploying to cloud
- about / Deploying the application to the cloud
- Platform as a service (PaaS) / Platform as a Service
- Virtual Private Server (VPS) / Virtual Private Servers and Cloud Servers
- Cloud Servers / Virtual Private Servers and Cloud Servers
- application environments / Application environments
- applications, deploying in multi-server environment
- about / Deploying applications in a multi-server environment
- NodeJS application / Setting up the app server – NodeJS application
- Nginx server / Setting up web server – Nginx server
- applications, splitting
- database server(s) / Scaling out horizontally – multiple servers
- load balancer server(s) / Scaling out horizontally – multiple servers
- caching/reverse proxy server(s) / Scaling out horizontally – multiple servers
- database replication server(s) / Scaling out horizontally – multiple servers
- additional services server(s) / Scaling out horizontally – multiple servers
- authentication
- authentication strategies
- about / Getting started with authentication strategies
- session-based authentication / Session-based authentication
- token-based authentication / Token-based authentication – using JWT
- OAuth authentication / OAuth authentication
B
- Batarang
- about / The AngularJS debugger
- URL / The AngularJS debugger
- Behavior Driven Development (BDD)
- testing / Testing, TDD, BDD, and NodeJS
- benchmark_meanshop_heroku.txt
- BluebirdJS promise package
- Bower
- packages / Bower packages
- Braintree
- integrating, with checkout page / The checkout page and Braintree integration
- URL / The checkout page and Braintree integration
- endpoint, setting up / Setting up Braintree endpoint and authentication
- authentication, setting up / Setting up Braintree endpoint and authentication
- API keys / The API keys
- API keys, URL / The API keys
- gateway / Gateway
- gateway, using in controllers / Controller
- POST checkout / Router
- GET clientToken / Router
C
- Capistrano
- about / Getting started with Capistrano, Understanding Capistrano
- installing / Installing Capistrano
- URL / Installing Capistrano, Understanding Capistrano, Adding new tasks
- variables, setting up / Setting up Capistrano variables
- tasks / Capistrano tasks
- new tasks, adding / Adding new tasks
- Nginx, preparing / Preparing Nginx
- load balancing applications / Load balancing
- static file server / Static file server
- WebSockets (WS) / WebSockets
- checkout page
- integrating, with Braintree / The checkout page and Braintree integration
- client-side authentication
- about / Understanding client-side authentication
- management / Authentication management
- signing up process / The signing up process
- client-side structure
- in meanshop project / Client-side structure
- CommonJS Modules
- about / CommonJS Modules
- require function / CommonJS Modules
- module.exports object / CommonJS Modules
- exports / CommonJS Modules
- components, project structure
- about / Components
- testing / Testing
- tools/libraries / Tools
- package managers / Package managers
- Bower packages / Bower packages
- config method
- about / Modules
- connect-multiparty
- about / Uploading product images
- consumer key / OAuth authentication
- Content Delivery Network (CDN) / Installing AngularJS tools
- controllers, AngularJS
- about / Controllers and scopes
- Cross-site request forgery (CSRF) / Token-based authentication – using JWT
- CRUD (create-read-update-delete) functionality
- about / CRUD-ing products with AngularJS
- CRUDing, with Mongoose
D
- Dependency Injection (DI)
- about / Factories and services
- development, testing, acceptance, and production (DTAP)
- about / Application environments
- development / Application environments
- testing / Application environments
- production / Application environments
- acceptance (triage, staging) / Application environments
- Digital Ocean
- URL / Digital Ocean
- about / Digital Ocean
- deployment, URL / Benchmarking VPS multi-server deployment
- directives, AngularJS
- about / Directives
- URL / Templates
E
- e-commerce applications
- previewing / Previewing the final e-commerce app
- home page / Homepage
- marketplace / Marketplace
- back office / Backoffice
- requisites / Understanding the requirements for e-commerce applications
- e-commerce MVP
- laying out / Laying out the e-commerce MVP
- products, creating / Products
- factories, using / Factories and services
- services, using / Factories and services
- marketplace, creating / Creating the marketplace
- filters, using / Filters
- end-to-end testing
- about / End-to-end testing
- reference link / End-to-end testing
- database, cleaning / Cleaning the database on each e2e run
- end-to-end tests
- for local authentication / End-to-end tests for local authentication
- exports
- versus module.exports / CommonJS Modules
- ExpressJS
- about / ExpressJS
- installing / Installing ExpressJS
- bootstrapping / Bootstrapping ExpressJS
- routes, exploring / Understanding routes in ExpressJS
F
- factories
- using / Factories and services
- products factory, creating / Creating the products factory
- factory method
- about / Modules
- files and directories, Capistrano
- Capfile / Understanding Capistrano
- config/deploy.rb / Understanding Capistrano
- config/deploy/{production.rb, staging.rb}Topicn / Understanding Capistrano
- lib/capistrano/tasks/*.rake / Understanding Capistrano
- filters
- using / Filters
G
- Google
- used, for authentication / Authenticating with Facebook, Google, and Twitter , Google
H
- Heroku
- URL / Heroku
- HTTP benchmarking tools
- about / HTTP benchmarking tools
- ApacheBench (ab) / ApacheBench
I
- ideas, features
- wishlist / Features backlog
- notifications / Features backlog
- statistics / Features backlog
- reports / Features backlog
- monitoring / Features backlog
- authorization / Features backlog
- installations
- MEAN component / Installing the MEAN component
- NodeJS / Installing NodeJS
- ExpressJS / Installing ExpressJS
- MongoDB / Installing MongoDB
- AngularJS tools / Installing AngularJS tools
- AngularJS debugger / The AngularJS debugger
- instance methods / Instance methods
- interceptors
J
- Jasmine / Testing
- JSON Web Token (JWT)
K
- Karma
- about / Testing, Testing RESTful APIs in AngularJS
L
- Linux, Apache, MySQL, and PHP (LAMP) / Introducing the MEAN stack
- load balancing applications strategies, Nginx
- round-robin / Load balancing
- least-connected / Load balancing
- IP-hash / Load balancing
- local authentication
- about / Local authentication
- end-to-end tests / End-to-end tests for local authentication
M
- MEAN component
- installing / Installing the MEAN component
- NodeJS, installing / Installing NodeJS
- ExpressJS, installing / Installing ExpressJS
- MongoDB, installing / Installing MongoDB
- AngularJS tools, installing / Installing AngularJS tools
- AngularJS debugger / The AngularJS debugger
- meanshop
- MEAN stack
- disadvantages / Introducing the MEAN stack
- NodeJS / NodeJS
- ExpressJS / ExpressJS
- MongoDB / MongoDB
- AngularJS / AngularJS
- middleware / ExpressJS, Middleware
- Minimum Viable Product (MVP) / Minimum Viable Product for an e-commerce site
- Mocha
- Mocha/Chai/SinonJS
- modules, AngularJS
- about / Modules
- MongoDB
- about / MongoDB, Understanding MongoDB
- installing / Installing MongoDB
- URL / Installing MongoDB
- mongod / MongoDB daemons and CLI
- mongo / MongoDB daemons and CLI
- and CLI / MongoDB daemons and CLI
- SQL knowledge, mapping to / Mapping SQL knowledge to MongoDB
- Mongoose
- used, for CRUDing / CRUDing with Mongoose
- advanced features, exploring / Exploring a few advanced features in Mongoose
- Mongoose models
- about / Reviewing models and server-side structure
- server folder / The server folder
- current models / Current Mongoose models
- commonJS modules / CommonJS Modules
- user model / The user model
- multi-server environment
- applications, deploying / Deploying applications in a multi-server environment
N
- navigation bar
- search textbox, adding / Adding search to the navigation bar
- navigation functionality
- implementing / Implementing the search and navigation functionality
- custom $resource methods, adding / Adding custom $resource methods
- routes, setting up / Setting up routes and controllers
- controllers, setting up / Setting up routes and controllers
- working / Wrapping it up
- working, on client-side / How navigation works on the client side
- new feature
- planning / Planning a new feature
- wire framing / Wire framing
- solution, implementing / Implementing the solution
- HTML page, implementing / The HTML page
- testing / Testing the new feature
- AngularJS testing / AngularJS testing
- backlog / Features backlog
- new version, app
- deploying / Deploying a new version of the app
- zero-downtime deployments / Zero-downtime deployments
- zero-downtime production server, setting up / Setting up the zero-downtime production server
- Capistrano / Getting started with Capistrano
- server, preparing / Preparing the server
- Capistrano tasks / Capistrano tasks
- ngCart
- about / Setting up the shopping cart
- installing / Installing ngCart
- directives, using / Making use of ngCart directives
- ngCart directives
- Add to cart button / Add/remove to cart
- summary, adding to cart / The cart's summary
- ngMock
- Node
- file upload, handling / Handling file upload on Node
- NodeJS
- about / NodeJS
- installing / Installing NodeJS
- testing / Testing, TDD, BDD, and NodeJS
- scaling, with production architecture / Production architecture for scaling NodeJS
- node modules (npm) / Understanding server-side authentication
- Node Version Manager (NVM)
- about / Installing NodeJS
- URL / Installing NodeJS
O
- OAuth authentication
- about / OAuth authentication
- working / OAuth authentication
- Open Web Application Security Project (OWASP) / Next steps on security
- optimizations, for production environments
- minification / Optimizations for production environments
- concatenation / Optimizations for production environments
- CDN, using for assets / Optimizations for production environments
- order
- creating / Creating an order
- model, modifying / Modifying the order model
- model, testing / Testing the order model
- sandbox account, using / Using the sandbox account
P
- package managers, AngularJS
- NPM / Package managers
- Bower / Package managers
- PassportJS
- used, for authentication / Authentication with PassportJS
- URL / Authentication with PassportJS
- initializing / Initializing PassportJS
- Platform as a service (PaaS)
- about / Deploying the application to the cloud, Platform as a Service
- Heroku / Heroku
- product.integration.js file
- reference link / Deleting action tests
- Product API
- implementing / Implementing the Product API
- testing / Testing the API
- index action tests, performing / Index action tests
- show action, testing / Show action tests
- create action, testing / Creating action tests
- delete action, testing / Deleting action tests
- product controller / Product controller
- product categories
- adding / Adding product categories
- sidebar, adding / Adding the sidebar
- product models, improving / Improving product models and controllers
- controllers, improving / Improving product models and controllers
- catalog controller / Catalog controller and routes
- routes / Catalog controller and routes
- catalog model / The catalog model
- URL / The catalog model
- categories, seeding / Seeding products and categories
- products, seeding / Seeding products and categories
- product images
- uploading / Uploading product images
- files, uploading in Angular / Uploading files in Angular
- file upload, handling on Node / Handling file upload on Node
- mock products, creating / Seeding products
- production architecture
- building for / Building for production
- application environments / Application environments
- production environments, optimizations / Optimizations for production environments
- used, for scaling NodeJS / Production architecture for scaling NodeJS
- one server / Phase 0 – one server
- multiple application instances, in one server / Phase 1 – multiple application instances in one server
- multiple servers / Phase 2 – multiple servers
- services, splitting into multiple servers / Phase 2 – multiple servers
- micro-services / Phase 3 – Micro-services
- production environments
- optimizations / Optimizations for production environments
- product model
- creating / Creating the product model
- testing / Testing the products model
- reference link / Testing the products model
- implementing / Product model implementation
- products
- CRUD functionality, adding with AngularJS / CRUD-ing products with AngularJS
- services, refactoring / Services
- controllers, setting up / Controllers
- routes, setting up / Routes
- templates, creating / Templates
- project structure
- about / Understanding the project structure
- client folder / Understanding the project structure
- server directory / Understanding the project structure
- e2e files / Understanding the project structure
- file structure / The file structure
- components / Components
- Protractor / Testing
- about / Testing RESTful APIs in AngularJS
- URL / End-to-end testing
- PUT
- versus PATCH / Getting started with REST
Q
- $q
R
- Rake tasks
- URL / Adding new tasks
- REpresentational State Transfer (REST)
- about / Getting started with REST
- Request Token / OAuth authentication
- requisites, e-commerce applications
- about / Understanding the requirements for e-commerce applications
- Minimum Viable Product (MVP) / Minimum Viable Product for an e-commerce site
- defining / Defining the requirements
- user stories, URL / Defining the requirements
- RESTful APIs
- scaffolding / Scaffolding RESTful APIs
- testing, in AngularJS / Testing RESTful APIs in AngularJS
- Services tests / Understanding the Services tests
- $resource methods, testing / Testing all $resource methods
- Product Controller, testing / Testing the Product Controller
- RESTful product service
- implementing / Implementing a RESTful product service
- marketplace, building / Building the marketplace
- product controller, adding / Wiring the product controller with new RESTful methods
- Robomongo
- URL / Schemas
- routes, ExpressJS
- exploring / Understanding routes in ExpressJS
- run method
- about / Modules
S
- scopes, AngularJS
- about / Controllers and scopes
- search functionality
- implementing / Implementing the search and navigation functionality
- custom $resource methods, adding / Adding custom $resource methods
- working / Wrapping it up
- working, on client-side / How search works on the client side
- search textbox
- adding, to navigation bar / Adding search to the navigation bar
- secret / OAuth authentication
- security
- about / Next steps on security
- server-side authentication
- about / Understanding server-side authentication
- PassportJS, using / Authentication with PassportJS
- PassportJS, initializing / Initializing PassportJS
- user model / The user model
- authentication strategies and routes / Authentication strategies and routes
- local authentication / Local authentication
- local authentication, end-to-end tests / End-to-end tests for local authentication
- Service Oriented Architecture / Phase 3 – Micro-services
- services
- using / Factories and services
- session-based authentication
- working / Session-based authentication
- shopping carts
- seting up / Setting up the shopping cart
- ngCart, installing / Installing ngCart
- ngCart directives, using / Making use of ngCart directives
- Single-Page Applications (SPAs) / Introducing the MEAN stack, AngularJS
- Single Page Applications (SPA)
- reference link / Routing with AngularUI router
- about / Bootstrapping ExpressJS
- Single Page Applications (SPAs)
- about / Routing with AngularUI router
- SinonJS
- SQL knowledge
- mapping, to MongoDB / Mapping SQL knowledge to MongoDB
- SQL knowledge, mapping to MongoDB
- field / Basics concepts
- document / Basics concepts
- collection / Basics concepts
- database / Basics concepts
- index / Basics concepts
- embedded docs / Basics concepts
- primary key / Basics concepts
- SQL queries / Queries
- aggregators / Aggregators
- static methods / The static methods
- stress tests
- performing / Performing stress tests
- HTTP benchmarking tools / HTTP benchmarking tools
- Heroku deployment, benchmarking / Benchmarking Heroku deployment
- VPS multi-server deployment, benchmarking / Benchmarking VPS multi-server deployment
- sub-documents
- SuperTest
- using / Testing the API
- reference link / Testing the API
T
- templates, AngularJS
- about / Templates
- templates, products
- creating / Templates
- partial forms, creating / Partial forms
- product new, creating / Product New
- product edit, creating / Product edit
- product view, creating / The product view
- product list, creating / The product list
- main page, styling / Styling the main page
- Test Driven Development (TDD)
- testing / Testing, TDD, BDD, and NodeJS
- token-based authentication
- tools/libraries
- Twitter
- used, for authentication / Authenticating with Facebook, Google, and Twitter , Twitter
- URL / Twitter
U
- ui-router
- about / Directives, Routing with AngularUI router
- Uniform Resource Identifier (URI)
- about / Getting started with REST
- unit testing
- about / Unit testing
- ngMock / ngMock
- setting up / Setting up testing
- URL slugs / Adding the sidebar
V
- validations, Mongoose
- about / Validations
- built-in validations / Built-in validations
- custom validations / Custom validations
- Virtual Private Server (VPS)
- about / Deploying the application to the cloud, Heroku, Virtual Private Servers and Cloud Servers
- and Cloud Servers / Virtual Private Servers and Cloud Servers
- Digital Ocean / Digital Ocean
- virtuals / Virtuals
W
- web application
- scaling, vertical scale / Scaling web applications, Scaling out vertically – one server
- scaling, horizontal scale / Scaling web applications, Scaling out horizontally – multiple servers
- web applications
- scaling / Scaling web applications
- Web Application Security Testing Cheat Sheet
- URL / Next steps on security
- wireframes / Wire framing