العودة إلى المساعدة

نظرة عامة على البنية المعمارية

آخر تحديث: 28‏/8‏/2026

نظرة عامة على البنية المعمارية

┌──────────────────────────────────────────────────────────┐
│                       nginx :80                          │
│   /          → frontend:3000  (Next.js 14 SSR)           │
│   /api/      → backend:8000   (FastAPI)                  │
│   /iclock/   → backend:8000   (بروتوكول ADMS)            │
└──────────────────────────────────────────────────────────┘
           │                    │
    ┌──────┴──────┐      ┌──────┴──────┐
    │  Next.js    │      │   FastAPI   │
    │  الواجهة    │      │   الخادم    │
    │  الأمامية   │      │  /api/v1/   │
    └─────────────┘      └──────┬──────┘
                                │
              ┌─────────────────┼─────────────────┐
              │                 │                 │
       ┌──────┴──────┐  ┌───────┴──────┐  ┌──────┴──────┐
       │ PostgreSQL  │  │    Redis     │  │   Celery    │
       │    :5432    │  │    :6379     │  │  Worker+Beat│
       └─────────────┘  └─────────────┘  └─────────────┘

حزمة التقنيات

  • FastAPI 0.115 — واجهة REST API غير متزامنة
  • SQLAlchemy 2.0 async — ORM بتشغيل غير متزامن عبر مشغّل asyncpg
  • Alembic — ترحيلات قاعدة البيانات
  • Celery + Redis — المهام الخلفية والجدولة
  • Next.js 14 App Router — الواجهة الأمامية مع SSR
  • Tailwind CSS — التنسيق
  • Zustand + TanStack Query — إدارة الحالة

قرارات التصميم الرئيسية

  • تعدد المستأجرين: تحتوي جميع الجداول على company_id. كل استعلام يُصفَّى به.
  • دفع ADMS: تتصل الأجهزة بشكل صادر — لا حاجة لاستطلاع دوري.
  • مصادقة JWT: رموز وصول قصيرة الأجل + رموز تحديث تُخزَّن لدى العميل.