This plan includes
- Limitedfree coursesaccess
- Play & PauseCourse Videos
- VideoRecorded Lectures
- Learn onMobile/PC/Tablet
- Quizzes andReal Projects
- Lifetime CourseCertificate
- Email & ChatSupport
What you'll learn?
- Build an interactive data analytics dashboard using the Dash library in Python
- Model coronavirus cases and deaths using generalized logistic functions
- Smooth data using locally weighted scatterplot smoothing
- Read and clean data so that it is suitable for modeling
- Learn how to use Plotly, an interactive data visualization library in Python targeting the web
- Learn HTML and CSS fundamentals to add and style elements of the dashboard
- Setup an Ubuntu server running NGINX to host the dashboard on the web for all to see
- Run nightly cron jobs to update the data and model predictions
- Encapsulate all of your code into Python classes to ease automation
- Learn how to complete a comprehensive, end-to-end project in Python using a vast array of skills
Course Overview
This course teaches you all of the skills to build interactive data analytics dashboards with Python. Specifically, you will be building a Coronavirus Forecasting Dashboard that shows historical and predicted values for deaths and cases for all countries in the world and US states from the ongoing coronavirus pandemic. The final product will be a live dashboard, automatically updated daily, hosted on a remote server for anyone, anywhere in the world to see!
You will learn and complete the entire process for building the dashboard including the following topics:
-
Getting, Cleaning, and Transforming the Data - You will learn how to collect the data, find and clean bad data, and transform it so that it can be used for building models capable of prediction.
-
Data Smoothing - You will learn several different techniques such as LOWESS to smooth the jagged raw data so that the model can better detect trends.
-
Exponential Growth and Decline Models - You will begin modeling coronavirus cases for each area of the world with these simple models that can capture a single exponential growth or decline phase, but not both.
-
Logistic Growth Models - You will learn about a separate class of "S-Curve" models capable of capturing both exponential growth and decline in the same model.
-
Modeling New Waves - Coronavirus cases appear in waves over different time periods. You will learn how to change your model so that it can detect any number of new waves in the future.
-
Encapsulation into Classes - After selecting your model, you will encapsulate all of the code together into Python classes, eventually to be used in your final production code.
-
Visualizations with Plotly - You will learn how to use the Plotly Python library to create interactive data visualizations targeted for the web
-
HTML and CSS - You are building a web application and will learn the fundamentals of HTML and CSS to help add customization with the help of Dash.
-
Building the Dashboard with Dash - You will learn how to build all of the components and interactivity of the dashboard with the Dash Python library.
-
Deployment - One of the most exciting parts of a project is deploying it on your own server for the world to see. You will learn two different deployment options - one simple and the other more complex, but with more flexibility.
What's Included?
This course comes with a massive amount of material including:
-
13 Jupyter Notebooks
-
26 Exercises with detailed solutions
-
200 page PDF of the entire course content
-
All production code for the dashboard
Technologies used
-
All code for developing the dashboard will be done using Python
-
Pandas will be used extensively for analyzing and transforming data
-
Statsmodels will be used for smoothing
-
Scipy will be used for building the models for coronavirus cases and parameter optimization
-
Matplotlib will be used in the notebooks for static visualizations
-
Plotly will be used for interactive data visualizations that appear in the dashboard
-
Dash will be used for building the dashboard itself
-
HTML/CSS will be used together with Dash to customize components of the dashboard
-
You'll learn how to setup your own Linux Ubuntu server to run your dashboard
Pre-requisites
- Students should feel comfortable with the fundamentals of Python
- Knowledge of the pandas library in Python is helpful
Target Audience
- Intermediate Python programmers excited to complete a comprehensive project covering all of the steps to launch a dashboard on the web for all to see.
Curriculum 152 Lectures 08:34:07
Section 1 : Getting Started
- Lecture 2 :
- Downloading the Course Material
- Lecture 3 :
- Exploring the Course Material
- Lecture 4 :
- Note for Windows Users
- Lecture 5 :
- Creating the Virtual Environment (fast)
- Lecture 6 :
- Creating the Virtual Environment
- Lecture 7 :
- Activating and Deactivating the Virtual Environment
- Lecture 8 :
- Launching and Exploring the Dashboard
- Lecture 9 :
- Opening the Jupyter Notebooks
- Lecture 10 :
- A Guide To Completing the Course
Section 2 : Getting The Data
- Lecture 1 :
- Downloading the Data
- Lecture 2 :
- Downloading all of the Data
- Lecture 3 :
- Saving the Data Locally
Section 3 : Data Cleaning and Transformation
- Lecture 1 :
- Selecting the Correct Columns
- Lecture 2 :
- Updating the Run Function
- Lecture 3 :
- Updating Area Names
- Lecture 4 :
- Aggregate Repeating Areas
- Lecture 5 :
- Transposing the Data to Time Series
- Lecture 6 :
- Finding and Handling Bad Data
- Lecture 7 :
- Encapsulate all Steps into a Class
Section 4 : Data Smoothing
- Lecture 1 :
- Moving Average Smoothing
- Lecture 2 :
- LOWESS Smoothing
- Lecture 3 :
- Build a Function to Smooth the Data
Section 5 : Exponential Growth and Decline Models
- Lecture 1 :
- Exponential Growth and Decline
- Lecture 2 :
- Finding Optimal Parameters to Model Total Cases with scipy's least_squares
- Lecture 3 :
- Predicting Unseen Data
- Lecture 4 :
- Automate Model Training
- Lecture 5 :
- Automate Daily Predictions
- Lecture 6 :
- Automate Cumulative Predictions
- Lecture 7 :
- Plotting Actual vs Prediction
- Lecture 8 :
- Automating Smoothing, Training, Predicting, and Plotting
- Lecture 9 :
- Continuous Exponential Growth Models
- Lecture 10 :
- Modeling Exponential Decline
Section 6 : Logistic Growth Models
- Lecture 1 :
- Assymptotes
- Lecture 2 :
- S-Curves
- Lecture 3 :
- Experimenting with Logistic Function Parameters
- Lecture 4 :
- Estimating Logistic Function Parameters
- Lecture 5 :
- Generalized Logistic Function
Section 7 : Modeling New Waves
- Lecture 1 :
- Limit the Data
- Lecture 2 :
- Vertically Shifting the Generalized Logistic Function
- Lecture 3 :
- Upper Bounds of L
- Lecture 4 :
- Automating Parameter Bounds
- Lecture 5 :
- Finding New Waves
- Lecture 6 :
- The Final Model
Section 8 : Encapsulating into Classes
- Lecture 1 :
- The CasesModel Class
- Lecture 2 :
- Instantiating and Running CasesModel
- Lecture 3 :
- Predict Deaths using Case Fatality Ratio
- Lecture 4 :
- The DeathsModel Class
- Lecture 5 :
- Instantiating and Running DeathsModel
- Lecture 6 :
- Creating Final Tables for the Dashboard
- Lecture 7 :
- Create Summary Table of Current Date
- Lecture 8 :
- Code within the Modules
Section 9 : Running all of the Code
- Lecture 1 :
- Explaining update.py
- Lecture 2 :
- Executing update.py
Section 10 : Visualization with Plotly
- Lecture 1 :
- Intro to Plotly
- Lecture 2 :
- Discovering Trace Properties
- Lecture 3 :
- Updating the Layout
- Lecture 4 :
- Creating a Figure with Multiple Traces
- Lecture 5 :
- Automate Plotting of an Area
- Lecture 6 :
- Creating Subplots
- Lecture 7 :
- Adding Annotations
- Lecture 8 :
- Choropleth Maps
- Lecture 9 :
- Plotly Summary
Section 11 : Intro to HTML and CSS
- Lecture 1 :
- HTML Elements
- Lecture 2 :
- Writing HTML in the Notebook
- Lecture 3 :
- The Anchor Element
- Lecture 4 :
- The Image Element
- Lecture 5 :
- Unordered and Ordered Lists and List Items
- Lecture 6 :
- Logical Division of Content Element
- Lecture 7 :
- HTML Syntax
- Lecture 8 :
- Block vs Inline Elements
- Lecture 9 :
- Styling with CSS
- Lecture 10 :
- CSS Distance Units
- Lecture 11 :
- Element Margins
- Lecture 12 :
- Changing Display from Block to Inline
- Lecture 13 :
- Selecting Elements by class and id
- Lecture 14 :
- Container-Item Terminology
- Lecture 15 :
- The Flexbox Layout
- Lecture 16 :
- The Grid Layout
Section 12 : Building the Dashboard with Dash
- Lecture 1 :
- Parts of a Dash Application
- Lecture 2 :
- A Minimal Dashboard
- Lecture 3 :
- HTML Elements in Dash
- Lecture 4 :
- Adding CSS
- Lecture 5 :
- Creating a Data Table
- Lecture 6 :
- Creating Tabs
- Lecture 7 :
- Recreating all Plotly Figures
- Lecture 8 :
- Adding Plotly Figures to the Dashboard
- Lecture 9 :
- Adding Maps to the Dashboard
- Lecture 10 :
- Adding Radio Buttons Above the Map
- Lecture 11 :
- Interactivity Using Callbacks
- Lecture 12 :
- Single Callback for Updating both World and USA Data
- Lecture 13 :
- Callback to Change the Map
- Lecture 14 :
- Dashboard Complete
- Lecture 15 :
- Launching the Dashboard while Notebook Running
- Lecture 16 :
- Opening dashboard.py
- Lecture 17 :
- Comments in dashboard.py
- Lecture 18 :
- Imports and Instantiation
- Lecture 19 :
- Global Variables and Reading in the Data
- Lecture 20 :
- Functions to Create Tables and Graphs
- Lecture 21 :
- Creating the Navigation Bar
- Lecture 22 :
- Creating the Dashboard Headers
- Lecture 23 :
- Creating the Tabs and Tables
- Lecture 24 :
- Creating the Graph Components
- Lecture 25 :
- Creating the Map and Radio Buttons
- Lecture 26 :
- Creating the Cards
- Lecture 27 :
- Creating the Containers
- Lecture 28 :
- Adding the Callbacks
- Lecture 29 :
- Dashboard Complete
- Lecture 30 :
- Opening the CSS File
- Lecture 31 :
- CSS Variables
- Lecture 32 :
- Top Info and Container CSS
- Lecture 33 :
- Grid Container CSS
- Lecture 34 :
- Grid Area CSS
- Lecture 35 :
- Radio Button CSS
- Lecture 36 :
- Tab CSS
- Lecture 37 :
- Side Card CSS
- Lecture 38 :
- CSS for Smaller Screens
- Lecture 39 :
- Dash Summary
Section 13 : Deployment
- Lecture 1 :
- What is a Web Server
- Lecture 2 :
- Getting Started with Python Anywhere
- Lecture 3 :
- The Python Anywhere Dashboard
- Lecture 4 :
- Create New Web App
- Lecture 5 :
- Upload the Files
- Lecture 6 :
- Change the Working Directory
- Lecture 7 :
- Modify WSGI File
- Lecture 8 :
- Open Console
- Lecture 9 :
- Install dash_bootstrap_components
- Lecture 10 :
- Install statsmodels
- Lecture 11 :
- Verify Dashboard is Up and Running
- Lecture 12 :
- Create Daily Task to Run update.py
- Lecture 13 :
- Log Files
- Lecture 14 :
- Python Anywhere Deployment Complete
- Lecture 15 :
- Deploying on Ubuntu with Vultr
- Lecture 16 :
- Launch Ubuntu Server
- Lecture 17 :
- Upgrade Instance to use IPv4
- Lecture 18 :
- Install PuTTY (Windows)
- Lecture 19 :
- SSH into Server (Windows)
- Lecture 20 :
- SSH into Server (Mac and Linux)
- Lecture 21 :
- Updating and Upgrading with apt
- Lecture 22 :
- Install ZSH
- Lecture 23 :
- Install pip and venv
- Lecture 24 :
- Install NginX
- Lecture 25 :
- Create Project Directory
- Lecture 26 :
- Transfer project files to server (Mac and Linux)
- Lecture 27 :
- Create Virtual Environment
- Lecture 28 :
- Install Requirements
- Lecture 29 :
- Configuring Gunicorn with systemd
- Lecture 30 :
- Configure NginX to Communicate with Gunicorn
- Lecture 31 :
- Accessing Log Files with journalctl
- Lecture 32 :
- Automatic Daily Updates with a Cron Job
- Lecture 33 :
- Deployment Complete
- Lecture 34 :
- Transfer project files to server (Windows)
Our learners work at
Frequently Asked Questions
How do i access the course after purchase?
It's simple. When you sign up, you'll immediately have unlimited viewing of thousands of expert courses, paths to guide your learning, tools to measure your skills and hands-on resources like exercise files. There’s no limit on what you can learn and you can cancel at any time.Are these video based online self-learning courses?
Yes. All of the courses comes with online video based lectures created by certified instructors. Instructors have crafted these courses with a blend of high quality interactive videos, lectures, quizzes & real world projects to give you an indepth knowledge about the topic.Can i play & pause the course as per my convenience?
Yes absolutely & thats one of the advantage of self-paced courses. You can anytime pause or resume the course & come back & forth from one lecture to another lecture, play the videos mulitple times & so on.How do i contact the instructor for any doubts or questions?
Most of these courses have general questions & answers already covered within the course lectures. However, if you need any further help from the instructor, you can use the inbuilt Chat with Instructor option to send a message to an instructor & they will reply you within 24 hours. You can ask as many questions as you want.Do i need a pc to access the course or can i do it on mobile & tablet as well?
Brilliant question? Isn't it? You can access the courses on any device like PC, Mobile, Tablet & even on a smart tv. For mobile & a tablet you can download the Learnfly android or an iOS app. If mobile app is not available in your country, you can access the course directly by visting our website, its fully mobile friendly.Do i get any certificate for the courses?
Yes. Once you complete any course on our platform along with provided assessments by the instructor, you will be eligble to get certificate of course completion.For how long can i access my course on the platform?
You require an active subscription to access courses on our platform. If your subscription is active, you can access any course on our platform with no restrictions.Is there any free trial?
Currently, we do not offer any free trial.Can i cancel anytime?
Yes, you can cancel your subscription at any time. Your subscription will auto-renew until you cancel, but why would you want to?
Instructor
2906 Course Views
4 Courses