تفاصيل العمل

المشكلة

مسؤول العلاقات العامة (VPPR) في أندية Toastmasters يقضي ساعات أسبوعياً في مهام محتوى متكررة: كتابة منشورات الفعاليات، تصميم الدعوات، إدارة البريد الإخباري، وتوثيق الجلسات - ما يقلّص الوقت المتاح للعمل الأكثر قيمة.

دور VPPR (نائب رئيس العلاقات العامة) في أندية Toastmasters دور تطوّعي يقوم به أشخاص ليسوا متفرّغين للتسويق، ويواجهون باستمرار:

وقت محدود جداً لإنتاج محتوى أسبوعي متّسق

نبرة وهوية بصرية غير منتظمة عبر المنصات (LinkedIn / Instagram)

صعوبة تحويل الاجتماعات والخطب إلى منشورات قابلة للنشر

اختلاف متطلبات الشكل والطول بين المنصات

غياب أرشيف منظّم يسمح بإعادة استخدام المحتوى القديم

ضعف الظهور الخارجي وانخفاض حضور الضيوف نتيجة لذلك

الحل

VPPR Copilot تطبيق ويب من صفحة واحدة (SPA) مبني على Angular 17 يستهلك واجهة برمجية REST مبنية على .NET 9 وفق نمط Clean Architecture كـ Modular Monolith. يأخذ التطبيق بيانات الاجتماعات والخطب والخطط الأسبوعية، ويُحوّلها — عبر طبقة ذكاء اصطناعي قابلة للتبديل — إلى:

منشورات جاهزة للنشر بصيغ مختلفة لكل منصة

ثيمات اجتماعات بأهداف ونبرات مختلفة

حملات ترويجية متعدّدة الأجزاء

أجندات اجتماعات مع توزيع الأدوار

أسئلة طاولة (Table Topics) مُصنّفة

محتوى دائم (Evergreen) جاهز للجدولة

- القدرات الرئيسية

- توليد المحتوى بالذكاء الاصطناعي

مولّد منشورات لـ LinkedIn و Instagram بصيغ مُهيكلة (Hook / Caption / CTA / Hashtags / Visual Brief)

مولّد ثيمات اجتماعات (Theme Generator) بأهداف متعددة (جذب ضيوف، تحفيز أعضاء…)

تحويل الخطب إلى محتوى (Speech → Content) عبر نقطة API مخصّصة

مولّد خطط محتوى أسبوعية (Weekly Planner)

مولّد أسئلة طاولة (Table Topics) مع تصنيف حسب الفئة والصعوبة

محتوى دائم (Evergreen Content) منظّم بفئات قابلة للجدولة

- إدارة دورة حياة الاجتماعات

إنشاء وإدارة اجتماعات بمواعيد ومواقع وأنواع متعددة (Regular, Contest, Special)

أجندة اجتماع مع توزيع 17 دوراً قياسياً في Toastmasters (Toastmaster of the Day، Evaluator، Timer، Grammarian…)

إدارة الأعضاء وأدوارهم

إدارة الخطب (تخزين، تصنيف، تحويل لمحتوى)

نظام CRM للضيوف: تتبع المصدر (Source) ومرحلة دورة الحياة (Invited → Attended → Followed-up)

- التقويم والأرشيف

لوحة قيادة (Dashboard) لنشاط النادي والمحتوى القادم

تقويم محتوى بعرض أسبوعي وشهري

تحديث حالة العناصر وإعادة الجدولة من التقويم مباشرة

أرشيف قابل للبحث مع إمكانيات تكرار/إعادة استخدام/تحويل بين المنصات

- الهوية البصرية

ملف نادي شامل (Club Profile) مع معلومات أساسية

مجموعة هوية (Brand Kit): ألوان أساسية وثانوية، نبرة العلامة (Brand Voice)، هاشتاقات افتراضية، تكرار النشر المفضّل

توليد سير ذاتية للمنصات (Social Bio Generator) بالعربية والإنجليزية

? التكاملات والاستيراد

استيراد الأعضاء من Excel

لوحة تكاملات (Integrations Panel) مع مؤشّرات حالة لكل منصة

خلاصات RSS لإلهام المحتوى من مصادر خارجية

