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.