# 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...