Build With Abdallah logo Build With Abdallah Software · AI · Automation
Tutorial 7 min read Jun 10, 2026

Building a Real-Time Data Dashboard with Streamlit and Python 3.14

What You'll Build

A
Abdallah Mohamed
Senior Full-Stack Engineer
Building a Real-Time Data Dashboard with Streamlit and Python 3.14

Building a Real-Time Data Dashboard with Streamlit and Python 3.14

What You'll Build

In this tutorial, you'll learn how to build a real-time data dashboard using Streamlit and Python 3.14. By the end of this tutorial, you'll have an interactive web application that can display dynamic data updates in real-time. The dashboard will allow users to visualize data through various charts and graphs, making it suitable for monitoring live data feeds like stock prices, IoT sensor data, or web analytics.

Real-Time Dashboard

Why This Matters

Real-time data dashboards are crucial for environments where timely information is essential for decision-making. Whether you're a data analyst, a software engineer, or a business manager, having the ability to visualize and interact with live data can significantly enhance your ability to respond to changing conditions.

When to Use It:

  • Financial Markets: Monitor stock prices and market trends.
  • IoT Applications: Track sensor data in real-time.
  • Web Analytics: Observe user activity and engagement metrics.

Who Benefits:

  • Data Analysts: Gain insights from live data.
  • Business Managers: Make informed decisions quickly.
  • Developers: Build interactive applications with ease.

Architecture Overview

The dashboard will be built using the following components:

  1. Data Source: A simulated or real-time data feed.
  2. Backend: Python 3.14 script to process and serve data.
  3. Frontend: Streamlit application to visualize the data.

Here's a simple architecture diagram:

[ Data Source ] ---> [ Python Backend ] ---> [ Streamlit Frontend ]

Step-by-Step Implementation

Let's dive into building the real-time data dashboard. We'll start by setting up the environment, creating a basic Streamlit app, and then incorporating real-time data updates.

Step 1: Set Up Your Environment

Before we begin coding, ensure you have Python 3.14 and Streamlit installed. You can check your Python version by running:

python --version

If you don't have Streamlit installed, you can install it using pip:

pip install streamlit

Step 2: Create a Basic Streamlit Application

First, let's create a simple Streamlit application to ensure everything is set up correctly. Create a new Python file named app.py and add the following code:

import streamlit as st

st.title("Real-Time Data Dashboard")
st.write("Welcome to the real-time data dashboard!")

To run your Streamlit app, use the following command in your terminal:

streamlit run app.py

Open the provided URL in your web browser, and you should see a simple web page with the title and a welcome message. This confirms that your Streamlit environment is set up correctly.

Step 3: Simulate Real-Time Data

For demonstration purposes, we'll simulate real-time data using Python's random module. This will allow us to mimic data updates in our dashboard. Update your app.py file with the following code:

import streamlit as st
import numpy as np
import pandas as pd
import time

st.title("Real-Time Data Dashboard")

# Simulate real-time data
def generate_data():
    return np.random.randn(10, 2)

# Create a placeholder for the chart
chart_placeholder = st.empty()

while True:
    # Generate new data
    data = generate_data()
    
    # Convert to DataFrame
    df = pd.DataFrame(data, columns=['A', 'B'])
    
    # Update the chart
    chart_placeholder.line_chart(df)
    
    # Wait for a second before updating
    time.sleep(1)

This code introduces a function generate_data that simulates random data. It uses a while loop to continuously update the data, creating a dynamic line chart. The st.empty() function is used to create a placeholder for the chart, which is updated in each iteration of the loop.

Run the app again using:

streamlit run app.py

You should see a line chart that updates every second, simulating real-time data changes. This sets the foundation for building more complex real-time data visualizations.

Step 4: Enhance the Dashboard with More Visualizations

Now that we have a basic real-time line chart, let's expand our dashboard with additional visualizations to make it more informative. We'll add a bar chart and a table to display the latest data.

Update your app.py file as follows:

