إن نادي Microsoft Learn Student Ambassadors AIMT هو مبادرة يقودها الطلاب وينسقها المجتمع تحت قيادة أشيش أوجوال ، قائد النادي. يعد هذا النادي مجتمعًا مبتكرًا وجذابًا حيث يمكن للطلاب المشاركة في العديد من الأنشطة الفنية والمرحة، بما في ذلك:
الهدف من هذا المشروع هو إنشاء تطبيق ويب كامل المواصفات يدعم تنسيق أنشطة النادي من خلال لوحة الأحداث، ولوحة الإدارة، ولوحة المدونة، والمزيد.
تنظيم الأحداث وإدارتها والمشاركة فيها بسهولة. يمكن للمستخدمين التصفح والتسجيل والحصول على تفاصيل حول أحداث النادي القادمة.
لوحة مدونة ممكّنة بالكامل لـ CRUD حيث يمكن للمستخدمين والمسؤولين إنشاء المدونات وقراءتها وتحديثها وحذفها.
إدارة جميع المستخدمين والأحداث والمدونات من لوحة الإدارة المركزية. يتمتع المسؤولون بالتحكم الكامل في النظام الأساسي، بما في ذلك إرسال الرسائل الإخبارية والإشراف على نشاط المستخدم.
إشعارات البريد الإلكتروني السلسة عبر Nodemailer . يتم إخطار المستخدمين بشأن تسجيل الأحداث وتحديثات المدونة والأنشطة الأخرى عبر رسائل البريد الإلكتروني.
مصادقة مستخدم آمنة وموثوقة باستخدام JSON Web Tokens (JWT) . تتم إدارة الأدوار والأذونات للمستخدمين والمسؤولين ومديري الأحداث.
يتيح الاتصال في الوقت الفعلي مع المقبس.io تفاعلًا ديناميكيًا وجذابًا بين المستخدمين أثناء الأحداث المباشرة والمحادثات.
يتم نشر النظام الأساسي بأكمله واستضافته على Azure، مما يضمن أداءً سريعًا وقابلاً للتطوير.
شاهد العرض التوضيحي للمشروع والفيديو التفصيلي:
تم بناء هذا المشروع على MERN Stack مع ميزات إضافية لخدمات البريد الإلكتروني والتفاعل في الوقت الحقيقي.
مجموعة المستخدمين :
يخزن معلومات المستخدم، بما في ذلك الأدوار (المسؤول والمستخدم)، ورموز المصادقة، وبيانات الملف الشخصي.
مجموعة الأحداث :
يخزن جميع البيانات المتعلقة بالحدث بما في ذلك تفاصيل الحدث والمستخدمين المسجلين ومنظمي الحدث.
مجموعة المدونات :
مجموعة من جميع المدونات التي أنشأها المستخدمون، بالإضافة إلى الطوابع الزمنية والفئات وتفاصيل التأليف.
This project uses JWT for user authentication and role-based authorization. The following user roles are supported:
1. Admin:
Full access to all resources including events, users, and blogs.
2. Event Manager:
Limited access to manage events and moderate related user activities.
3. User:
Can register for events, read blogs, and contribute by writing blog posts.
لإعداد إشعارات البريد الإلكتروني، تم دمج خدمة Nodemailer. يمكنك تكوين البريد الإلكتروني للمرسل في ملف .env كما هو موضح في قسم الإعداد المحلي.
تسمح لك لوحة الإدارة بما يلي:
يتضمن هذا المشروع ميزة الدردشة في الوقت الفعلي باستخدام Jack.io. يمكن للمستخدمين التفاعل أثناء الأحداث ونشر التعليقات المباشرة والمشاركة في المناقشات في الوقت الفعلي.
في الإصدارات المستقبلية، نهدف إلى إضافة المزيد من الميزات مثل:
لتشغيل المشروع محلياً، اتبع الخطوات التالية:
استنساخ المستودع
git clone https://github.com/AshishUjjwal/Microsoft-LSA-AIMT.git
انتقل إلى دليل المشروع
cd Microsoft-LSA-AIMT
تثبيت التبعيات
npm install
cd client
npm install
إعداد متغيرات البيئة
قم بإنشاء ملف .env في الدليل الجذر وأضف المتغيرات التالية:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
[email protected]
EMAIL_PASS=your_email_password
تشغيل التطبيق لتشغيل الخادم والعميل:
npm run dev
الوصول إلى التطبيق افتح المتصفح الخاص بك وانتقل إلى http://localhost:3000.
لقد كان هذا المشروع جزءًا مهمًا من برنامج Microsoft Learn Student Ambassadors. إنه مصمم لتعزيز بناء المجتمع والتعاون بين الطلاب والمهنيين على حدٍ سواء.
لا تتردد في التواصل على:
نحن نرحب بالمساهمات من المجتمع! إذا كنت ترغب في المساهمة:
لمزيد من التفاصيل، يرجى قراءة إرشادات المساهمة.
This project is licensed under the MIT License - see the LICENSE file for details.