prasad799596's picture
Update app.py
4fb54e3 verified
Raw History Blame Contribute Delete
5.7 kB
import streamlit as st
import pandas as pd
from calculations import calculate_roi
from ai_synopsis import generate_synopsis
from pdf_generator import generate_pdf
from email_sender import send_email
# ====================================
# PAGE CONFIG
# ====================================
st.set_page_config(
page_title="AI ROI Calculator",
layout="wide"
)
# ====================================
# TITLE
# ====================================
st.title("AI ROI Calculator")
st.markdown(
"Generate ROI savings reports with AI-powered synopsis"
)
st.divider()
# ====================================
# CUSTOMER DETAILS
# ====================================
st.subheader("Customer Details")
customer_name = st.text_input("Full Name")
customer_email = st.text_input("Email Address")
company_name = st.text_input("Company Name")
phone_number = st.text_input("Phone Number")
st.divider()
# ====================================
# MAIN LAYOUT
# ====================================
col1, col2 = st.columns(2)
# ====================================
# LEFT COLUMN
# ====================================
with col1:
st.subheader("Business Inputs")
industry = st.selectbox(
"Select Industry",
[
"Retail",
"Healthcare",
"Manufacturing",
"Logistics",
"Education",
]
)
num_assets = st.number_input(
"Number of Assets",
min_value=1,
value=1000,
)
asset_value = st.number_input(
"Average Asset Value",
min_value=1,
value=150,
)
num_employees = st.number_input(
"Number of Employees",
min_value=1,
value=10,
)
employee_salary = st.number_input(
"Annual Employee Salary",
min_value=1,
value=32800,
)
productivity_gain_percent = st.slider(
"Productivity Gain (%)",
1,
100,
10,
)
audit_days = st.number_input(
"Audit Days Per Year",
min_value=1,
value=2,
)
auditors = st.number_input(
"Number of Auditors",
min_value=1,
value=3,
)
auditor_cost = st.number_input(
"Daily Auditor Cost",
min_value=1,
value=1500,
)
# ====================================
# RIGHT COLUMN
# ====================================
with col2:
st.subheader("ROI Results")
roi_data = calculate_roi(
num_assets,
asset_value,
num_employees,
employee_salary,
productivity_gain_percent,
audit_days,
auditors,
auditor_cost,
)
df = pd.DataFrame(
roi_data.items(),
columns=["Category", "Amount"]
)
st.dataframe(df)
st.metric(
label="Total Annual Savings",
value=f"INR {roi_data['Total Savings']}"
)
st.divider()
# ====================================
# GENERATE REPORT BUTTON
# ====================================
if st.button("Generate AI Report"):
# ====================================
# VALIDATION
# ====================================
if (
not customer_name.strip()
or not customer_email.strip()
or not company_name.strip()
or not phone_number.strip()
):
st.error("Please fill all customer details.")
else:
with st.spinner("Generating AI Synopsis..."):
# ====================================
# USER DATA
# ====================================
user_data = {
"Customer Name": customer_name,
"Customer Email": customer_email,
"Company Name": company_name,
"Phone Number": phone_number,
"Industry": industry,
"Number of Assets": num_assets,
"Average Asset Value": asset_value,
"Employees": num_employees,
}
# ====================================
# AI DATA
# ====================================
ai_data = {
"industry": industry,
"num_assets": num_assets,
"asset_value": asset_value,
"num_employees": num_employees,
"total_savings": roi_data['Total Savings'],
}
# ====================================
# GENERATE AI SYNOPSIS
# ====================================
synopsis = generate_synopsis(ai_data)
st.subheader("AI Generated Synopsis")
st.write(synopsis)
# ====================================
# GENERATE PDF
# ====================================
pdf = generate_pdf(
user_data,
roi_data,
synopsis,
)
# ====================================
# SEND EMAIL
# ====================================
email_status = send_email(
user_data,
roi_data
)
if email_status:
st.success(
"Lead details sent successfully!"
)
else:
st.error(
"Failed to send lead email."
)
# ====================================
# DOWNLOAD PDF
# ====================================
st.download_button(
label="Download Report",
data=pdf,
file_name="ai_roi_report.pdf",
mime="application/pdf",
)