تنسيق جاهز للنشر إلى Buffer (placeholder للتكامل المباشر)

- البنية المعمارية والتقنيات

الواجهة الخلفية — .NET 9 / ASP.NET Core 9

بنية Clean Architecture بخمسة مشاريع منفصلة الاهتمامات:

المشروع

الدور

VPPRCopilot.Api

وحدات التحكم، Middleware، DI، Swagger، Serilog، JWT

VPPRCopilot.Application

حالات الاستخدام / خدمات الميزات (Use Cases)

VPPRCopilot.Domain

الكيانات والتعدادات — بلا أي اعتمادية على البنية التحتية

VPPRCopilot.Infrastructure

EF Core DbContext، Repositories، مزودات الذكاء الاصطناعي، خلاصات RSS، Seed

VPPRCopilot.Contracts

DTOs مفصولة بالكامل عن الكيانات

20 وحدة تحكم API تحت /api/v1/...

18 كياناً مجالياً يصف دورة حياة Toastmasters كاملة

5 هجرات EF Core (Code-First Migrations)

توثيق Swagger UI متكامل عبر Swashbuckle 6.9

معالج استثناءات عام يحوّل الأخطاء إلى ProblemDetails (RFC 7807)

الواجهة الأمامية — Angular 17

مكونات Standalone Components بأحدث أنماط Angular

21 مجلد ميزة (Feature Folder) مماثلة لمجالات الـ API

core/ لـ HTTP services، JWT Interceptor، Auth Guard، typed models

وكيل تطوير لمسار /api، و Nginx في الإنتاج يربط الواجهة بالـ API على نفس النطاق (لا حاجة لـ CORS في الإنتاج)

اختبارات Karma + Jasmine بمتصفّح Chrome Headless مع تغطية الكود

قاعدة البيانات

PostgreSQL 16 عبر EF Core 9

هجرات Code-First وملفات Configuration منفصلة لكل كيان

Seed Data يُطبَّق وقت الإقلاع خارج بيئة الاختبار

طبقة الذكاء الاصطناعي — قابلة للتبديل

تجريد IAiProvider مع أربعة تطبيقات قابلة للتبديل بدون إعادة نشر:

المزوّد

الاستخدام

Mock

إنتاج مُحدَّد للاختبارات و CI

Groq

llama-3.3-70b-versatile — سحابي مجاني الطبقة

OpenAI

gpt-4o-mini — سحابي مدفوع

Ollama

qwen2.5:7b — ذاتي الاستضافة على VPS كافٍ

FallbackAiProvider يربطها بسلسلة احتياط مُرتَّبة مع إعادة المحاولة عند الأخطاء الشبكية

قوالب الـ Prompts كملفات Markdown منفصلة يجمعها PromptBuilder

حلقة تعلّم: المحتوى المُعتمد يُحقن كأمثلة few-shot في الـ prompts اللاحقة عبر كيان ApprovedExample و FeedbackController

التبديل بين المزوّدات عبر سكربت Bash واحد: ./scripts/switch-ai-provider.sh <provider>

- الأمان والجودة

الأمان

مصادقة JWT Bearer مع تحقق صارم (issuer / audience / lifetime / ClockSkew = TimeSpan.Zero)

فلتر تفويض عام [Authorize] — كل وحدات التحكم محمية افتراضياً (Opt-out only)

تجزئة كلمات المرور بـ BCrypt بمعامل عمل 12

محدد معدّل (Rate Limiter) على نقاط الذكاء الاصطناعي: 20 طلب/دقيقة/IP مع HTTP 429

سقف حجم الطلب 15MB على مستوى Kestrel و FormOptions

CORS بقائمة بيضاء صارمة من الإعدادات

التحقق من الإعدادات وقت بدء التشغيل (Fail-Fast Configuration Validation)

تسجيل مهيكل بـ Serilog مع CorrelationId (JSON مضغوط في الإنتاج، قابل للقراءة في التطوير)

الجودة الهندسية

اختبارات وحدة تغطي طبقات Ai / Features / Middleware

اختبارات تكامل عبر CustomWebApplicationFactory تغطي: Clubs، Dashboard، Calendar، Guests، Meetings، Members، Speeches، AI Endpoints، Health، Security

