# 🚀 دليل التشغيل المحلي - SmartLife Monitor

## المتطلبات الأساسية

- ✅ **Python 3.11+**
- ✅ **Node.js 20+**
- ✅ **XAMPP** (أو WAMP/MAMP) - للحصول على MySQL و phpMyAdmin
- ✅ **Redis** (اختياري للتطوير)

---

## الخطوة 1️⃣: إعداد قاعدة البيانات MySQL

### 1. تشغيل XAMPP
- شغّل **Apache** و **MySQL** من لوحة تحكم XAMPP

### 2. إنشاء قاعدة البيانات
افتح phpMyAdmin: `http://localhost/phpmyadmin/`

**الطريقة الأولى - استخدام ملف SQL:**
1. اذهب إلى تبويب **Import**
2. اختر الملف: `database/smartlife_db.sql`
3. اضغط **Go**

**الطريقة الثانية - يدوياً:**
1. اذهب إلى تبويب **SQL**
2. انسخ محتويات ملف `database/smartlife_db.sql`
3. الصق في المحرر واضغط **Go**

### 3. التحقق من إنشاء الجداول
يجب أن ترى قاعدة البيانات `smartlife_db` تحتوي على:
- ✅ tenants
- ✅ users
- ✅ devices
- ✅ device_readings
- ✅ alert_rules
- ✅ alert_logs
- ✅ user_sessions
- ✅ activity_logs

---

## الخطوة 2️⃣: إعداد Backend (FastAPI)

```bash
# 1. انتقل إلى مجلد Backend
cd backend

# 2. أنشئ بيئة افتراضية
python -m venv venv

# 3. فعّل البيئة الافتراضية
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

# 4. ثبّت المكتبات
pip install -r requirements.txt

# 5. أنشئ ملف .env
copy .env.example .env

# 6. عدّل .env وضع هذه القيم:
# DATABASE_URL=mysql+aiomysql://root:@localhost:3306/smartlife_db?charset=utf8mb4
# REDIS_URL=redis://localhost:6379/0  (اختياري)
# SECRET_KEY=your-secret-key-here
# JWT_SECRET_KEY=your-jwt-secret-here

# 7. شغّل الخادم
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```

### ✅ تحقق من عمل Backend
افتح المتصفح: `http://localhost:8000/docs`

يجب أن ترى **Swagger UI** مع جميع الـ endpoints

---

## الخطوة 3️⃣: إعداد Frontend (Next.js)

```bash
# 1. افتح terminal جديد وانتقل إلى مجلد Frontend
cd frontend

# 2. ثبّت المكتبات
npm install

# 3. أنشئ ملف .env.local
copy .env.example .env.local

# 4. عدّل .env.local:
# NEXT_PUBLIC_API_URL=http://localhost:8000

# 5. شغّل خادم التطوير
npm run dev
```

### ✅ تحقق من عمل Frontend
افتح المتصفح: `http://localhost:3000`

---

## الخطوة 4️⃣: تسجيل الدخول

### بيانات الدخول الافتراضية:
```
البريد الإلكتروني: admin@smartlife.local
كلمة المرور: admin123
```

⚠️ **مهم**: غيّر كلمة المرور فوراً بعد أول تسجيل دخول!

---

## 🔧 استكشاف الأخطاء

### مشكلة: لا يتصل Backend بقاعدة البيانات

**الحل:**
1. تأكد من تشغيل MySQL في XAMPP
2. تحقق من `DATABASE_URL` في `.env`
3. تأكد من اسم قاعدة البيانات: `smartlife_db`
4. تأكد من اسم المستخدم: `root` وكلمة المرور فارغة (افتراضي في XAMPP)

### مشكلة: Frontend لا يتصل بـ Backend

**الحل:**
1. تأكد من تشغيل Backend على `http://localhost:8000`
2. تحقق من `NEXT_PUBLIC_API_URL` في `.env.local`
3. افتح `http://localhost:8000/docs` للتأكد

### مشكلة: أخطاء في تثبيت المكتبات

**الحل:**
```bash
# Backend
pip install --upgrade pip
pip install -r requirements.txt --force-reinstall

# Frontend
npm cache clean --force
npm install
```

---

## 📊 الوصول إلى الأدوات

| الأداة | الرابط |
|--------|--------|
| **Frontend** | http://localhost:3000 |
| **Backend API Docs** | http://localhost:8000/docs |
| **phpMyAdmin** | http://localhost/phpmyadmin/ |
| **ReDoc** | http://localhost:8000/redoc |

---

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

1. ✅ سجّل دخول كـ Super Admin
2. ✅ أنشئ عميل جديد (Tenant)
3. ✅ أضف بيانات LifeSmart API للعميل
4. ✅ أضف أجهزة
5. ✅ أنشئ قواعد تنبيه

---

## 💡 نصائح

- استخدم **Postman** لاختبار الـ API endpoints
- راجع `PROJECT_PLAN.md` للتفاصيل الكاملة
- تحقق من الـ logs في terminal للأخطاء
- استخدم Developer Tools في المتصفح (F12)

---

## 🆘 الدعم

إذا واجهت أي مشكلة:
1. تحقق من الـ logs في terminal
2. راجع ملف `README.md`
3. تحقق من `PROJECT_PLAN.md` للتفاصيل التقنية

---

**جاهز للبدء! 🚀**
