Create ميدان اسامه

#11
Files changed (1) hide show
  1. ميدان اسامه +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
+ }