Spaces:
Sleeping
Sleeping
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) |