P-FLOW هو نظام متخصص لإدارة المخزون قائم على الويب ومصمم خصيصًا للصيدليات. يهدف إلى تبسيط العمليات المعقدة لتتبع الأدوية، إدارة الطلبات، والإشراف على مستويات المخزون بواجهة React حديثة وبديهية. يهدف هذا النظام إلى تعزيز الكفاءة التشغيلية، تقليل الأخطاء اليدوية، وتوفير تحكم شامل في مخزون الصيدلية.
أهداف النظام
الهدف الأساسي لـ P-FLOW هو تقديم حل ذكي ومتكامل لإدارة مخزون الأدوية. ويحقق ذلك من خلال توفير واجهات ووظائف مخصصة لثلاثة أدوار رئيسية للمستخدمين:
•موظفو الصيدلية
•مسؤول المخزون
•المدير الإداري
الأدوار وصلاحيات الوصول
يطبق P-FLOW نظامًا قويًا للتحكم في الوصول المستند إلى الأدوار (RBAC) لضمان مستويات وصول آمنة ومناسبة لكل مستخدم، بناءً على دوره المعين:
•دور الصيدلي: يمكن للمستخدمين بهذا الدور تصفح الأدوية، إدارة عربات التسوق، تقديم الطلبات، والاحتفاظ بقائمة أمنيات من الأصناف.
•دور مسؤول المخزون: يخول هذا الدور إضافة الأدوية وتعديلها وحذفها، وعرض إحصائيات المخزون، واستيراد البيانات عبر Excel لإدارة المخزون بكفاءة.
•دور المسؤول الإداري: يتمتع المسؤولون الإداريون بتحكم شامل، بما في ذلك إدارة المستخدمين، والوصول إلى لوحة تحكم شاملة، وإدارة التصنيفات للنظام بأكمله.
البنية المعمارية والتقنيات
تم بناء P-FLOW على حزمة تقنية حديثة وقابلة للتطوير، مما يضمن أداءً عاليًا، وسهولة الصيانة، وتجربة مستخدم غنية:
•React 18: تستخدم لبناء واجهات مستخدم ديناميكية ومتجاوبة.
•React Router 7: تدير التوجيه من جانب العميل لتنقل سلس داخل التطبيق.
•React Query 4: تسهل جلب البيانات بكفاءة، والتخزين المؤقت، وإدارة الحالة لتفاعلات API.
•Material UI 6: توفر مكتبة شاملة من مكونات واجهة المستخدم الجاهزة، مما يضمن تصميمًا متسقًا وجمالياً.
•Formik + Yup: تستخدم لإدارة النماذج والتحقق منها بشكل قوي، مما يعزز سلامة البيانات وتجربة المستخدم.
•Axios: عميل HTTP قائم على الوعود يستخدم لإجراء طلبات API.
•Vite: تعمل كأداة بناء، وتقدم تطويرًا سريعًا وبناءات إنتاج محسّنة.
الهيكل العام للتطبيق
تم تصميم بنية التطبيق لتكون معيارية وقابلة للتطوير، مع فصل واضح للمسؤوليات:
•App.jsx: يعمل كنقطة دخول للتطبيق، وينسق المكونات الرئيسية والتوجيه.
•Context API: تستخدم لإدارة الحالة العامة بكفاءة، مما يضمن اتساق البيانات عبر التطبيق.
•التوجيه الديناميكي: تم تنفيذه لتوفير تنقل ديناميكي بناءً على أدوار المستخدم (الضيف، المسؤول، الصيدلي، المخزون)، مما يعزز الأمان وتجربة المستخدم.
•المسارات المحمية ومسارات الضيوف: تضمن أن المستخدمين يمكنهم الوصول فقط إلى المحتوى ذي الصلة بحالتهم المصادق عليها ودورهم، مما يحمي المعلومات والوظائف الحساسة.