Module 4: Web Application Deployment
Module Overview
You've put together a nice application - time to get it out there! A GitHub repo is great, but a deployed application is more effective in your portfolio as everyone in the hiring process (not just technical people) can check it out.
Note: While we use Heroku in this module as our primary deployment platform, it's important to know that Heroku has changed its pricing model and is no longer free by default. Alternatives like Render, Railway, or Fly.io offer similar functionality with generous free tiers for student projects. We'll include resources for these alternatives below.
Learning Objectives
1. Deploy a basic (single-server) web application to common cloud services
• Set up a cloud platform account (Heroku, AWS, etc.)
• Prepare a Flask application for deployment
• Configure environment variables for different deployment environments
• Manage dependencies for cloud deployment
• Deploy your application to a cloud service
• Monitor deployed application performance and logs
2. Securely connect a deployed web application to a relational database back-end
• Configure database connection strings for production environments
• Implement secure credential management
• Set up a production database instance
• Migrate local database schema to production
• Implement database connection pooling
• Manage database connections in a deployed environment
Guided Project
Web Application Deployment
Please read the README.md file in the GitHub repository for a complete overview of this module.
Guided Project File:
guided-project.md
Module Assignment
Please read the assignment.md file in the GitHub repository for detailed instructions on completing your assignment tasks.
Assignment File:
assignment.md
Assignment Solution Video
Check for Understanding
Complete the following items to test your understanding:
- Deploy a Flask application to Heroku
- Configure environment variables for secure database connections
- Set up a production database for your application
- Implement MongoDB in your Flask application
- Secure your web application for production use