مشروع عملAvenue Group

OKKP — نظام داخلي لمراقبة الجودة

المطوّر الرئيسي للمشروع · 2025

نظام ويب داخلي لمراقبة الجودة في شبكة من 9 مرائب مركبات. صمّمتُ البنية والواجهة البرمجية وكتبتُ معظم الكود: المخالفات والغرامات، والموظفون، وأرشيف الوثائق، والتصدير إلى Excel.

كود خاص · NDA

الواجهة

React + TypeScript · SPA · Vite · Tailwind
REST · JWT

API

Node.js / Express 5 · REST API
  • المصادقة · JWT
  • الموظفون
  • المخالفات
  • الاتصالات
  • الأرشيف
مستندات · وسائط

البيانات

MongoDB · Mongoose
Cloudinary · وسائط · بديل محلي
OKKP — نظام داخلي لمراقبة الجودة — معاينة
الكود خاص (NDA)، لذا يوضّح هذا المخطط البنية التي بنيتها.فتح بالحجم الكامل

المشكلة

احتاجت شبكة مرائب Avenue Group التسعة إلى نظام داخلي واحد لتسجيل المخالفات والغرامات وحفظ بيانات الموظفين وإعداد التقارير دون تدخّل مطوّر.

الحل

تطبيق SPA على React + TypeScript فوق API على Node.js / Express وMongoDB، مع تصفية من جهة الخادم وأرشيف وثائق على Cloudinary ومصادقة JWT وتصدير إلى Excel داخل المتصفح؛ والنشر عبر Docker Compose وCI على GitHub Actions.

النتيجة

يعمل على خادم Linux الخاص بالشركة، ويصفّي الموظفون المخالفات ويصدّرون التقارير إلى Excel بأنفسهم.

نظرة عامة

في Avenue Group كنتُ المطوّر الرئيسي لنظام OKKP، وهو نظام ويب داخلي لمراقبة الجودة في شبكة من 9 مرائب مركبات، ضمن فريق من ثلاثة أشخاص. صمّمتُ البنية والواجهة البرمجية وكتبتُ معظم الكود (نحو 177 من 183 إيداعاً في 2025 عبر مستودعات المشروع الثلاثة).

التقنيات: تطبيق صفحة واحدة على React 18 + TypeScript ‏(Vite وTailwind CSS)، وREST API على Node.js / Express 5، وقاعدة MongoDB ‏(Mongoose). وجوهر النظام وحدة المخالفات والغرامات: تصفية من جهة الخادم حسب الاسم والقسم والنوع والحالة والمرأب والفترة، وترقيم الصفحات، ومرفقات الصور والفيديو، وحذف يتطلّب تأكيداً بكلمة المرور. وحولها وحدات للموظفين ومتابعة اتصالات السائقين وأرشيف الوثائق (Cloudinary مع بديل على القرص المحلي) والإشعارات الداخلية. والدخول عبر JWT ‏(bcrypt) بالبريد الإلكتروني أو الهاتف.

تعرض الصفحة الرئيسية بطاقات KPI لكل مرأب، وتُصدَّر المخالفات والموظفون واتصالات السائقين وملخّص المرائب إلى Excel داخل المتصفح مباشرة. والنشر عبر Docker Compose ‏(MongoDB + API) على خادم Linux خلف reverse proxy، وCI على GitHub Actions.

ماذا يفعل

  • وحدة المخالفات والغرامات: تصفية من جهة الخادم (الاسم، القسم، النوع، الحالة، المرأب، الفترة) وترقيم الصفحات
  • ملفات الموظفين مع رفع الصور والعقود والاستبيانات، ومتابعة اتصالات السائقين، وإشعارات داخلية
  • أرشيف وثائق على Cloudinary مع بديل على القرص المحلي
  • بطاقات مؤشرات KPI لكل مرأب وتصدير إلى Excel داخل المتصفح (SheetJS)

الخطوة التالية

تبحث عن مطوّر Full-Stack أو Python — أو تحتاج إلى بناء شيء مشابه؟ لنتحدث.

منفتح على عروض العمل — حضورياً أو بنظام هجين في موسكو، أو عن بُعد؛ بدوام كامل أو بعقد. أردّ خلال 48 ساعة — وأسرع عبر Telegram.

تواصل معي Telegramتحميل السيرة الذاتية

الحسن الفران.

© 2026 · صمّمته وبنيته بنفسي. التقنيات: Next.js وTailwind وFramer Motion.

توقيتي المحلي: · موسكو

ملاحظات
كيف بُني هذا الموقع

التقنيات

Next.js (App Router) وReact، مع Tailwind CSS للتنسيق وFramer Motion للحركة. يُرسل نموذج التواصل الرسائل عبر Resend، والموقع مستضاف على Vercel.

ثلاث لغات وتصميم واحد

لكل من النسخ الإنجليزية والروسية والعربية عنوانها الخاص (/en و/ru و/ar)، وكلها تستخدم المكوّنات نفسها. يعتمد التصميم على خصائص CSS المنطقية (start/end بدلاً من left/right)، فتنعكس النسخة العربية من اليمين إلى اليسار دون أنماط منفصلة. ويُرسل الخادم كل صفحة بلغتها واتجاه نصها مسبقاً، فلا ينقلب شيء بعد التحميل، ولا يُنزَّل الخط العربي إلا عند ظهور نص عربي على الشاشة.

الأداء وسهولة الوصول

لا تُعرض الأقسام الواقعة أسفل الشاشة الأولى إلا عند الاقتراب منها، ولا تُحمَّل القائمة السريعة إلا عند أول استخدام لها. يمكن استخدام كل شيء من لوحة المفاتيح، مع رابط للانتقال مباشرة إلى المحتوى وتركيز ظاهر، وتتوقف الحركة إذا طلب نظامك تقليلها.

الكود المصدري على GitHub