# 🎓 GradeX - نظام إدارة درجات الطلاب

GradeX هو تطبيق احترافي متكامل (MERN) مصمم لتبسيط إدارة درجات الطلاب، تنظيم الأقسام، وتتبع النتائج الأكاديمية. يتميز بنظام ذكي لرفع ملفات Excel تحت تحكم الإدارة مع استخراج تلقائي للبيانات الوصفية.

---

## 🚀 التقنيات المستخدمة

### الخلفية (Backend)
- **Node.js & Express.js**: بيئة خادم عالية الأداء.
- **MongoDB & Mongoose**: قاعدة بيانات NoSQL مرنة مع دعم للمخططات الديناميكية.
- **JWT**: مصادقة آمنة باستخدام رموز JSON الويب.
- **Multer**: معالجة فعالة لرفع الملفات.
- **XLSX**: تحليل وتوليد ملفات Excel برمجياً.

### الواجهة الأمامية (Frontend)
- **React (Vite)**: تطوير واجهات مستخدم حديثة وسريعة.
- **Tailwind CSS v4**: نظام تصميم "The Scholarly Ethereal" المعتمد على الأدوات المساعدة.
- **Axios**: عميل HTTP للاتصال بالواجهة البرمجية (API).
- **React Router**: توجيه تصريحي لتطبيقات الصفحة الواحدة.

---

## ✨ المميزات

### 👨‍🏫 لوحة تحكم الإدارة (Admin)
- **إعدادات ديناميكية**: تخصيص الأقسام (مثل الهندسة الكهربائية، الأمن السيبراني)، الصفوف، والشعب بسهولة.
- **رفع ملفات Excel ذكي**: استيراد درجات الطلاب بالجملة مع تعيين تلقائي للمواد والدرجات.
- **إدارة المعلمين**: إنشاء حسابات المعلمين، مراجعة طلبات الانضمام، وتخصيص المواد الدراسية لكل معلم.
- **تحليلات شاملة**: عرض إحصائيات عامة عن أداء الطلاب وتوزيع النتائج.
- **إدارة الطلاب**: عمليات كاملة (إضافة، تعديل، حذف) لسجلات الطلاب.
- **تصدير آمن**: إنشاء ملفات Excel تحتوي على بيانات دخول الطلاب.

### 👨‍🏫 لوحة تحكم المعلم (Teacher)
- **رفع النتائج**: رفع نتائج المواد المخصصة للمعلم فقط.
- **تحليلات المادة**: عرض إحصائيات دقيقة لكل مادة (متوسط الدرجات، نسبة النجاح، عدد المختبرين).

### 🎓 بوابة الطالب (Student)
- **دخول آمن**: الوصول إلى النتائج باستخدام بيانات دخول مولدة تلقائياً.
- **لوحة بيانات شخصية**: عرض درجات المواد بالتفصيل مع المجموع والمعدل.
- **نظام الدعم**: قناة تواصل مباشرة مع الإدارة للاستفسارات.

---

## 📁 هيكل المشروع

```text
GradeX/
├── backend/
│   ├── config/      # إعدادات قاعدة البيانات والنظام
│   ├── controllers/ # المنطق البرمجي للمسارات
│   ├── middleware/  # طبقات الحماية والمصادقة
│   ├── models/      # نماذج قاعدة البيانات (الطالب، الإعدادات، المعلم)
│   ├── routes/      # تعريف مسارات API
│   ├── utils/       # محلل Excel والوظائف المساعدة
│   └── server.js    # نقطة الدخول الرئيسية
├── frontend/
│   ├── src/
│   │   ├── api/     # إعدادات Axios
│   │   ├── pages/   # واجهات التطبيق الرئيسية
│   │   ├── hooks/   # خطافات React المخصصة
│   │   └── App.jsx  # المكون الرئيسي والتوجيه
│   └── vite.config.js
└── Design/          # نماذج التصميم وتوثيق النظام
```

---

## ⚙️ التثبيت والإعداد

### 1. استنساخ المستودع
```bash
git clone https://github.com/your-username/GradeX.git
cd GradeX
```

### 2. إعداد الخلفية (Backend)
```bash
cd backend
npm install
```
قم بإنشاء ملف `.env` في مجلد `backend`:
```env
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
ADMIN_SETUP_KEY=your_setup_key
```
تشغيل الخادم:
```bash
npm run dev
```

### 3. إعداد الواجهة الأمامية (Frontend)
```bash
cd frontend
npm install
npm run dev
```

---

## 👨‍💻 إدارة المشروع البرمجي
**عبدالقادر محمد**

---

## 📜 الترخيص
هذا المشروع مرخص تحت رخصة ISC.
