Part 1, Chapter 2



  1. Upgraded to the latest versions of-
    • Python
    • Flask
    • Docker, Docker Compose, and Docker Machine
    • Postgres
    • Node and NPM
    • React
    • Create React App
    • Swagger UI
  2. Converted almost all the "docker-compose run" commands to "docker-compose exec"
  3. Updated all screenshots

Part 1:

  1. Added more info about handling Docker volumes on Windows

Part 2:

  1. Updated the CORS section

Part 4:

  1. Updated the "End-to-End Test Setup" chapter
  2. Fixed typos in the "React Form Validation", "React Flash Messaging", "Swagger Setup" chapters
  3. Refactored confusing steps in the "Update Test Script" chapter

Part 5

  1. Added some theory to the load balancer section in the "Elastic Load Balancer" chapter
  2. Fixed typos and added info about rolling vs blue/green deployments in the "Elastic Container Service" chapter
  3. Added multi-line terminal command example for Windows users in the "Setting up RDS" chapter

Part 6

  1. Refactored confusing JSX in the "React Ace Code Editor" chapter
  2. Added some theory to the "Code Evaluation with AWS Lambda" chapter
  3. Refactored confusing steps ECS Deployment steps in various chapters

Part 7:

  1. Fixed typos in "E2E Refactor" and "ECS Prod Update"


  1. Fixed typos
  2. Added a few notes to the various theory sections


Part 1

  1. Updated the spacing in various code snippets so they fit better on the page
  2. Expanded the microservices theory section
  3. Added a few environment-specific notes

Part 6

  1. Added a tidbit about using separate databases for each service vs. using a single database



  1. Upgraded to the latest versions of-
  2. Python
  3. Flask
  4. Docker, Docker Compose, and Docker Machine
  5. Postgres
  6. Node and NPM
  7. React
  8. Create React App
  9. Swagger UI
  10. Added comments (where appropriate) to the code snippets to show the new portions of the code, which should make it easier to know where to update the code
  11. Used Alpine Linux based Docker images whenever possible
  12. Removed Docker Machine for local development
  13. Replaced Bootstrap with Bulma
  14. Updated or added a number of code comments explaining what the code is doing and why

Part 2:

  1. Added all Jest snapshots to git

Part 4:

  1. Replaced TestCafe with Cypress
  2. Refactored the e2e screenshot feature so that they are automatically taken on failure

Parts 5, 6, and 7:

  1. Updated all AWS images

Part 7:

  1. Added additional next steps and challenges



  1. Upgraded to the latest versions of-
  2. Python
  3. Node and NPM
  4. Docker, Docker Compose, and Docker Machine
  5. React
  6. Swagger UI
  7. Added directory structure overviews to the end of each part
  8. Corrected grammar, rewrote confusing sections

Part 1:

  1. Replaced Flask-Script with the Flask CLI tool
  2. Added info about using a .dockerignore file

Part 2:

  1. Added the Flask Debug Toolbar extension
  2. Updated React Snapshot testing
  3. Added multistage Docker builds to the React app
  4. Replaced the pushstate server with Nginx for the production React Dockerfile
  5. Added a Docker data volume for the React app

Parts 5, 6, and 7:

  1. Added info on how to set up a new Amazon IAM user
  2. Updated all AWS images


Added Part 7:

  1. Refactored the AWS Lambda function
  2. Added type checking via PropTypes
  3. Introduced a scores service
  4. Refactored a number of React components



  1. Simplified the overall project structure
  2. Added full-text search
  3. Upgraded to latest versions of Docker and Docker Compose file version
  4. Added lots and lots of screenshots
  5. Upgraded to the latest versions of Python and Node
  6. Updated the development workflow so that all development work is done within the Docker containers
  7. Updated the test script
  8. Upgraded to TestCafe v0.18.2 for the e2e tests
  9. Upgraded to OpenAPI 3.0 (based on the original Swagger 2.0 specification)


  1. Upgraded to React v16
  2. Upgraded Bootstrap 3 to 4
  3. Added auto-reload to the Docker container to speed up the development process
  4. Added client-side React tests with Jest and Enzyme


  1. Refactored portions of the Flask APIs, adding a serialize method to the models
  2. Refactored Flask error handlers to clean up the views
  3. Added caching with Flask-Cache
  4. Mocked time.sleep in the test suite

Orchestration and Deployment:

  1. Revamped Parts 5 and 6
  2. Reviewed ECS Service Task Placement Strategy
  3. Added an AWS Billing Alarm
  4. Added info on using Docker cache to speed up Travis CI builds
  5. Added basic IAM and Route 53 setup info

Mark as Completed