Spaces:
Sleeping
Sleeping
File size: 5,089 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 |
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'<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("## الابتكارات النظامية")
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("<div class='footer'>© 2025 شركة شبه الجزيرة للمقاولات - جميع الحقوق محفوظة</div>", unsafe_allow_html=True) |