تفاصيل العمل

# وثيقة متطلبات البرمجيات (SRD)

## نظام محاسبة احترافي لسطح المكتب للمتاجر الصغيرة والمتوسطة

### معلومات المشروع

- **الاسم:** Smart Accounting Desktop System

- **النوع:** Software Requirements Document (SRD)

- **الإصدار:** 1.0

- **المنصة:** Windows Desktop

---

# 1. مقدمة

## الهدف

تحديد المتطلبات الوظيفية وغير الوظيفية لنظام محاسبة متكامل للمتاجر الصغيرة والمتوسطة، ليكون مرجعًا لفريق التطوير.

## نظرة عامة

برنامج سطح مكتب يدير:

- العملاء

- الموردين

- المنتجات

- المخزون

- المبيعات

- المشتريات

- المرتجعات

- الإيرادات والمصروفات

- التقارير والإحصائيات

- الطباعة والتصدير

## نطاق المشروع

يشمل:

- تطبيق Desktop مستقل.

- SQLite مع إمكانية الترقية إلى PostgreSQL.

- إنشاء PDF.

- استيراد وتصدير Excel.

- ملف تنفيذي EXE.

خارج المرحلة الأولى:

- تطبيق ويب.

- تطبيق موبايل.

- المزامنة السحابية.

- التكاملات الحكومية.

---

# 2. أهداف النظام

- توحيد جميع عمليات المتجر داخل برنامج واحد.

- واجهة سهلة وسريعة.

- بنية قابلة للتطوير.

- دعم تعدد المستخدمين والصلاحيات.

- تقارير مالية دقيقة.

---

# 3. التقنيات المستخدمة

| العنصر | التقنية |

|---------|----------|

| اللغة | Python 3.11+ |

| الواجهة | PySide6 |

| التصميم | Qt Designer |

| قاعدة البيانات | SQLite |

| ORM | SQLAlchemy |

| قاعدة مستقبلية | PostgreSQL |

| Migration | Alembic |

| PDF | ReportLab |

| Excel | OpenPyXL |

| البناء | PyInstaller |

| الاختبارات | Pytest |

| Logging | logging |

| الثيم | qdarktheme |

| الأيقونات | QtAwesome |

## البنية

تعتمد على Clean Architecture:

- Presentation

- Application

- Domain

- Infrastructure

- Core

- Tests

مع الالتزام بـ:

- SOLID

- Repository Pattern

- DTO

- Dependency Injection

- Type Hints

- Linting

- Git

---

# 4. الوحدات الرئيسية

## إدارة المستخدمين

- تسجيل الدخول.

- تشفير كلمات المرور.

- الأدوار والصلاحيات.

- إدارة المستخدمين.

- Audit Log.

- قفل الحساب.

- إعادة تعيين كلمة المرور.

- Remember Me.

## العملاء

- CRUD.

- رصيد العميل.

- سقف ائتمان.

- تصنيفات العملاء.

- كشف حساب PDF.

- تصدير Excel.

## الموردون

- CRUD.

- كشف الحساب.

- ربط المنتجات بالموردين.

- التصدير والطباعة.

## المنتجات

- CRUD.

- باركود.

- صور.

- أسعار متعددة.

- فئات.

- متغيرات.

- ضرائب.

- استيراد وتصدير Excel.

## المخزون

- تتبع الكميات.

- حد أدنى للمخزون.

- الجرد.

- تعدد المخازن.

- سجل الحركات.

- FIFO أو Average Cost.

## المبيعات

- إنشاء الفواتير.

- خصومات.

- ضرائب.

- طرق دفع متعددة.

- طباعة PDF.

- Hold Invoice.

- خصم تلقائي من المخزون.

- صلاحيات التعديل والإلغاء.

## المشتريات

- إنشاء فواتير شراء.

- تحديث المخزون.

- شراء آجل.

- استيراد Excel.

- أوامر شراء.

## المرتجعات

- مرتجع مبيعات.

- مرتجع مشتريات.

- مرتجع جزئي.

- أسباب الإرجاع.

## المصروفات والإيرادات

- تسجيل المصروفات.

- تسجيل الإيرادات.

- مراكز تكلفة.

- تقرير الأرباح والخسائر.

## التقارير

- تقارير المبيعات.

- الأرباح والخسائر.

- المخزون.

- أعمار الديون.

- Dashboard.

- تصدير PDF وExcel.

## الإعدادات

- بيانات المتجر.

- العملة.

- الضريبة.

- قوالب الطباعة.

- النسخ الاحتياطي.

- الثيم.

- ترقيم الفواتير.

---

# 5. المتطلبات غير الوظيفية

- أداء سريع.

- نسخ احتياطي تلقائي.

- أمان وتشفير.

- نظام صلاحيات.

- Audit Log.

- سهولة الصيانة.

- قابلية التوسع.

- دعم العربية (RTL).

- دعم Windows 10/11.

- توثيق للمستخدم والمطور.

---

# 6. نموذج البيانات

الجداول الأساسية:

- Users

- Roles

- Customers

- Suppliers

- Categories

- Products

- Warehouses

- StockItems

- StockMovements

- SalesInvoices

- PurchaseInvoices

- Returns

- Payments

- Expenses

- Revenues

- AuditLogs

- Settings

---

# 7. واجهة المستخدم

- Sidebar.

- Dashboard.

- شاشة POS.

- جداول بحث وفرز.

- Validation.

- الوضع الداكن والفاتح.

- رسائل موحدة.

- اختصارات لوحة المفاتيح.

---

# 8. النشر

- بناء EXE عبر PyInstaller.

- قاعدة SQLite جاهزة.

- تثبيت اختياري عبر Inno Setup.

- التحقق من الإصدارات.

- تشغيل Alembic تلقائيًا.

---

# 9. مراحل التطوير

1. البنية الأساسية وتسجيل الدخول.

2. العملاء والموردون والمنتجات.

3. المخزون.

4. المبيعات والمشتريات.

5. المرتجعات والمصروفات.

6. التقارير ولوحة التحكم.

7. الإعدادات والنسخ الاحتياطي.

8. التغليف والإطلاق.

9. توسعات مستقبلية (فروع، سحابة، موبايل).

---

# 10. المخاطر

- الاعتماد على SQLite في البداية.

- الترقية لاحقًا إلى PostgreSQL.

- زيادة حجم قاعدة البيانات.

- دعم الشبكات المحلية في المرحلة الأولى.

---

# 11. معايير الإنجاز

كل وحدة تعتبر مكتملة عند:

- تنفيذ جميع المتطلبات.

- نجاح اختبارات الوحدة.

- توثيق الكود.

- مراجعة الكود.

- اجتياز اختبارات الاستخدام.

---

# 12. المكتبات

```text

PySide6

SQLAlchemy

Alembic

Pydantic-Settings

QtAwesome

QDarkTheme

ReportLab

OpenPyXL

bcrypt

Pytest

PyInstaller

```

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة
تاريخ الإنجاز