import streamlit as st
import numpy as np
import pandas as pd
import time

st.title("Real-Time Data Dashboard")

# Simulate real-time data
def generate_data():
    return np.random.randn(10, 2)

# Create placeholders for the charts and table
line_chart_placeholder = st.empty()
bar_chart_placeholder = st.empty()
table_placeholder = st.empty()

while True:
    # Generate new data
    data = generate_data()
    
    # Convert to DataFrame
    df = pd.DataFrame(data, columns=['A', 'B'])
    
    # Update the line chart
    line_chart_placeholder.line_chart(df)
    
    # Update the bar chart
    bar_chart_placeholder.bar_chart(df)
    
    # Update the table
    table_placeholder.table(df)
    
    # Wait for a second before updating
    time.sleep(1)

This code adds a bar chart and a table to the dashboard. The bar_chart and table functions from Streamlit are used to render these new elements. The placeholders ensure that each visualization is updated dynamically in real-time.

Step 5: Implement Real-Time Data Source (Optional)

While simulating data is useful for development, integrating a real-time data source can make your dashboard truly impactful. Depending on your use case, you might connect to APIs, databases, or message brokers.

Here's a simple example of how you might connect to a real-time API:

import streamlit as st
import pandas as pd
import requests
import time

st.title("Real-Time Data Dashboard")

# Example of connecting to a real-time API
def fetch_real_time_data():
    response = requests.get("https://api.example.com/data")
    data = response.json()
    return pd.DataFrame(data)

# Create placeholders for the charts and table
line_chart_placeholder = st.empty()
table_placeholder = st.empty()

while True:
    # Fetch new data
    df = fetch_real_time_data()
    
    # Update the line chart
    line_chart_placeholder.line_chart(df)
    
    # Update the table
    table_placeholder.table(df)
    
    # Wait for a second before updating
    time.sleep(1)

Replace "https://api.example.com/data" with the URL of your real-time data source. Ensure the API returns data in a format that can be converted into a DataFrame.

Common Mistakes

  1. Infinite Loop Issues: The while loop runs indefinitely, which can cause issues if not handled correctly. Ensure your application can be stopped gracefully.

  2. Network Latency: When using real-time APIs, network latency can affect data update rates. Consider implementing error handling and retry mechanisms.

  3. Resource Usage: Continuously running loops can consume significant resources. Monitor CPU and memory usage, especially when deploying to production.

  4. API Rate Limits: Be aware of API rate limits when fetching data, as exceeding these can lead to service interruptions.

How I Would Use This

  • When to Use: This dashboard is ideal for environments where real-time data monitoring is crucial, such as finance, IoT, and web analytics.
  • When to Avoid: Avoid using this setup for static data or when real-time updates are unnecessary, as it can lead to unnecessary complexity and resource usage.
  • Production Considerations: In a production environment, consider deploying on a robust platform like AWS or Heroku. Use caching and load balancing to manage traffic efficiently.
  • Cost and Maintenance: Monitor costs associated with API usage and server resources. Regularly update dependencies and handle security updates.

Lessons Learned

  • Tradeoffs: Balancing real-time updates with resource usage is key. Optimize data fetching and processing to avoid performance bottlenecks.
  • Unexpected Issues: Handling network errors and API rate limits can be challenging. Implement robust error handling and logging to diagnose issues.
  • Real-World Considerations: Ensure data privacy and security, especially when dealing with sensitive information. Implement authentication and encryption where necessary.

Next Steps

  1. Explore Streamlit Components: Dive deeper into Streamlit's custom components to create more interactive and feature-rich dashboards.
  2. Integrate with Databases: Learn how to connect your dashboard to databases like PostgreSQL or MongoDB for more complex data interactions.
  3. Deploy Your App: Explore deployment options on cloud platforms to make your dashboard accessible to a wider audience.
  4. Learn Data Processing: Enhance your data processing skills with libraries like Pandas and NumPy to handle larger datasets efficiently.

Sources