Create ميدان اسامه
#11
by osama262853 - opened
- ميدان اسامه +106 -0
ميدان اسامه
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# 🧭 وثيقة التصميم النهائية لإنشاء النظام الإداري العسكري المركزي – ItemsSystem.accde
|
| 2 |
+
|
| 3 |
+
## 1️⃣ الفكرة العامة
|
| 4 |
+
نظام **ItemsSystem.accde** هو تطبيق إداري مركزي يعمل كـ **العقل التنظيمي للوحدة العسكرية**، يربط بين القادة، الضباط، الفنيين، والسواقين في منصة واحدة لجمع البيانات، تحليلها، وأرشفتها.
|
| 5 |
+
الهدف هو تحويل العمل الإداري اليومي إلى نظام رقمي موحد يسهل رفع التقارير واتخاذ القرار بسرعة ودقة.
|
| 6 |
+
|
| 7 |
+
---
|
| 8 |
+
|
| 9 |
+
## 2️⃣ الأهداف التشغيلية
|
| 10 |
+
- توحيد جميع العمليات الإدارية في تطبيق واحد.
|
| 11 |
+
- جمع البيانات اليومية من جميع المستويات الميدانية.
|
| 12 |
+
- تنظيم المذكرات والطلبات في حقول ومجلدات محددة.
|
| 13 |
+
- توليد تقارير يومية، أسبوعية، شهرية وسنوية تلقائياً.
|
| 14 |
+
- أرشفة الوثائق عبر ميزة **DeskTab** المضمنة.
|
| 15 |
+
- دعم العمل الميداني عبر واجهة خفيفة وسهلة الاستخدام على الأندرويد.
|
| 16 |
+
|
| 17 |
+
---
|
| 18 |
+
|
| 19 |
+
## 3️⃣ الهيكل العام للنظام
|
| 20 |
+
### 🖥️ المكونات الأساسية
|
| 21 |
+
1. **واجهة المستخدم (UI)**
|
| 22 |
+
- شاشة رئيسية تحتوي على 9 أيقونات رئيسية (موقف القوة، تقارير الصيانة، الأوامر، الطلبات، الشكاوى، مباشرات، التقارير، DeskTab).
|
| 23 |
+
2. **قاعدة البيانات (Access / SQLite)**
|
| 24 |
+
- جداول مترابطة لتخزين البيانات التشغيلية والإدارية.
|
| 25 |
+
3. **نظام الأرشفة DeskTab**
|
| 26 |
+
- حفظ الملفات الممسوحة ضوئياً بصيغة PDF مع تصنيف تلقائي.
|
| 27 |
+
4. **نظام الصلاحيات**
|
| 28 |
+
- يحدد صلاحيات الدخول حسب الرتبة (قائد، ضابط، فني، سائق).
|
| 29 |
+
5. **نظام التقارير**
|
| 30 |
+
- توليد تقارير تلقائية من البيانات اليومية مع رسوم بيانية.
|
| 31 |
+
|
| 32 |
+
---
|
| 33 |
+
|
| 34 |
+
## 4️⃣ مخطط قاعدة البيانات (ERD)
|
| 35 |
+
### الجداول الأساسية
|
| 36 |
+
- **Users** → بيانات المستخدمين والصلاحيات.
|
| 37 |
+
- **ForceStatus** → موقف القوة اليومي.
|
| 38 |
+
- **MaintenanceReports** → تقارير الحركة والصيانة.
|
| 39 |
+
- **OrdersMemos** → الأوامر والمذكرات اليومية.
|
| 40 |
+
- **Requests** → الطلبات (تسليح، صيانة، محروقات، مهمات).
|
| 41 |
+
- **ComplaintsPermissions** → الشكاوى والإذونات.
|
| 42 |
+
- **Personnel** → بيانات الأفراد.
|
| 43 |
+
- **Vehicles** → بيانات الآليات.
|
| 44 |
+
- **Reports** → التقارير الأسبوعية والشهرية والسنوية.
|
| 45 |
+
- **ArchiveDeskTab** → الأرشفة والمسح الضوئي.
|
| 46 |
+
|
| 47 |
+
كل جدول مرتبط بـ **Users** عبر `UserID` بعلاقة **One‑to‑Many**.
|
| 48 |
+
|
| 49 |
+
---
|
| 50 |
+
|
| 51 |
+
## 5️⃣ خطة التنفيذ البرمجية (Coding Roadmap)
|
| 52 |
+
|
| 53 |
+
| المرحلة | الهدف | الأدوات | المخرجات |
|
| 54 |
+
|----------|--------|----------|-----------|
|
| 55 |
+
| **1. التحليل والتخطيط** | تحديد الوظائف والهيكل العام | Word / Draw.io | وثيقة تحليل النظام + مخطط ERD |
|
| 56 |
+
| **2. تصميم قاعدة البيانات** | إنشاء الجداول والعلاقات | Microsoft Access / SQLite | ملف accde جاهز |
|
| 57 |
+
| **3. تصميم واجهة المستخدم (UI)** | بناء واجهة بسيطة وسهلة الاستخدام | Android Studio + XML | شاشة رئيسية + شاشات داخلية |
|
| 58 |
+
| **4. ربط قاعدة البيانات بالتطبيق** | ربط الحقول بالبيانات الفعلية | Java / Kotlin | نموذج إدخال وتخزين مباشر |
|
| 59 |
+
| **5. تطوير ميزة DeskTab** | أرشفة الملفات والمذكرات | PDF Viewer + Scanner API | أيقونة أرشفة مستقلة |
|
| 60 |
+
| **6. إعداد التقارير الآلية** | توليد تقارير يومية وشهرية وسنوية | Chart Library + Excel Export | ملفات تقارير قابلة للطباعة |
|
| 61 |
+
| **7. نظام الصلاحيات** | تحديد صلاحيات المستخدمين | Firebase Auth / SQLite Roles | دخول آمن ومحدد |
|
| 62 |
+
| **8. اختبار الأداء** | ضمان خفة وسرعة التطبيق | Android Emulator + أجهزة فعلية | نسخة مستقرة وخفيفة |
|
| 63 |
+
| **9. التثبيت والتدريب** | نشر التطبيق على الأجهزة الميدانية | ملف APK + دليل استخدام | تطبيق جاهز للتشغيل الميداني |
|
| 64 |
+
|
| 65 |
+
---
|
| 66 |
+
|
| 67 |
+
## 6️⃣ المميزات التقنية
|
| 68 |
+
- دعم **Offline Sync** لتحديث البيانات عند الاتصال بالشبكة.
|
| 69 |
+
- تصدير التقارير إلى **Excel / PDF** بضغطة واحدة.
|
| 70 |
+
- واجهة متجاوبة تناسب بيئة العمل العسكري.
|
| 71 |
+
- إمكانية المسح الضوئي المباشر من التطبيق.
|
| 72 |
+
- نظام إشعارات عاجلة للبلاغات والإذونات.
|
| 73 |
+
|
| 74 |
+
---
|
| 75 |
+
|
| 76 |
+
## 7️⃣ أمثلة كود أساسية (Skeleton Code)
|
| 77 |
+
|
| 78 |
+
### 🗂️ إنشاء قاعدة بيانات SQLite
|
| 79 |
+
```java
|
| 80 |
+
public class DatabaseHelper extends SQLiteOpenHelper {
|
| 81 |
+
private static final String DATABASE_NAME = "ItemsSystem.db";
|
| 82 |
+
private static final int DATABASE_VERSION = 1;
|
| 83 |
+
|
| 84 |
+
public DatabaseHelper(Context context) {
|
| 85 |
+
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
@Override
|
| 89 |
+
public void onCreate(SQLiteDatabase db) {
|
| 90 |
+
db.execSQL("CREATE TABLE Users (UserID INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT, Rank TEXT, Role TEXT, Username TEXT, Password TEXT)");
|
| 91 |
+
db.execSQL("CREATE TABLE ForceStatus (ReportID INTEGER PRIMARY KEY AUTOINCREMENT, Date TEXT, PresentCount INTEGER, VehiclesCount INTEGER, Tasks TEXT, Notes TEXT, UserID INTEGER)");
|
| 92 |
+
db.execSQL("CREATE TABLE Requests (RequestID INTEGER PRIMARY KEY AUTOINCREMENT, Type TEXT, Description TEXT, Quantity INTEGER, Status TEXT, Date TEXT, UserID INTEGER)");
|
| 93 |
+
db.execSQL("CREATE TABLE Reports (ReportID INTEGER PRIMARY KEY AUTOINCREMENT, Type TEXT, StartDate TEXT, EndDate TEXT, Summary TEXT)");
|
| 94 |
+
db.execSQL("CREATE TABLE ArchiveDeskTab (ArchiveID INTEGER PRIMARY KEY AUTOINCREMENT, FileName TEXT, FileType TEXT, ScanDate TEXT, Category TEXT, Path TEXT)");
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
@Override
|
| 98 |
+
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
| 99 |
+
db.execSQL("DROP TABLE IF EXISTS Users");
|
| 100 |
+
db.execSQL("DROP TABLE IF EXISTS ForceStatus");
|
| 101 |
+
db.execSQL("DROP TABLE IF EXISTS Requests");
|
| 102 |
+
db.execSQL("DROP TABLE IF EXISTS Reports");
|
| 103 |
+
db.execSQL("DROP TABLE IF EXISTS ArchiveDeskTab");
|
| 104 |
+
onCreate(db);
|
| 105 |
+
}
|
| 106 |
+
}
|