Would like to create a monthly metric dashboard This dashboard would have a page for ticket metrics (KPI cards at the top and breakdown charts below) Chat metrics on another page and csat metrics on a 3rd page. Use can toggle between pages
To upload files, please first save the app
import streamlit as st
import pandas as pd
# Function for KPI cards
def display_kpi(title, value):
col1, col2 = st.columns(2)
with col1:
st.subheader(title)
with col2:
st.metric(label=title, value=str(value))
# Dummy data
@st.cache_data
def get_ticket_data():
return {'Ticket Count': 150, 'Resolved Tickets': 120, 'Pending Tickets': 30}
def get_chat_data():
return {'Total Chats': 200, 'Resolved Chats': 180, 'Pending Chats': 20}
def get_csat_data():
return {'CSAT Score': '90%', 'Responses': 100}
st.sidebar.title('Monthly Metrics Dashboard')
page = st.sidebar.selectbox('Select Page', ['Ticket Metrics', 'Chat Metrics', 'CSAT Metrics'])
if page == 'Ticket Metrics':
st.title('Ticket Metrics')
data = get_ticket_data()
display_kpi('Total Tickets', data['Ticket Count'])
display_kpi('Resolved Tickets', data['Resolved Tickets'])
display_kpi('Pending Tickets', data['Pending Tickets'])
# Display breakdown chart
ticket_count = pd.Series(data)
st.bar_chart(ticket_count)
elif page == 'Chat Metrics':
st.title('Chat Metrics')
data = get_chat_data()
display_kpi('Total Chats', data['Total Chats'])
display_kpi('Resolved Chats', data['Resolved Chats'])
display_kpi('Pending Chats', data['Pending Chats'])
# Display breakdown chart
chat_count = pd.Series(data)
st.bar_chart(chat_count)
elif page == 'CSAT Metrics':
st.title('CSAT Metrics')
data = get_csat_data()
display_kpi('CSAT Score', data['CSAT Score'])
display_kpi('Responses', data['Responses'])
# Display breakdown chart
csat_count = pd.Series(data)
st.bar_chart(csat_count)
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?