Skip to content

noone313/remoteDisk

Repository files navigation

remoteDisk

🧠 مشروع نظام إدارة مهام ومراسلات مع حضور وغياب باستخدام WebSocket و Redis

⚙️ مقدمة

هذا المشروع عبارة عن نظام متكامل لإدارة المهام والمراسلات داخل المكاتب، مع تتبع حضور وغياب الموظفين، وتكامل تام مع WebSocket لتحديثات الوقت الحقيقي، و Redis لتحسين الأداء باستخدام التخزين المؤقت (Caching) وتزامن الاتصالات.


📦 مكونات المشروع

👤 إدارة المستخدمين (User Management)

  • إنشاء مستخدم جديد مع التحقق من صحة البريد وكلمة المرور.
  • تسجيل الدخول باستخدام JWT وتخزين التوكن في كوكي آمن.
  • تعديل الملف الشخصي وكلمة المرور.
  • حذف الحساب أو مستخدم حسب الـ ID.
  • حماية تسجيل الدخول باستخدام rate limiting مع Redis.

✅ إدارة المهام (Tasks Management)

  • إنشاء وتحديث وحذف المهام.
  • ربط المهام بالمستخدمين والمكاتب.
  • إرسال إشعارات فورية عند إنشاء أو تعديل أو حذف المهام.
  • استخدام Redis لتخزين المهام مؤقتًا (cache) وتحسين الأداء.
  • فلترة المهام حسب المكتب، المستخدم، أو الحالة.

💬 نظام المراسلات (Messages)

  • إرسال الرسائل داخل المكاتب.
  • تعديل وحذف الرسائل من قبل مرسلها فقط.
  • إرسال إشعارات مباشرة عبر WebSocket للمكتب المعني.
  • دعم محتمل للكاش باستخدام Redis على غرار المهام.

⏰ نظام الحضور والغياب (Attendance)

  • تسجيل الحضور والانصراف.
  • ربط كل سجل حضور بمستخدم ومكتب.
  • إشعارات مباشرة عند تسجيل أو تعديل الحضور.
  • دعم محتمل للكاش أو الفلترة باليوم/المستخدم.

🔌 WebSocket (Socket.IO)

  • دعم الانضمام إلى غرف حسب معرف المستخدم أو المكتب.
  • إرسال الأحداث مثل: taskCreated, taskUpdated, messageDeleted, attendance:checkin.
  • استخدام Redis Adapter لدعم بيئة موزعة (Clustered Socket.IO).

🚀 Redis

  • كاش للمهام لتسريع الاستجابة وتقليل الضغط على قاعدة البيانات.
  • مزامنة Socket.IO عند استخدام عدة نسخ من الخادم.
  • تخزين بيانات الـ Rate Limit لتقليل محاولات الاختراق.

🔐 الأمان

  • تشفير كلمات المرور باستخدام bcrypt.
  • توليد JWT مع صلاحيات زمنية.
  • التحكم في محاولات تسجيل الدخول عبر express-rate-limit.
  • إرسال التوكنات عبر كوكي آمنة (HTTPOnly).

🛠️ التقنيات المستخدمة

التقنية الاستخدام
Node.js + Express إنشاء REST API
Sequelize ORM للتعامل مع PostgreSQL أو MySQL
Socket.IO WebSocket للتواصل الفوري
Redis تخزين مؤقت + مزامنة Socket.IO
JWT توثيق المستخدمين
bcrypt تشفير كلمات المرور
express-rate-limit حماية من الهجمات ومحاولات الدخول
dotenv تحميل متغيرات البيئة

🌟 ميزات المشروع

  • 🔄 تحديث فوري عبر WebSocket لكل الأحداث المهمة.
  • ⚡ أداء عالي باستخدام Redis ككاش.
  • 🔐 أمان عالي عبر JWT و rate limiting و bcrypt.
  • 📚 كود منظم وسهل الصيانة وقابل للتوسعة.
  • ✅ قابلية التوسيع لإضافة واجهات أو خصائص مستقبلية بسهولة.

💡 أفكار للتوسعة

  • إنشاء واجهة رسومية (Dashboard) باستخدام React أو Vue.
  • إضافة إشعارات بالبريد الإلكتروني أو SMS.
  • دعم صلاحيات متعددة (مدير، موظف، مشرف...).
  • تقارير وتحليلات عن المهام والحضور.
  • تخزين الملفات والمرفقات في المهام.

📌 الخلاصة

مشروع إدارة المهام والمراسلات مع الحضور والغياب هذا، يجمع بين الأداء والواقعية، بفضل استخدام تقنيات حديثة مثل Socket.IO و Redis، ويشكل نواة قوية لأي تطبيق يهدف لإدارة فرق العمل أو الموارد البشرية.


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published