تطبيق Angular حديث ومتكامل لإدارة وتخطيط الفعاليات مع دعم كامل لـ Backend API.
- 🔐 نظام مصادقة كامل (تسجيل دخول، تسجيل مستخدم جديد)
- 📅 إدارة الفعاليات (إنشاء، تعديل، حذف، عرض)
- 👥 إدارة المدعوين والحضور
- 🔍 البحث والفلترة المتقدمة
- 🎯 Dashboard تفاعلي لعرض جميع الفعاليات
- 🔒 Token-based Authentication مع Backend
- ⚡ HTTP Interceptor لحقن Token تلقائياً
- 🎨 تصميم عصري وسهل الاستخدام
- Node.js (الإصدار 14.0.0 أو أحدث)
- npm (الإصدار 6.0.0 أو أحدث)
- Angular CLI (الإصدار 17.0.0 أو أحدث)
- Backend API يعمل على
http://127.0.0.1:8000
-
تثبيت Angular CLI عالمياً (إذا لم يكن مثبتاً):
npm install -g @angular/cli
-
استنساخ المشروع:
git clone <repository-link> cd FrontendEventPlanningSystem
-
تثبيت الحزم:
npm install
تأكد من تشغيل Backend API أولاً:
# في مجلد Backend
python manage.py runservernpm start
# أو
ng serveافتح المتصفح على: http://localhost:4200
src/
├── app/
│ ├── components/
│ │ ├── login/ # صفحة تسجيل الدخول
│ │ ├── signup/ # صفحة التسجيل
│ │ ├── dashboard/ # لوحة التحكم الرئيسية
│ │ ├── create-event/ # صفحة إنشاء فعالية
│ │ └── event-details-page/ # صفحة تفاصيل الفعالية
│ ├── services/
│ │ ├── auth.service.ts # خدمة المصادقة
│ │ ├── event.service.ts # خدمة إدارة الفعاليات
│ │ └── local-storage.service.ts # خدمة التخزين المحلي
│ ├── interceptors/
│ │ └── auth.interceptor.ts # حقن Token تلقائياً
│ ├── guards/
│ │ └── auth.guard.ts # حماية المسارات
│ ├── models/
│ │ ├── user.model.ts # نموذج المستخدم
│ │ ├── event.model.ts # نموذج الفعالية
│ │ └── task.model.ts # نموذج المهمة
│ └── environments/
│ ├── environment.ts # إعدادات التطوير
│ └── environment.prod.ts # إعدادات الإنتاج
POST /api/auth/signup/- تسجيل مستخدم جديدPOST /api/auth/login/- تسجيل الدخول
GET /api/events/- جلب الفعاليات التي أنشأها المستخدمGET /api/events/invited/- جلب الفعاليات المدعو إليهاPOST /api/events/create/- إنشاء فعالية جديدةGET /api/events/{id}- جلب تفاصيل فعالية محددةPATCH /api/events/{id}/details/- تعديل فعاليةDELETE /api/events/{id}/delete/- حذف فعالية
POST /api/events/{id}/invitees/- إضافة مدعوDELETE /api/events/{id}/invitees/{email}- حذف مدعوPATCH /api/events/{id}/attendance/- تحديث حالة الحضور
GET /api/events/search/- البحث في الفعاليات
جميع الطلبات للـ Backend تتضمن Token في الـ headers:
Authorization: Token <your-token-here>
يتم إضافة Token تلقائياً بواسطة HTTP Interceptor.
- اذهب لصفحة Signup
- أدخل Username، Email، وPassword
- بعد التسجيل الناجح، سيتم توجيهك للـ Dashboard
- أدخل Username وPassword
- عند النجاح، يتم حفظ Token وتوجيهك للـ Dashboard
- من Dashboard، اضغط "Create Event"
- املأ جميع الحقول المطلوبة
- (اختياري) أضف emails للمدعوين
- اضغط "Create"
- عرض جميع الفعاليات في Dashboard
- تعديل أو حذف الفعاليات الخاصة بك
- تحديث حالة الحضور للفعاليات المدعو إليها
في ملف src/environments/environment.ts:
export const environment = {
production: false,
apiUrl: 'http://127.0.0.1:8000', // غير هذا العنوان
useLocalStorage: false
};إذا أردت استخدام Local Storage بدلاً من Backend للتطوير:
export const environment = {
production: false,
apiUrl: 'http://127.0.0.1:8000',
useLocalStorage: true // غيّر إلى true
};راجع ملف walkthrough.md للحصول على دليل اختبار شامل.
npm test- ✅ Token-based authentication
- ✅ Auto redirect عند انتهاء صلاحية Token (401)
- ✅ Route guards لحماية الصفحات
- ✅ CORS handling في Backend
- ✅ Validation شامل للبيانات
الحل: تأكد من تشغيل Backend على http://127.0.0.1:8000
الحل: تحقق من إعدادات CORS في Backend:
# Django settings.py
CORS_ALLOWED_ORIGINS = [
"http://localhost:4200",
]الحل: تأكد من تسجيل HTTP Interceptor في app.config.ts
- خطة التنفيذ
- دليل الاختبار
- قائمة المهام
- Fork المشروع
- أنشئ branch جديد (
git checkout -b feature/amazing-feature) - نفذ التغييرات
- Commit التغييرات (
git commit -m 'Add amazing feature') - Push للـ branch (
git push origin feature/amazing-feature) - افتح Pull Request
هذا المشروع مرخص تحت MIT License.
للمساعدة أو الإبلاغ عن مشاكل، يرجى فتح issue في GitHub.
تم ربط المشروع بالكامل مع Backend API ✅