import streamlit as st import pandas as pd from datetime import date # 1. CORE CONFIG & STYLING st.set_page_config(page_title="Sajha Pro 2026", page_icon="๐Ÿ‡ณ๐Ÿ‡ต", layout="wide") # 2. 2026 DATA ENGINE npr_rate = 9.414 # Live Feb 2026 kurangi_deadline = date(2026, 4, 2) site_deadline = date(2026, 6, 1) # iBay Feb 2026 Rental Data rentals = [ {"Title": "2BR Apartment (No Lift)", "Price": 16000, "Loc": "Machchangolhi", "ID": "6472479"}, {"Title": "1BR Apartment (AC)", "Price": 10500, "Loc": "Hulhumale P2", "ID": "6488093"}, {"Title": "Shared Room (Male)", "Price": 3500, "Loc": "Male City", "ID": "iBay-Shared"} ] # 3. SIDEBAR NAVIGATION with st.sidebar: st.title("๐Ÿ‡ณ๐Ÿ‡ต Sajha Pro") menu = st.radio("Updates", ["๐Ÿ  Dashboard", "๐Ÿข Housing (iBay)", "๐ŸšŒ Ramadan Transit", "โš–๏ธ Legal & 100 Scenarios", "๐Ÿฅ Health & Insurance", "๐Ÿงพ Bill Splitter"]) st.markdown("---") st.caption("Consular Support: +94 11-268-9656") # --- 1. DASHBOARD --- if menu == "๐Ÿ  Dashboard": st.title("Sajha Connect Dashboard ๐Ÿ‡ฒ๐Ÿ‡ป") st.write(f"Today: {date.today().strftime('%B %d, 2026')}") c1, c2, c3 = st.columns(3) c1.metric("MVR to NPR", f"{npr_rate}", "Live") c2.metric("Kurangi Deadline", "Apr 2", f"{(kurangi_deadline - date.today()).days} Days") c3.metric("Worksite Update", "June 1", "Employer Deadline") st.error("๐Ÿšจ **OPERATION KURANGI:** If you are undocumented, register before **April 2, 2026**. Biometrics are mandatory at the Ministry of Homeland Security.") st.info("๐Ÿ“ข **Consular News:** The Feb 9, 2026 camp at Kamana Maalam provided medical and passport aid to hundreds. Stay tuned for the next camp.") # --- 2. HOUSING (iBay Integration) --- elif menu == "๐Ÿข Housing (iBay)": st.header("๐Ÿ  Rental Finder (Feb 2026 Trends)") cols = st.columns(2) for i, r in enumerate(rentals): with cols[i % 2]: st.markdown(f"""

{r['Title']}

๐Ÿ“ {r['Loc']} | MVR {r['Price']:,}

Ref ID: {r['ID']} | Source: iBay.mv
""", unsafe_allow_html=True) # --- 3. RAMADAN TRANSIT --- elif menu == "๐ŸšŒ Ramadan Transit": st.header("๐ŸšŒ RTL Bus & Ferry Ramadan Schedule") st.warning("โš ๏ธ Peak Pause: Services halt during Iftar hours.") transit = { "Route": ["Male-Hulhumale Bus", "Male Internal Bus", "Hulhumale Internal", "Male-Airport Bus", "Hulhumale-Male Ferry"], "Pause Window": ["5:00 PM - 7:00 PM", "6:00 PM - 9:00 PM", "5:15 PM - 7:15 PM", "5:00 PM - 6:40 PM", "STOPS after 3:00 PM"] } st.table(pd.DataFrame(transit)) # --- 4. LEGAL & 100 SCENARIOS --- elif menu == "โš–๏ธ Legal & 100 Scenarios": st.header("โš–๏ธ 100 Community Scenarios") with st.expander("Is there a ban on Nepali cashiers?"): st.write("Yes. Starting **Feb 5, 2027**, only Maldivians can work as cashiers. We recommend technical skill training now.") with st.expander("What happens if my employer doesn't update my Worksite by June 1?"): st.write("The employer's quota will be suspended, which may affect your work permit renewal.") # --- 5. HEALTH & INSURANCE --- elif menu == "๐Ÿฅ Health & Insurance": st.header("๐Ÿฅ Expat Health Benefits 2026") st.markdown(""" | Benefit Type | Coverage Limit | | :--- | :--- | | **Inpatient (Hospital stay)** | MVR 100,000 | | **Outpatient (Consultation/Meds)** | MVR 2,000 | | **Repatriation (Death)** | MVR 100,000 | """) st.info("๐Ÿฅ Top Hospitals: IGMH (Public), ADK (Private), Hulhumale Hospital.") # --- 6. BILL SPLITTER --- elif menu == "๐Ÿงพ Bill Splitter": st.header("๐Ÿงพ Shared Expense Splitter") colA, colB = st.columns(2) with colA: rent = st.number_input("Rent (MVR)", value=12000) elec = st.number_input("STELCO (Electricity)", value=1200) with colB: water = st.number_input("MWSC (Water)", value=400) heads = st.number_input("Number of People", min_value=1, value=4) st.success(f"### Total per person: MVR {(rent + elec + water) / heads:,.2f}") if __name__ == "__main__": pass