Spaces:
Paused
Paused
| import streamlit as st | |
| import pandas as pd | |
| import numpy as np | |
| import matplotlib.pyplot as plt | |
| import seaborn as sns | |
| def tender_analysis_page(): | |
| """ | |
| صفحة تحليل العطاءات | |
| """ | |
| st.title("تحليل العطاءات") | |
| st.write("هذه الصفحة تعرض تحليلات مختلفة للعطاءات والمناقصات") | |
| # يمكنك إضافة رفع ملف CSV أو Excel | |
| uploaded_file = st.file_uploader("ارفع ملف بيانات العطاءات", type=["csv", "xlsx"]) | |
| if uploaded_file is not None: | |
| # قراءة البيانات | |
| try: | |
| if uploaded_file.name.endswith('csv'): | |
| df = pd.read_csv(uploaded_file) | |
| else: | |
| df = pd.read_excel(uploaded_file) | |
| # عرض البيانات الأولية | |
| st.subheader("نظرة عامة على البيانات") | |
| st.dataframe(df.head()) | |
| # إحصائيات أساسية | |
| st.subheader("إحصائيات أساسية") | |
| st.write(df.describe()) | |
| # تحليل حسب نوع العطاء (مثال) | |
| if 'نوع_العطاء' in df.columns: | |
| st.subheader("تحليل حسب نوع العطاء") | |
| tender_types = df['نوع_العطاء'].value_counts() | |
| st.bar_chart(tender_types) | |
| # تحليل القيمة حسب الشهر (مثال) | |
| if 'تاريخ' in df.columns and 'قيمة_العطاء' in df.columns: | |
| st.subheader("تحليل قيمة العطاءات حسب الشهر") | |
| df['شهر'] = pd.to_datetime(df['تاريخ']).dt.month | |
| monthly_values = df.groupby('شهر')['قيمة_العطاء'].sum() | |
| st.line_chart(monthly_values) | |
| # تحليل نسب النجاح (مثال) | |
| if 'حالة_العطاء' in df.columns: | |
| st.subheader("نسب نجاح العطاءات") | |
| success_rate = df['حالة_العطاء'].value_counts(normalize=True) * 100 | |
| st.pie_chart(success_rate) | |
| except Exception as e: | |
| st.error(f"حدث خطأ أثناء تحليل البيانات: {e}") | |
| else: | |
| st.info("يرجى رفع ملف بيانات العطاءات لعرض التحليلات") | |
| def contracts_page(): | |
| """ | |
| صفحة إدارة العقود - تعرض معلومات وتحليلات للعقود | |
| """ | |
| st.title("إدارة العقود") | |
| st.write("هذه الصفحة مخصصة لإدارة وتحليل العقود") | |
| # يمكنك إضافة رفع ملف CSV أو Excel | |
| uploaded_file = st.file_uploader("ارفع ملف بيانات العقود", type=["csv", "xlsx"]) | |
| if uploaded_file is not None: | |
| # قراءة البيانات | |
| try: | |
| if uploaded_file.name.endswith('csv'): | |
| df = pd.read_csv(uploaded_file) | |
| else: | |
| df = pd.read_excel(uploaded_file) | |
| # عرض البيانات الأولية | |
| st.subheader("نظرة عامة على بيانات العقود") | |
| st.dataframe(df.head()) | |
| # إحصائيات العقود | |
| st.subheader("إحصائيات العقود") | |
| st.write(df.describe()) | |
| # تحليل حسب نوع العقد (مثال) | |
| if 'نوع_العقد' in df.columns: | |
| st.subheader("تحليل حسب نوع العقد") | |
| contract_types = df['نوع_العقد'].value_counts() | |
| st.bar_chart(contract_types) | |
| # تحليل قيمة العقود حسب الشهر (مثال) | |
| if 'تاريخ_التوقيع' in df.columns and 'قيمة_العقد' in df.columns: | |
| st.subheader("تحليل قيمة العقود حسب الشهر") | |
| df['شهر'] = pd.to_datetime(df['تاريخ_التوقيع']).dt.month | |
| monthly_values = df.groupby('شهر')['قيمة_العقد'].sum() | |
| st.line_chart(monthly_values) | |
| # تحليل العقود حسب المورد/العميل (مثال) | |
| if 'المورد' in df.columns and 'قيمة_العقد' in df.columns: | |
| st.subheader("تحليل العقود حسب المورد") | |
| vendor_analysis = df.groupby('المورد')['قيمة_العقد'].sum().sort_values(ascending=False).head(10) | |
| st.bar_chart(vendor_analysis) | |
| # جدول العقود النشطة (مثال) | |
| if 'حالة_العقد' in df.columns: | |
| st.subheader("العقود النشطة") | |
| active_contracts = df[df['حالة_العقد'] == 'نشط'] | |
| st.dataframe(active_contracts) | |
| except Exception as e: | |
| st.error(f"حدث خطأ أثناء تحليل بيانات العقود: {e}") | |
| else: | |
| st.info("يرجى رفع ملف بيانات العقود لعرض التحليلات") | |
| def main(): | |
| st.sidebar.title("قائمة الصفحات") | |
| page = st.sidebar.selectbox( | |
| "اختر صفحة", | |
| ["الصفحة الرئيسية", "تحليل العطاءات", "إدارة العقود", "المعلومات"] | |
| ) | |
| if page == "الصفحة الرئيسية": | |
| home_page() | |
| elif page == "تحليل العطاءات": | |
| tender_analysis_page() | |
| elif page == "إدارة العقود": | |
| contracts_page() | |
| elif page == "المعلومات": | |
| about_page() | |
| def home_page(): | |
| st.title("نظام تحليل العطاءات") | |
| st.write("مرحباً بك في نظام تحليل العطاءات. استخدم القائمة الجانبية للتنقل بين الصفحات.") | |
| def about_page(): | |
| st.title("عن النظام") | |
| st.write("نظام تحليل العطاءات هو أداة لتحليل بيانات العطاءات والمناقصات.") | |
| if __name__ == "__main__": | |
| main() |