نظام إدارة البقالة (PWA) - المرحلة الأولى
هذا هو الهيكل الأساسي لتطبيق إدارة بقالة يعمل كتطبيق ويب تقدمي (PWA) دون اتصال بالإنترنت.
كيفية التشغيل على Termux
السماح بالوصول للمساحة التخزينية:
termux-setup-storage
تثبيت الأدوات المطلوبة:
pkg update && pkg upgrade
pkg install nodejs python
الانتقال لمجلد المشروع:
# تأكد من أنك في المجلد الصحيح الذي يحتوي على index.html
cd /path/to/your/project/folder
تشغيل خادم الويب (اختر خيارًا واحدًا):
الخيار 1: باستخدام Python (بسيط)
python -m http.server 8000
الخيار 2: باستخدام http-server
(أفضل)
# تثبيت http-server مرة واحدة فقط
npm install -g http-server
# تشغيل الخادم
http-server -p 8000
فتح التطبيق:
- افتح متصفح Chrome على جهازك وانتقل إلى:
http://localhost:8000
كيفية التحقق من صحة العمل
التحقق من عمل قاعدة البيانات:
- بعد فتح الصفحة، اضغط على زر "تحميل بيانات عيّنة".
- راقب سجل الحالة في الأسفل. يجب أن تظهر رسائل تشير إلى فتح قاعدة البيانات وتحميل البيانات بنجاح.
- يمكنك أيضًا فتح أدوات المطور في Chrome (
DevTools > Application > IndexedDB
) للتحقق من إنشاء قاعدة البيانات (baqalaDB_v2
) والمخازن (products
, customers
, etc.).
التحقق من العمل دون اتصال (Offline):
- بعد تحميل الصفحة والبيانات مرة واحدة، قم بإيقاف خادم الويب في Termux (بالضغط على
Ctrl+C
).
- قم بتعطيل Wi-Fi و بيانات الجوال على جهازك.
- أعد تحميل الصفحة في المتصفح (
http://localhost:8000
).
- النتيجة المتوقعة: يجب أن يتم تحميل الصفحة بنجاح من ذاكرة التخزين المؤقت (Cache) الخاصة بـ Service Worker.
المرحلة الثانية: اختبار نظام المستخدمين
تسجيل الدخول الأولي:
- عند تشغيل التطبيق لأول مرة، سيتم إنشاء حساب مالك افتراضي.
- استخدم اسم المستخدم:
owner
وكلمة المرور: 0000
لتسجيل الدخول.
إدارة المستخدمين (صلاحية المالك/المدير):
- بعد تسجيل الدخول كـ
owner
، انتقل إلى قسم "المستخدمين".
- أنشئ مستخدمًا جديدًا: املأ النموذج (مثال: اسم المستخدم
cashier1
، رقم PIN 1234
، الدور Cashier
).
- تحقق من ظهور المستخدم الجديد في القائمة.
اختبار الصلاحيات:
- تسجيل الخروج: اضغط على زر "تسجيل الخروج".
- تسجيل الدخول كمستخدم جديد: سجل الدخول باستخدام حساب الكاشير الذي أنشأته (
cashier1
/ 1234
).
- التحقق من الوصول:
- لاحظ أن أزرار "المستخدمين" و "الإعدادات" في شريط التنقل يجب أن تكون مخفية.
- حاول الوصول إلى صفحة الإعدادات مباشرة (إذا كان ذلك ممكنًا عبر تعديل الـ URL، على الرغم من أن البنية الحالية لا تسمح بذلك بسهولة). يجب أن يتم منع الوصول.
- التحقق من وصول المالك: سجل الخروج مرة أخرى وسجل الدخول كـ
owner
. تحقق من أن زر "الإعدادات" مرئي وقابل للوصول.