File size: 5,308 Bytes
fb20480
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
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.improved_sidebar import render_sidebar
from utils.components.improved_header import render_header
from utils.improved_session_state import initialize_session_state
from utils.components.improved_system_innovation import display_innovations
from utils.components.improved_credits import display_credits

# تضمين CSS المحسن
with open(os.path.join(ROOT_DIR, 'static', 'css', 'improved_styles.css')) as f:
    st.markdown(f'<style>{f.read()}</style>', unsafe_allow_html=True)

# تضمين CSS للتوافق مع RTL
with open(os.path.join(ROOT_DIR, 'static', 'css', 'rtl-fixes.css')) as f:
    st.markdown(f'<style>{f.read()}</style>', 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("<h1 class='main-title'>النظام الشامل لتحليل العقود والمناقصات بالذكاء الاصطناعي</h1>", 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("## الابتكارات النظامية")
    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("## فريق التطوير")
    display_credits()

else:
    # عرض الوحدة المختارة
    module = modules.get(selected_module)
    if module:
        module.render()

# إضافة تذييل الصفحة
st.markdown("""
<div class="footer">
    <p>نظام تحليل العقود والمناقصات بالذكاء الاصطناعي - الإصدار 2.0</p>
    <p>© 2025 شركة شبه الجزيرة للمقاولات - جميع الحقوق محفوظة</p>
</div>
""", unsafe_allow_html=True)