import streamlit as st import sys from pathlib import Path # إضافة مسار المشروع للنظام sys.path.append(str(Path(__file__).parent.parent)) # استيراد الوحدات from modules.document_analysis.document_app import DocumentAnalysisApp from modules.pricing.pricing_app import PricingApp from modules.resources.resources_app import ResourcesApp from modules.risk_analysis.risk_analyzer import RiskAnalysisApp from modules.project_management.project_management_app import ProjectsApp from modules.maps.maps_app import MapsApp from modules.notifications.notifications_app import NotificationsApp from modules.document_comparison.document_comparison_app import DocumentComparisonApp from modules.translation.translation_app import TranslationApp from modules.ai_assistant.ai_app import AIAssistantApp from modules.data_analysis.data_analysis_app import DataAnalysisApp from styling.enhanced_ui import UIEnhancer # تكوين الصفحة st.set_page_config( page_title="نظام تحليل المناقصات", page_icon="📊", layout="wide", initial_sidebar_state="expanded", menu_items={ 'Get Help': 'https://www.example.com/help', 'Report a bug': "https://www.example.com/bug", 'About': "### نظام تحليل المناقصات\nالإصدار 2.0.0" } ) # تطبيق التنسيق العام ui_enhancer = UIEnhancer(page_title="نظام تحليل المناقصات", page_icon="📊") ui_enhancer.apply_global_styles() # إنشاء قائمة العناصر menu_items = [ {"name": "لوحة المعلومات", "icon": "house"}, {"name": "المناقصات والعقود", "icon": "file-text"}, {"name": "تحليل المستندات", "icon": "file-earmark-text"}, {"name": "نظام التسعير", "icon": "calculator"}, {"name": "حاسبة تكاليف البناء", "icon": "building"}, {"name": "الموارد والتكاليف", "icon": "people"}, {"name": "تحليل المخاطر", "icon": "exclamation-triangle"}, {"name": "إدارة المشاريع", "icon": "kanban"}, {"name": "الخرائط والمواقع", "icon": "geo-alt"}, {"name": "الجدول الزمني", "icon": "calendar3"}, {"name": "الإشعارات", "icon": "bell"}, {"name": "مقارنة المستندات", "icon": "files"}, {"name": "الترجمة", "icon": "translate"}, {"name": "المساعد الذكي", "icon": "robot"}, {"name": "تحليل البيانات", "icon": "bar-chart"}, {"name": "الإعدادات", "icon": "gear"} ] # إنشاء الشريط الجانبي selected = ui_enhancer.create_sidebar(menu_items) # تحديد الوحدة المطلوبة بناءً على اختيار المستخدم if selected == "لوحة المعلومات": ui_enhancer.create_header("لوحة المعلومات", "نظرة عامة على المناقصات والمشاريع") # عرض لوحة المعلومات col1, col2, col3 = st.columns(3) with col1: ui_enhancer.create_metric_card("المناقصات النشطة", "12", "+3", ui_enhancer.COLORS['primary']) with col2: ui_enhancer.create_metric_card("المشاريع قيد التنفيذ", "8", "+1", ui_enhancer.COLORS['success']) with col3: ui_enhancer.create_metric_card("المناقصات المقدمة", "24", "+5", ui_enhancer.COLORS['info']) # عرض الإشعارات الأخيرة st.markdown("### الإشعارات الأخيرة") notifications = [ {"title": "موعد تقديم مناقصة", "project": "إنشاء مبنى مستشفى الولادة والأطفال", "date": "2025-04-05", "priority": "عالية"}, {"title": "تحديث مستندات", "project": "صيانة وتطوير طريق الملك عبدالله", "date": "2025-03-28", "priority": "متوسطة"}, {"title": "اجتماع مراجعة التسعير", "project": "إنشاء محطة معالجة مياه الصرف الصحي", "date": "2025-03-25", "priority": "عالية"} ] for notification in notifications: with st.container(): col1, col2 = st.columns([4, 1]) with col1: st.markdown(f"**{notification['title']}** - {notification['project']}") st.caption(f"التاريخ: {notification['date']} | الأولوية: {notification['priority']}") with col2: st.button("عرض", key=f"view_{notification['title']}") st.divider() elif selected == "تحليل المستندات": document_app = DocumentAnalysisApp() document_app.run() elif selected == "نظام التسعير": pricing_app = PricingApp() pricing_app.run() elif selected == "الموارد والتكاليف": resources_app = ResourcesApp() resources_app.run() elif selected == "تحليل المخاطر": risk_app = RiskAnalysisApp() risk_app.run() elif selected == "إدارة المشاريع": projects_app = ProjectsApp() projects_app.run() elif selected == "الخرائط والمواقع": maps_app = MapsApp() maps_app.run() elif selected == "الإشعارات": notifications_app = NotificationsApp() notifications_app.run() elif selected == "مقارنة المستندات": document_comparison_app = DocumentComparisonApp() document_comparison_app.run() elif selected == "الترجمة": translation_app = TranslationApp() translation_app.run() elif selected == "المساعد الذكي": ai_app = AIAssistantApp() ai_app.run() elif selected == "تحليل البيانات": data_analysis_app = DataAnalysisApp() data_analysis_app.run() elif selected == "الإعدادات": ui_enhancer.create_header("الإعدادات", "إعدادات النظام والحساب") # عرض إعدادات النظام st.markdown("### إعدادات النظام") tabs = st.tabs(["إعدادات عامة", "الواجهة", "الأمان", "مفاتيح API"]) with tabs[0]: st.checkbox("تفعيل الإشعارات", value=True) st.checkbox("حفظ تلقائي للبيانات", value=True) st.selectbox("اللغة", ["العربية", "English"]) st.selectbox("المنطقة الزمنية", ["توقيت الرياض (GMT+3)", "توقيت جرينتش (GMT)"]) with tabs[1]: st.radio("النمط", ["فاتح", "داكن", "تلقائي (حسب نظام التشغيل)"]) st.slider("حجم الخط", 12, 20, 16) st.color_picker("لون التمييز", "#1E88E5") with tabs[2]: st.checkbox("تفعيل المصادقة الثنائية", value=False) st.number_input("مدة الجلسة (دقائق)", min_value=5, max_value=120, value=30) st.button("تغيير كلمة المرور") with tabs[3]: st.text_input("مفتاح OpenAI API", type="password") st.text_input("مفتاح Google Maps API", type="password") st.button("حفظ مفاتيح API")