Practical AngularJS

Practical AngularJS

Dinis Cruz
Buy on Leanpub

Table of Contents

Change log›

  • I Part I - An AngularJS application
    • 1. Why? How? What?
    • 1.1 How this book is built
    • 1.2 Maturity Models Project
    • 1.3 Maturity Models source code
    • 1.4 Start with tests
    • 1.5 The power of Simple
    • 1.6 I really like Angular 1.x
    • 1.7 My Application Security Background
    • 1.8 Price of this book
    • 2. Maturity Models
    • 2.1 Data repositories
    • 2.2 Tests - API
    • 2.3 Tests - QA - Browser
    • 2.4 Tests - QA - Http
    • 2.5 Tests - QA - JsDom
    • 2.6 UI - Server-side
    • 2.7 Maturity Models - Features
    • 2.8 App structure
    • 2.9 Code - QA
    • 2.10 Code - UI - Angular
    • 2.11 Code - Web Services - API
    • 2.12 Tests - QA
    • 2.13 Tests - UI
    • 2.14 Adding an Controller
    • 3. Case-study: Adding a new API and View
    • 3.1 Adding Backend Service
    • 4. Angular-v1
    • 4.1 $digest
    • 4.2 $http
    • 4.3 $injector
    • 4.4 $scope and $rootScope
    • 4.5 $timeout
    • 4.6 Angular mocks
    • 4.7 Config
    • 4.8 Controllers
    • 4.9 Dependency Injection
    • 4.10 Directives
    • 4.11 Module
    • 4.12 Opinionated Angular
    • 4.13 Patches
    • 4.14 REPL from inspector
    • 4.15 Routes HTML 5 mode
    • 4.16 Routes
    • 4.17 Services
    • 4.18 Should angular 1.x be forked
    • 4.19 Simple 1 page Angular
    • 4.20 Template-Urls
    • 4.21 Testing Angular
    • 4.22 Two-way Model binding
    • 4.23 Why Angular 1x
    • 5. Technologies used
    • 5.1 Agile using Kanban WIP
    • 5.2 Bower
    • 5.3 CoffeeScript
    • 5.4 CSS
    • 5.5 D3
    • 5.6 Digital Ocean
    • 5.7 Docker-Hub
    • 5.8 Docker
    • 5.9 Electrium
    • 5.10 Foundation
    • 5.11 Git - Branches
    • 5.12 Git - Commits
    • 5.13 Git - Rebase
    • 5.14 Git - Submodules
    • 5.15 Git - Tags
    • 5.16 GitHub
    • 5.17 Gulp
    • 5.18 HTML
    • 5.19 JIRA
    • 5.20 JQuery
    • 5.21 Javascript
    • 5.22 Node - Express
    • 5.23 Node - Fluentnode
    • 5.24 JsDom
    • 5.25 Karma
    • 5.26 Mocha
    • 5.27 Morgan
    • 5.28 NPM
    • 5.29 PhantomJS
    • 5.30 Node modules
    • 5.31 Node - Supertest
    • 5.32 Node
    • 5.33 Open Source
    • 5.34 Pug
    • 5.35 WallabyJs
    • 5.36 WebStorm
    • 5.37 Docker Cloud
    • 5.38 Travis
    • 6. Development
    • 6.1 Code Formatting
    • 6.2 Continuous Deployment
    • 6.3 Fluent Asserts
    • 6.4 Issue Creation Strategy
    • 6.5 Risk Acceptance Strategy
    • 7. Testing
    • 7.1 5000% code coverage
    • 7.2 All tests pass, all the time
    • 7.3 App Actions via Chrome Bookmarks
    • 7.4 Be happy when tests fail
    • 7.5 Be happy with changes
    • 7.6 Code without looking at the app
    • 7.7 Create Test APIs and DSLs
    • 7.8 Good tests design is critical
    • 7.9 Minimum TDD requirement
    • 7.10 No limitations on test stack
    • 7.11 Perform demos using Automation
    • 7.12 Print tests for review
    • 7.13 Real code is simple
    • 7.14 Real-time Code coverage
    • 7.15 Real time test execution
    • 7.16 Run tests on all Commits of all Branches
    • 7.17 Security vulns are features
    • 7.18 WebStorm tests setup
    • 7.19 Write tests for all bugs
    • 7.20 Controlling dependencies
    • 7.21 Real world angular bugs
    • 8. Security Tests
    • 8.1 AngularJS Security
    • 8.2 A1 - Injection
    • 8.3 T11 - Denial of Service
    • 8.4 A2 - Broken Authentication
    • 8.5 A3 - Cross-site-scripting
    • 8.6 Accepting Risk
    • 8.7 Answer Security questions with (unit) Tests
    • 8.8 Attack surface changes breaks tests
    • 8.9 Create tools to Brute Force app
    • 8.10 Deadlines create pollution
    • 8.11 How to pentest this app
    • 8.12 Http Headers
    • 8.13 No security by obscurity
    • 8.14 OWASP Top 10
    • 8.15 Other vulns that need tests
    • 8.16 Pattern - Don’t care about security
    • 8.17 Pattern - Don’t use .html() method
    • 8.18 Pattern - Don’t use jQuery
    • 8.19 Pattern - Don’t use strings
    • 8.20 Pattern - Validate all input
    • 8.21 Pollution not Technical Debt
    • 8.22 Vulnerabilities by Design
    • 8.23 Pattern - Don’t use server-side templates
    • 9. GitHub
    • 9.1 Commits
    • 9.2 Images Copy and Paste
    • 9.3 Issues - Labels
    • 9.4 Issues
    • 9.5 Offline coding
    • 9.6 Online editor
    • 9.7 Pull Requests
    • 9.8 Pulse and Graphs
    • 9.9 Releases
    • 9.10 Todo’s Checklists
    • 9.11 Version Control
    • 9.12 WebHooks
    • 9.13 Wiki
    • 10. Future
    • 10.1 SAST Analysis

Notes›

    Practical AngularJS/