Building the Frontend of Python Web Applications with Streamlit Course Syllabus
Full curriculum breakdown — modules, lessons, estimated time, and outcomes.
Overview: This course provides a hands-on introduction to building interactive, data-driven web applications using Streamlit, a powerful Python library for frontend development. Over approximately 8 days of project-based learning, you'll progress from setting up your environment to deploying scalable apps. Each module combines concise theory with live coding exercises, emphasizing real-world use cases in data visualization, user input handling, and state management. By the end, you’ll deploy a production-ready app using Docker and Streamlit Community Cloud, gaining practical skills ideal for data scientists, analysts, and Python developers.
Module 1: Introduction to Streamlit & Setup
Estimated time: 3 hours
- Installing Streamlit and setting up the development environment
- Understanding Streamlit app structure and execution model
- Running and debugging the first Streamlit application
- Creating a 'Hello, Streamlit!' app with basic output
Module 2: Widgets & User Input
Estimated time: 3 hours
- Using input widgets: text inputs, sliders, checkboxes, and select boxes
- Handling user input dynamically in real time
- Grouping inputs with forms and disabling submission states
- Building a BMI calculator with interactive inputs and feedback
Module 3: Data Display & Visualization
Estimated time: 3 hours
- Displaying Pandas DataFrames with dynamic filtering
- Integrating Matplotlib and Altair for interactive charts
- Plotting geospatial data using Streamlit map components
- Creating a time-series dashboard for COVID-19 data
Module 4: Layouts, Themes & Styling
Estimated time: 3 hours
- Organizing content with columns, containers, and expanders
- Using tabs for multi-section layouts
- Customizing themes and toggling dark/light modes
- Injecting custom CSS for branding and layout control
Module 5: Media, Markdown & Interactivity
Estimated time: 3 hours
- Displaying images, audio, and video files
- Formatting text with Markdown for rich content
- Implementing callbacks and event-driven updates
- Building an interactive image gallery with caption filters
Module 6: State Management & Caching
Estimated time: 3 hours
- Managing session state to preserve user inputs
- Caching functions and data loading for performance
- Handling user-triggered callbacks efficiently
- Optimizing app reruns and reducing latency
Module 7: Integrations & Authentication
Estimated time: 3 hours
- Consuming REST APIs within Streamlit apps
- Implementing basic authentication with OAuth
- Embedding third-party content securely
- Building a login-protected news reader using a public API
Module 8: Deployment & Scaling
Estimated time: 4 hours
- Containerizing Streamlit apps with Docker
- Deploying to Streamlit Community Cloud
- Setting up CI/CD pipelines for automated updates
- Best practices for scaling and monitoring production apps
Prerequisites
- Familiarity with Python programming (variables, functions, conditionals)
- Basic knowledge of Pandas for data manipulation
- Understanding of HTTP and REST APIs (helpful but not required)
What You'll Be Able to Do After
- Build interactive, data-driven web applications using only Python
- Design responsive layouts with widgets, charts, and media
- Manage application state and optimize performance with caching
- Integrate external data sources and secure user access
- Deploy production-ready Streamlit apps using Docker and CI/CD