Loading...
Loading...
Loading...
Loading...
Your task this week is to deploy and test the e-commerce app you have completed in the previous two weeks.
Before you start you need to create a testing and deployment plan. We would like you plan a testing strategy that will have broad coverage of your project. The tools we would like you to use to achieve this can include Cypress, Postman and the Node built in testing library.
We would also like you to deploy this project using an EC2 instance for you server and a S3 bucket to serve your static files.
What parts of the application logic are the most critical to cover with unit tests?
How will you mock external dependencies (like databases or APIs) during unit testing?
What are the key user journeys and flows within the application that must be covered by end-to-end tests?
Where will the code that represents your infrastructure live and how will it be organised?
How will you manage configuration variables for different environments (development, staging, production)?
What are the different AWS products you will need to configure to make your deployment successful.
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.
Finish previous courses
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
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
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
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.