Week08 Project04 Test Deploy Overview

Week of October 28th

This week focuses on testing, deployment, and optimization of the e-commerce web application developed over the past two weeks. The emphasis is on implementing comprehensive testing strategies, deploying the full-stack application to AWS, and setting up continuous integration and deployment pipelines.

Workshops

Execute Program

  • Finish previous courses

Topics

  • Writing and organizing unit tests, integration tests, and end-to-end tests
  • Mocking external dependencies in tests
  • Understanding and configuring different deployment environments (development, staging, production)
  • Infrastructure as Code concepts and implementation with AWS CDK
  • AWS resource provisioning and configuration (EC2, S3, security groups)
  • Environment variable management across different deployment stages
  • Continuous Integration and Continuous Deployment (CI/CD) pipelines
  • Optimizing applications for production deployment
  • AWS permissions and security best practices

Project

  • Develop a comprehensive testing strategy for the e-commerce application
  • Implement tests using Cypress, Postman, and Node’s testing library
  • Create a deployment plan for AWS infrastructure
  • Deploy the backend to an AWS EC2 instance
  • Host static frontend files on an AWS S3 bucket
  • Set up and configure necessary AWS resources (e.g., security groups, IAM roles)
  • Implement Infrastructure as Code using AWS CDK
  • Configure environment variables for different deployment stages
  • Document the setup, deployment process, and usage instructions

Stretch Goals

  • Set up a GitHub Actions CI/CD pipeline for automatic deployment on push to main
  • Implement staging environments in addition to development and production
  • Optimize application performance for production environment

Additional Skills

  • Code organization and modularization for testability
  • Advanced TypeScript usage in testing and deployment scripts
  • Understanding of cloud architecture and best practices
  • Debugging deployment issues in cloud environments
  • Writing clear and comprehensive technical documentation

This week brings together all aspects of the software development lifecycle, from testing to deployment, providing a holistic view of bringing a web application to production. It emphasizes the importance of thorough testing, secure and scalable deployment practices, and the use of modern DevOps tools and techniques.