SA-SAJCOAI / app.bak.py
EGYADMIN's picture
Rename app.py to app.bak.py
68fd85a verified
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)