تفاصيل العمل

# ChirpNest API

**ChirpNest API** هو Backend لشبكة اجتماعية شبيه بتويتر، مبني باستخدام **NestJS 11.x و TypeScript**، مع اتباع أفضل ممارسات البناء والأنماط المعمارية الحديثة.

---

## الميزات الرئيسية

* **CRUD عام**: قاعدة واحدة لكل العمليات تقلل التكرار

* **Single Table Inheritance (STI)**: دعم أنواع مستخدمين متعددة

* **JWT Authentication**: وصول آمن وتدوير Refresh Token

* **Pagination & Filtering متقدم**: دعم استعلامات معقدة

* **Swagger Docs تفاعلية**: توثيق شامل

### المستخدمون

* أربعة أنواع: Regular, Premium, Admin, Moderator

* إدارة الحالة (Active, Inactive, Suspended, Banned)

* ملفات شخصية، BIO وصورة

### التغريدات

* CRUD كامل

* استخراج هاشتاغ تلقائي

* ترشيح، تصفية، وتجميع التغريدات

* دعم Soft Delete

### هاشتاغات

* كشف تلقائي للتغريدات

* متابعة الهاشتاغات الشائعة

---

## الميزات التقنية

* **نمط CRUD عام**: BaseService للتقليل من التكرار

* **استجابة موحدة**: كل Endpoints تعطي JSON بنفس الهيكل

* **استعلامات متقدمة**: Pagination, Filtering, Sorting, Search

* **STI للمستخدمين**: نوع واحد للجدول مع خصائص مختلفة لكل ChildEntity

* **Testing**: Unit + E2E + Test Coverage

---

## التقنيات

| التقنية | الغرض | النسخة |

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

| NestJS | Framework Backend | 11.x |

| TypeScript | لغة البرمجة | 5.x |

| PostgreSQL | قاعدة بيانات | 16.x |

| TypeORM | ORM & Migrations | 0.3.x |

| JWT | Authentication | 4.x |

| bcrypt | Password Hashing | 6.x |

| Swagger | API Docs | 8.x |

---

## التثبيت السريع

1. Clone repository:

```bash

git clone https://github.com/yourus...

cd chirpnest-api

npm install

```

2. إعداد البيئة:

```bash

cp .env.example .env

# عدل بيانات DB و JWT

```

3. إعداد قاعدة البيانات:

```bash

npm run migration:run

```

4. تشغيل السيرفر:

```bash

npm run start:dev

```

---

## Endpoints أساسية

* **Auth:** `/auth/signup`, `/auth/login`, `/auth/refresh`

* **Users:** CRUD كامل + قائمة paginated + البحث

* **Tweets:** CRUD كامل + الترشيح والفلاتر

* **Hashtags & Profiles:** CRUD كامل

---

## بنية المشروع

```

chirpnest-api/

├── src/

│ ├── common/ # Utilities, interceptors, filters, providers

│ ├── auth/ # Authentication module

│ ├── users/ # Users module

│ ├── tweet/ # Tweets module

│ ├── hashtag/ # Hashtags module

│ ├── profile/ # Profiles module

│ └── main.ts # Entry point

├── docs/ # Documentation

├── test/ # Unit & E2E tests

├── .env.example # Template

└── package.json

```

---

## Deployment

* **Docker:**

```bash

docker build -t chirpnest-api .

docker run -p 3000:3000 --env-file .env chirpnest-api

```

* **مباشر / PM2:**

```bash

npm run build

pm2 start dist/main.js --name chirpnest-api

```

---

## نصائح الأداء

* Connection pooling، Query optimization، Pagination

* Lazy loading للعلاقات حسب الحاجة

* Response caching مع Redis اختياري

---

## المساهمة

1. Fork & Clone

2. Branch جديد

3. Commit & Push

4. إنشاء Pull Request

مع اتباع **معايير TypeScript، unit tests، conventional commits**

---

## الترخيص

**MIT License**

بطاقة العمل

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