import streamlit as st # هذا هو المكان الوحيد المسموح بوضع إعدادات الصفحة فيه # Streamlit يتطلب أن يكون هذا الأمر في بداية التطبيق وفي ملف واحد فقط st.set_page_config( page_title="نظام تحليل العقود والمناقصات", page_icon="📋", layout="wide", initial_sidebar_state="expanded", menu_items={ 'About': "تطبيق تحليل العقود والمناقصات بالذكاء الاصطناعي - إصدار 2.0", 'Get help': "https://www.wahbi-ai.com/help", 'Report a bug': "https://www.wahbi-ai.com/report-bug" } ) # باقي الاستيرادات عادي import os import sys from pathlib import Path # إضافة مسار المشروع الرئيسي إلى Python path ROOT_DIR = Path(__file__).parent sys.path.append(str(ROOT_DIR)) # استيراد الإعدادات import config # استيراد الوحدات from modules.projects.projects_app import ProjectsApp from modules.pricing.pricing_app import PricingApp from modules.resources.resources_app import ResourcesApp from modules.document_analysis.document_analysis_app import DocumentAnalysisApp from modules.risk_analysis.risk_analysis_app import RiskAnalysisApp from modules.reports.reports_app import ReportsApp from modules.ai_assistant.ai_assistant_app import AIAssistantApp # استيراد المكونات المشتركة from utils.components.sidebar import render_sidebar from utils.components.header import render_header from utils.session_state import initialize_session_state # تضمين CSS المخصص with open(os.path.join(ROOT_DIR, 'static', 'css', 'styles.css')) as f: st.markdown(f'', unsafe_allow_html=True) # تهيئة حالة الجلسة initialize_session_state() # عرض ترويسة الصفحة render_header() # عرض الشريط الجانبي selected_module = render_sidebar() # تهيئة وحدات النظام modules = { "الرئيسية": None, # سيتم التعامل معها بشكل خاص "إدارة المشاريع": ProjectsApp(), "التسعير المتكاملة": PricingApp(), "الموارد والتكاليف": ResourcesApp(), "تحليل المستندات": DocumentAnalysisApp(), "تحليل المخاطر": RiskAnalysisApp(), "التقارير والتحليلات": ReportsApp(), "المساعد الذكي": AIAssistantApp() } # عرض الوحدة المختارة if selected_module == "الرئيسية": # عرض الصفحة الرئيسية st.markdown("

النظام الشامل لتحليل العقود والمناقصات بالذكاء الاصطناعي

", unsafe_allow_html=True) # عرض لوحة معلومات عامة col1, col2, col3 = st.columns(3) with col1: st.info("#### المناقصات النشطة\n\n**15** مناقصة", icon="📝") with col2: st.success("#### المشاريع المرساة\n\n**8** مشاريع", icon="✅") with col3: st.warning("#### مناقصات قيد التسعير\n\n**5** مناقصات", icon="⏳") # عرض الابتكارات النظامية st.markdown("## الابتكارات النظامية") from utils.components.system_innovation import display_innovations display_innovations() # عرض المخطط العام للنظام st.markdown("## هيكل النظام") st.markdown(""" ```mermaid graph TD MAIN[النظام الشامل لتحليل العقود والمناقصات بالذكاء الاصطناعي] --> A MAIN --> B MAIN --> C MAIN --> D MAIN --> E MAIN --> F A[وحدة تحليل المستندات] B[وحدة التسعير المتكاملة] C[وحدة الموارد والتكاليف] D[وحدة تحليل المخاطر] E[وحدة إدارة المشاريع] F[وحدة التقارير والتحليلات] DB[(قاعدة البيانات المركزية)] --> A DB --> B DB --> C DB --> D DB --> E DB --> F AI{وحدة الذكاء الاصطناعي} --> A AI --> B AI --> F ``` """) # عرض معلومات الفريق st.markdown("## فريق التطوير") from utils.components.credits import display_credits display_credits() else: # عرض الوحدة المختارة module = modules.get(selected_module) if module: module.render() # إضافة تذييل الصفحة st.markdown("---") st.markdown("", unsafe_allow_html=True)