اختبار حِمل (Load Smoke) على نقاط الذكاء الاصطناعي

اختبارات Angular مع تغطية الكود في CI

- البنية التحتية والنشر

الحاويات والشبكة

Docker Compose بطبقة أساس + طبقة إنتاج (Overlay)

Traefik v3.2 كوكيل عكسي

شهادات HTTPS تلقائية عبر Let's Encrypt (HTTP-01 Challenge)

في الإنتاج: فقط منفذي 80 و 443 معروضين علناً — قاعدة البيانات والـ API مخفية تماماً (!reset [])

النسخ الاحتياطي والتشغيل

نسخ احتياطي يومي تلقائي عبر prodrigestivill/postgres-backup-local (احتفاظ 7 يومية / 4 أسبوعية / 6 شهرية)

Watchtower اختياري لتحديث صور الحاويات تلقائياً ليلاً مع تنظيف

استضافة على Hostinger VPS (خادم واحد بتكلفة منخفضة)

خط التكامل والتسليم المستمر

خط CI/CD على GitHub Actions بمسارَين:

ci.yml — بناء + اختبارات Backend + بناء واختبارات Frontend عند كل push/PR

docker.yml — بناء صور Docker ودفعها لـ GitHub Container Registry عند الدفع لـ main أو وسم v*.*.*

السكربتات التشغيلية

deploy-hostinger.sh — نشر بنقرة واحدة على VPS جديد

verify-hostinger.sh — تحقق ما بعد النشر (HTTP/HTTPS, dry-run)

switch-ai-provider.sh — تبديل آمن لمزوّد الذكاء الاصطناعي

check-dns.sh — فحص انتشار DNS قبل محاولة Let's Encrypt

الوثائق التشغيلية

دليل النشر الكامل (Deployment Runbook)

قائمة تقوية الخادم (Hardening Checklist) على مستوى OS / SSH / UFW / Docker / التطبيق

دليل التبديل بين مزوّدات الذكاء الاصطناعي

دليل إعداد النطاق و DNS (مع توقيت Cloudflare Proxy و Let's Encrypt)

- دوري في المشروع

المؤسّس والمهندس الرئيسي — مسؤول عن:

تصميم المنتج: تحديد المشكلة، نطاق MVP، Personas، خرائط الميزات

البنية المعمارية الكاملة: Backend (.NET 9 Clean Architecture)، Frontend (Angular 17)، طبقة الذكاء الاصطناعي القابلة للتبديل، طبقة البيانات

التنفيذ: 20 وحدة تحكم API، 21 ميزة Angular، 18 كياناً مجالياً، 5 هجرات قاعدة بيانات

هندسة الـ Prompts: تصميم قوالب الـ prompts، آلية التركيب (PromptBuilder)، حلقة التعلّم بالأمثلة المُعتمَدة

الأمان والتشغيل: فلتر التفويض العام، Rate Limiting، تجزئة كلمات المرور، التسجيل المهيكل

DevOps: Docker Compose، Traefik، Let's Encrypt، GitHub Actions، سكربتات النشر، نسخ احتياطي

التوثيق التقني والتشغيلي الكامل

- القيمة المُتحقَّقة

اختصار وقت إنتاج محتوى أسبوع كامل من ساعات إلى دقائق

ضمان اتساق نبرة العلامة وهويتها البصرية عبر كل المنشورات

فصل تكلفة الذكاء الاصطناعي عن المنتج: العميل يبدأ مجاناً بـ Mock أو Groq، ويترقّى إلى OpenAI أو Ollama حسب حجم الاستخدام

بنية تحتية إنتاجية كاملة بتكلفة VPS واحد (~10$ شهرياً)

جاهز لإعادة الاستخدام لأي نادٍ آخر مع إعدادات قابلة للتخصيص كلياً (هوية، ألوان، نبرة، منصات، لغات)

- رابط المعاينة المباشرة:

https://alexclub.vppr-toa...

- بيانات الدخول التجريبية:

البريد: demo

كلمة المرور: demo

ملاحظة: هذا حساب تجريبي بصلاحيات قراءة فقط

على بيئة معزولة مخصصة للمعاينة.

بطاقة العمل

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