Download src/streamlit_app.py from streamlit/streamlit-template-space: direct link, hf CLI and curl.
- Browser
- Download file 9.12 kB
-
https://huggingface.co/spaces/streamlit/streamlit-template-space/resolve/refs%2Fpr%2F4/src/streamlit_app.py
- Command line
-
hf download hf://spaces/streamlit/streamlit-template-space@refs/pr/4/src/streamlit_app.py
-
curl -L -o streamlit_app.py https://huggingface.co/spaces/streamlit/streamlit-template-space/resolve/refs%2Fpr%2F4/src/streamlit_app.py
9.12 kB
| import streamlit as st | |
| import urllib.parse | |
| # π NAMBARKA WHATSAPP-KA IYO EVC PLUS | |
| DUKAANKA_WHATSAPP = "252612693555" | |
| EVC_PLUS_NUMBER = "0612693555" # Halkaan ku beddel nambarkaaga saxda ah ee lacagta laguugu soo dirayo | |
| # βοΈ Qurxinta dusha sare ee Website-ka | |
| st.set_page_config(page_title="Baidoa Ice Cream", page_icon="π¦", layout="centered") | |
| # π Bilaabidda nidaamka dambiilaha (Session State) | |
| if 'cart' not in st.session_state: | |
| st.session_state.cart = [] | |
| if 'page' not in st.session_state: | |
| st.session_state.page = "home" | |
| if 'customer_info' not in st.session_state: | |
| st.session_state.customer_info = {} | |
| # π XOGTA ALAABTA IYO QIIMAHA | |
| ALAABTA = { | |
| "JALLAATADA TUFKA": [ | |
| {"magac": "Tuf Wayn", "qiimo": 0.50, "dhadhan": ["Vanilla", "Chocolate", "Strawberry", "Mango"]}, | |
| {"magac": "Tuf Normal", "qiimo": 0.25, "dhadhan": ["Vanilla", "Chocolate", "Strawberry"]}, | |
| {"magac": "Tuf Yar", "qiimo": 0.20, "dhadhan": ["Vanilla", "Chocolate"]} | |
| ], | |
| "JALLAATADA CAAGA": [ | |
| {"magac": "Caag Weyn (Max)", "qiimo": 1.00, "dhadhan": ["Mix Flavors", "Chocolate Special", "Strawberry"]}, | |
| {"magac": "Caag Weyn", "qiimo": 0.75, "dhadhan": ["Vanilla", "Chocolate", "Strawberry"]}, | |
| {"magac": "Caag Yar (Normal)", "qiimo": 0.50, "dhadhan": ["Vanilla", "Chocolate"]}, | |
| {"magac": "Caag Yar", "qiimo": 0.25, "dhadhan": ["Vanilla", "Chocolate"]} | |
| ], | |
| "MACMACAAN & TOORTO": [ | |
| {"magac": "Toorto Weyn (Celebration)", "qiimo": 25.00, "dhadhan": ["Chocolate", "Vanilla", "Red Velvet"]}, | |
| {"magac": "Toorto Normal", "qiimo": 15.00, "dhadhan": ["Chocolate", "Vanilla"]}, | |
| {"magac": "Toorto Yar / Jab", "qiimo": 4.00, "dhadhan": ["Chocolate", "Vanilla"]} | |
| ], | |
| "MACMACAAN CUSUB": [ | |
| {"magac": "Lotus Cake", "qiimo": 3.00, "dhadhan": ["Original Lotus"]}, | |
| {"magac": "Basbuuso", "qiimo": 2.50, "dhadhan": ["Traditional"]}, | |
| {"magac": "Cupcake", "qiimo": 2.50, "dhadhan": ["Chocolate", "Vanilla", "Strawberry"]}, | |
| {"magac": "Normal Cake", "qiimo": 1.50, "dhadhan": ["Vanilla", "Marble"]} | |
| ] | |
| } | |
| # π 1. BOGGA HORE (HOME PAGE) | |
| if st.session_state.page == "home": | |
| st.markdown("<h1 style='text-align: center; color: #d63384;'>π¦ Baidoa Ice Cream π</h1>", unsafe_allow_html=True) | |
| st.markdown("<p style='text-align: center; color: #6c757d;'>Ku soo dhowaada dukaanka rasmiga ah! Dooro alaabtaada, bixi lacagta, kuna hel 20 daqiiqo gudahood.</p>", unsafe_allow_html=True) | |
| st.write("---") | |
| # Badhan weyn oo la rigo dambiilaha haddii wax ku jiraan | |
| if len(st.session_state.cart) > 0: | |
| st.warning(f"π Dambiilahaaga waxaa ku jira {len(st.session_state.cart)} alaab ah.") | |
| if st.button("U Gudub Gaadhiga Wax Iibsiga β"): | |
| st.session_state.page = "cart" | |
| st.rerun() | |
| # Muujinta Qaybaha Alaabta | |
| for qaybta, alaabooyinka inoo yaal iney ku jiraan iney muuqdaan: | |
| st.markdown(f"### π {qaybta}") | |
| cols = st.columns(2) | |
| for idx, item in enumerate(alaabooyinka): | |
| with cols[idx % 2]: | |
| st.info(f"*{item['magac']}* β ${item['qiimo']:.2f}") | |
| # Doorashada Dhadhanka iyo Tirada | |
| dhadhan_dooro = st.selectbox(f"Dhadhanka ({item['magac']})", item['dhadhan'], key=f"flavor_{item['magac']}_{idx}") | |
| tirada = st.number_input(f"Tirada ({item['magac']})", min_value=1, max_value=20, value=1, key=f"qty_{item['magac']}_{idx}") | |
| if st.button(f"β Ku Dar Gaadhiga", key=f"btn_{item['magac']}_{idx}"): | |
| st.session_state.cart.append({ | |
| "magac": item['magac'], | |
| "qiimo": item['qiimo'], | |
| "dhadhan": dhadhan_dooro, | |
| "tirada": tirada, | |
| "subtotal": item['qiimo'] * tirada | |
| }) | |
| st.success(f"β {tirada} {item['magac']} ({dhadhan_dooro}) waa lagu daray gaadhiga!") | |
| st.rerun() | |
| st.write("---") | |
| # π 2. GAADHIGA WAX IIBSIGA (CART PAGE) | |
| elif st.session_state.page == "cart": | |
| st.markdown("## π Gaadhiga Wax Iibsiga (Cart)") | |
| if not st.session_state.cart: | |
| st.error("Gaadhigaagu waa maran yahay hadda!") | |
| if st.button("β¬ οΈ Ku noqo Bogga Hore"): | |
| st.session_state.page = "home" | |
| st.rerun() | |
| else: | |
| wadarta_lacagta = 0 | |
| for idx, c in enumerate(st.session_state.cart): | |
| col1, col2, col3 = st.columns([3, 2, 1]) | |
| with col1: | |
| st.write(f"*{c['magac']}* ({c['dhadhan']})") | |
| with col2: | |
| st.write(f"{c['tirada']} x ${c['qiimo']:.2f} = *${c['subtotal']:.2f}*") | |
| with col3: | |
| if st.button("β", key=f"del_{idx}"): | |
| st.session_state.cart.pop(idx) | |
| st.rerun() | |
| wadarta_lacagta += c['subtotal'] | |
| st.write("---") | |
| st.markdown(f"### π° Wadarta Guud: *${wadarta_lacagta:.2f}*") | |
| col_btn1, col_btn2 = st.columns(2) | |
| with col_btn1: | |
| if st.button("β¬ οΈ Sii Wad Adeegsiga"): | |
| st.session_state.page = "home" | |
| st.rerun() | |
| with col_btn2: | |
| if st.button("Sii Wad Dalabka (Macluumaadka) β"): | |
| st.session_state.page = "info" | |
| st.rerun() | |
| # π€ 3. MACLUUMAADKA MACMIILKA (CUSTOMER INFO) | |
| elif st.session_state.page == "info": | |
| st.markdown("## π€ Macluumaadka Geynta Dalabka") | |
| st.write("Fadlan qor faahfaahintaada si looguugu soo qaado jalaatada:") | |
| magaca = st.text_input("Magacaaga oo Dhammaystiran:") | |
| telefoonka = st.text_input("Lambarka Telefoonkaaga:") | |
| cinwaanka = st.text_area("Cinwaanka Guriga / Goobta Shaqada (Geeynta):") | |
| col_btn1, col_btn2 = st.columns(2) | |
| with col_btn1: | |
| if st.button("β¬ οΈ Ku noqo Gaadhiga"): | |
| st.session_state.page = "cart" | |
| st.rerun() | |
| with col_btn2: | |
| if st.button("U Gudub Lacag-bixinta β"): | |
| if magaca and telefoonka and cinwaanka: | |
| st.session_state.customer_info = { | |
| "magac": magaca, | |
| "tel": telefoonka, | |
| "cinwaan": cinwaanka | |
| } | |
| st.session_state.page = "payment" | |
| st.rerun() | |
| else: | |
| st.error("Fadlan buuxi dhammaan meelaha banaan!") | |
| # π³ 4. LACAG-BIXINTA (PAYMENT) | |
| elif st.session_state.page == "payment": | |
| st.markdown("## π³ Tallaabada Lacag-bixinta (Amniga Dalabka)") | |
| st.warning("β οΈ Dalabkaaga lama xaqiijin doono ilaa aad lacagta bixiso si looga hortago dalabyada beenta ah!") | |
| wadarta_lacagta = sum(c['subtotal'] for c in st.session_state.cart) | |
| st.markdown(f"### π΅ Wadarta Lacagta Laga rabo: *${wadarta_lacagta:.2f}*") | |
| st.info(f"βΉοΈ *Habka Lacag bixinta:\nFadlan ku dir *${wadarta_lacagta:.2f}* lambarka **EVC Plus: {EVC_PLUS_NUMBER}*") | |
| st.write("---") | |
| st.write("Markaad lacagta dirto ka dib, guji batoonka hoose si aad ugu xaqiijiso WhatsApp-ka oo dukaanka laguugu diyaariyo:") | |
| # Diyaarinta qoraalka WhatsApp-ka ku dhacaya | |
| alaab_qoraal = "" | |
| for c in st.session_state.cart: | |
| alaab_qoraal += f"- {c['tirada']} {c['magac']} ({c['dhadhan']}) = ${c['subtotal']:.2f}\n" | |
| info = st.session_state.customer_info | |
| qoraalka_whatsapp = ( | |
| f"π¨ DALAB CUSUB (BAIDOA ICE CREAM) π¨\n\n" | |
| f"π€ Macmiilka: {info['magac']}\n" | |
| f"π Tel: {info['tel']}\n" | |
| f"π Cinwaanka: {info['cinwaan']}\n\n" | |
| f"π Alaabta la doortay:\n{alaab_qoraal}\n" | |
| f"π° Wadarta Guud: ${wadarta_lacagta:.2f}\n" | |
| f"β Xaaladda Lacagta: Waxaan hadda ku soo diray EVC Plus! Fadlan ii xaqiiji oo iisoo rida." | |
| ) | |
| url_encoded_text = urllib.parse.quote(qoraalka_whatsapp) | |
| whatsapp_link = f"https://wa.me/{DUKAANKA_WHATSAPP}?text={url_encoded_text}" | |
| col_btn1, col_btn2 = st.columns(2) | |
| with col_btn1: | |
| if st.button("β¬ οΈ Beddel Macluumaadka"): | |
| st.session_state.page = "info" | |
| st.rerun() | |
| with col_btn2: | |
| # Batoonka rasmiga ah ee u diraya WhatsApp-ka oo diiwaangelinaya dalabka | |
| st.markdown(f''' | |
| <a href="{whatsapp_link}" target="_blank" style="text-decoration: none;"> | |
| <div style="background-color: #25D366; color: white; text-align: center; padding: 10px; font-weight: bold; border-radius: 5px; cursor: pointer;"> | |
| β BIXI HADDA & XAQIIJI DALABKA | |
| </div> | |
| </a> | |
| ''', unsafe_allow_html=True) | |
| if st.button("π‘ Markaad gujiso kadib, halkan riix si aad u nadiifiso dambiilaha"): | |
| st.session_state.cart = [] | |
| st.session_state.page = "home" | |
| st.success("Dalabkaaga waa la diiwaangeliyey! Waxaa laguugu soo dirayaa 20 daqiiqo gudahood. Waad ku mahadsan tahay doorashada Baidoa Ice Cream! π¦") | |
| st.rerun() |