import streamlit as st import pandas as pd import requests import os st.set_page_config(page_title="SuperKart Forecast", layout="centered") st.title("🛒 SuperKart Quarterly Sales Forecast") st.write("Enter details below, then click 🔮 Predict.") BACKEND_URL = os.getenv("BACKEND_URL", "$BACKEND_URL") with st.form("forecast_form"): c1, c2 = st.columns(2) with c1: pw = st.number_input("Product Weight (kg)", 0.0,100.0,12.5,0.1) pa = st.number_input("Allocated Area Ratio",0.0,1.0,0.08,0.005) mrp = st.number_input("Product MRP (₹)", 0.0,1000.0,50.0,1.0) year = st.number_input("Store Established Year",1900,2025,2015,1) size = st.selectbox("Store Size", ["low","medium","high"]) with c2: city = st.selectbox("City Tier", ["Tier 1","Tier 2","Tier 3"]) stype = st.selectbox("Store Type", [ "Departmental Store","Supermarket Type 1", "Supermarket Type 2","Food Mart" ]) prefix= st.text_input("Product Prefix","FD") pnum = st.number_input("Product Numeric ID",0,100000,6114,1) age = st.number_input( "Store Age (yrs)",0,50, int(pd.Timestamp.now().year - year),1 ) submit = st.form_submit_button("🔮 Predict") if submit: payload={"data":[{ "Product_Weight":pw, "Product_Allocated_Area":pa, "Product_MRP":mrp, "Store_Establishment_Year":year, "Store_Size":size, "Store_Location_City_Type":city, "Store_Type":stype, "Product_Prefix":prefix, "Product_Num":pnum, "Store_Age":age }]} try: r = requests.post(f"{BACKEND_URL}/predict", json=payload, timeout=10) r.raise_for_status() pred = r.json()["predictions"][0] st.success(f"🚀 Forecasted Sales: ₹{pred:,.2f}") except Exception as e: st.error(f"❌ Prediction error: {e}")