تفاصيل العمل

# YASHCHAT

YASHCHAT هو **تطبيق دردشة متكامل (Full-Stack) يعمل في الوقت الفعلي**، ويتميز بنظام مصادقة آمن للمستخدمين، وواجهة مستخدم حديثة، وإرسال واستقبال الرسائل لحظيًا باستخدام Socket.io.

المشروع مقسّم إلى مجلدين رئيسيين: واجهة أمامية مبنية باستخدام **Next.js**، وواجهة خلفية مبنية باستخدام **Express.js**.

## 🌐 النسخة التجريبية

* **الواجهة الأمامية:** https://yashchat-two.verc...

* **الخادم الخلفي (API):** https://chat-backend-3e4y...

---

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

### الواجهة الأمامية Frontend

* **Framework:** Next.js

* **التنسيق والتصميم:** Tailwind CSS

* **مكونات الواجهة:** shadcn/ui

* **التواصل اللحظي:** Socket.io Client

### الواجهة الخلفية Backend

* **الخادم:** Express.js

* **قاعدة البيانات:** MongoDB Atlas

* **ORM / ODM:** Mongoose

* **المصادقة:** JWT (JSON Web Token)

* **التواصل اللحظي:** Socket.io

* **تشفير كلمات المرور:** bcryptjs

---

## 🔐 المصادقة والأمان

* نظام مصادقة يعتمد على JWT.

* تشفير كلمات المرور بشكل آمن باستخدام **bcryptjs**.

* حماية المسارات الحساسة باستخدام Middleware، مثل:

* `/api/messages`

* `/api/chats`

---

## 📦 واجهات API

### مسارات المصادقة Auth

| الطريقة | المسار | الوصف |

| ------- | -------------------- | ------------------------------ |

| POST | `/api/auth/register` | تسجيل مستخدم جديد |

| POST | `/api/auth/login` | تسجيل الدخول والحصول على Token |

### مسارات المستخدمين Users

| الطريقة | المسار | الوصف |

| ------- | ---------------- | ------------------------- |

| GET | `/api/users` | جلب جميع المستخدمين |

| GET | `/api/users/:id` | جلب مستخدم بواسطة المعرّف |

| PATCH | `/api/users/:id` | تحديث بيانات المستخدم |

| DELETE | `/api/users/:id` | حذف المستخدم |

### مسارات المحادثات Chats

| الطريقة | المسار | الوصف |

| ------- | ------------------------ | ------------------------- |

| GET | `/api/chats/user/:id` | جلب جميع محادثات المستخدم |

| GET | `/api/chats/:id` | جلب محادثة محددة |

| POST | `/api/chats` | إنشاء محادثة جديدة |

| POST | `/api/chats/add-message` | إضافة رسالة إلى المحادثة |

| PATCH | `/api/chats/update` | تحديث معلومات المحادثة |

| DELETE | `/api/chats/:id` | حذف المحادثة |

### مسارات الرسائل Messages 🔐

| الطريقة | المسار | الوصف |

| ------- | ----------------------- | ---------------------- |

| GET | `/api/messages/:chatId` | جلب رسائل محادثة محددة |

| POST | `/api/messages` | إرسال رسالة جديدة |

---

## 💡 المميزات

* ✅ تسجيل المستخدمين وتسجيل الدخول

* ✅ محادثات فردية لحظية بين المستخدمين

* ✅ دعم الوضع الفاتح والداكن

* ✅ Backend آمن باستخدام JWT

* 🔜 دعم المحادثات الجماعية قريبًا

* 🔐 حماية مسارات المحادثات والرسائل

---

## ⚙️ متغيرات البيئة

### Backend `.env`

```env

PORT=5000

MONGO_URI=your_mongo_uri

JWT_SECRET=your_jwt_secret

```

### Frontend `.env.local`

```env

NEXT_PUBLIC_API_BASE=https://chat-backend-3e4y...

```

---

## ☁️ النشر Deployment

* **الواجهة الأمامية:** Vercel

* **الواجهة الخلفية:** Render

* تم استضافة Socket.io على Render لأن Vercel لا يدعم اتصالات WebSocket بالشكل المطلوب لهذا المشروع.

---

## 🧑‍💻 المطور

تم تطوير المشروع بواسطة **YASHDEV42**

GitHub: https://github.com/YASHDE...

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة
تاريخ الإنجاز
المهارات