etsycalculator2 / app.py
yunuseduran's picture
Create app.py
a9f4515 verified
import streamlit as st
import matplotlib.pyplot as plt
# Uygulama başlığı ve stil ayarları
st.set_page_config(page_title="Etsy Profit Margin Calculator", layout="wide")
# CSS for custom styling
st.markdown("""
<style>
.card {
background-color: #f8f9fa;
border-radius: 10px;
padding: 20px;
margin: 10px 0;
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
}
.icon {
font-size: 30px;
margin-right: 10px;
}
.calculate-button {
background-color: #007bff;
color: white;
border: none;
padding: 10px 20px;
border-radius: 5px;
font-size: 18px;
cursor: pointer;
}
.header {
font-size: 24px;
font-weight: bold;
}
</style>
""", unsafe_allow_html=True)
# Üst başlık ve açıklama
st.markdown("<h2 style='text-align: center;'>Calculate Your Profit Margin on Etsy, Don’t Make A LOSS!</h2>", unsafe_allow_html=True)
# Kullanıcı girdi alanları
col1, col2, col3 = st.columns(3)
with col1:
st.markdown("<div class='card'><span class='icon'>💰</span> <span class='header'>Store Currency</span>", unsafe_allow_html=True)
currency = st.selectbox("Currency", ["USD", "EUR"])
st.markdown("<div class='card'><span class='icon'>🌍</span> <span class='header'>Store Location</span>", unsafe_allow_html=True)
location = st.selectbox("Location", ["US", "EU", "Other"])
with col2:
st.markdown("<div class='card'><span class='icon'>💲</span> <span class='header'>Revenue</span>", unsafe_allow_html=True)
sale_price = st.number_input("Sale Price ($)", min_value=0.0)
shipping_price = st.number_input("Shipping Price ($)", min_value=0.0)
gift_wrap = st.number_input("Gift Wrap Price ($)", min_value=0.0)
with col3:
st.markdown("<div class='card'><span class='icon'>💸</span> <span class='header'>Cost</span>", unsafe_allow_html=True)
product_cost = st.number_input("Product Cost ($)", min_value=0.0)
labor_cost = st.number_input("Labor Cost ($)", min_value=0.0)
packaging_cost = st.number_input("Packaging Cost ($)", min_value=0.0)
# Hesaplama
if st.button("Hesapla", key="calculate"):
total_revenue = sale_price + shipping_price + gift_wrap
total_cost = product_cost + labor_cost + packaging_cost
profit = total_revenue - total_cost
profit_margin = (profit / total_revenue) * 100 if total_revenue > 0 else 0
# Sonuçları göster
st.markdown("<div class='card'><span class='icon'>📊</span> <span class='header'>Results</span>", unsafe_allow_html=True)
st.write("Total Revenue: $", total_revenue)
st.write("Total Cost: $", total_cost)
st.write("Profit: $", profit)
st.write("Profit Margin: ", f"{profit_margin:.2f}%")
# Pasta grafiği
labels = ["Cost", "Profit"]
sizes = [total_cost, profit]
colors = ["#ff9999", "#66b3ff"]
fig1, ax1 = plt.subplots()
ax1.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
st.pyplot(fig1)