Skip to content

Latest commit

 

History

History
195 lines (144 loc) · 16.6 KB

File metadata and controls

195 lines (144 loc) · 16.6 KB

ForexSignalBot: روبوت تيليجرام لإشارات الفوركس، مدعوم بالذكاء الاصطناعي، ذكي ومجاني ومفتوح المصدر 📈🤖✨🚀

License GitHub Stars GitHub Forks GitHub Issues GitHub Closed Issues GitHub Pull Requests GitHub Closed Pull Requests Test Coverage Top Language .NET Version Last Commit Commit Activity Code Size Contributors GitHub Repo stars

🚀 ابدأ الآن!

  • جرّب البوت مباشرة: https://t.me/trade_ai_helper_bot
  • فقط اضغط على الرابط لفتح البوت في تيليجرام وبدء التداول!

ForexSignalBot Demo

🚀 البدء

يمكنك تشغيل هذا المشروع بطريقتين: باستخدام Docker (موصى به للإعداد السريع) أو عن طريق إعداد بيئة محلية يدويًا.

الخيار ١: التشغيل السريع باستخدام Docker (موصى به)

شغّل حزمة التطبيق بأكملها—الـ API، قاعدة بيانات PostgreSQL، وذاكرة التخزين المؤقت Redis—في دقائق معدودة باستخدام Docker. هذه هي الطريقة الأسرع والأسهل للبدء.

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

الخطوة ١: نسخ المستودع

افتح الطرفية (terminal) وانسخ الكود المصدري للمشروع.

git clone https://github.com/Opselon/ForexTradingBot.git
cd ForexTradingBot

الخطوة ٢: إعداد المفاتيح السرية

يتطلب التطبيق مفاتيح API وكلمات مرور. نستخدم ملف .env لهذا الغرض، والذي يبقى خاصًا.

  1. إنشاء ملف البيئة:

    cp .env.example .env
  2. تعديل ملف .env: افتح ملف .env الجديد واملأه بقيمك السرية الحقيقية.

    • TELEGRAM_BOT_TOKEN: احصل عليه من @BotFather على تيليجرام.
    • POSTGRES_PASSWORD: أنشئ كلمة مرور قوية وآمنة لقاعدة بياناتك.

الخطوة ٣: شغّل التطبيق! 🔥

أثناء تشغيل Docker، نفذ أمرًا واحدًا من المجلد الجذري للمشروع:

docker-compose up --build -d

يقوم هذا الأمر ببناء وتشغيل حاويات الـ API و PostgreSQL و Redis. تم تكوين الـ API لتنفيذ ترحيلات قاعدة البيانات (migrations) تلقائيًا عند بدء التشغيل.

الخطوة ٤: تعبئة قاعدة البيانات بالبيانات الأولية

يحتاج البوت إلى قائمة أولية من خلاصات RSS. اتصل بقاعدة البيانات باستخدام عميل مثل DBeaver أو DataGrip وقم بتشغيل سكربت Populate_RssSources_Categories.sql.

  • المضيف (Host): localhost
  • المنفذ (Port): 5432
  • قاعدة البيانات (Database): forexsignalbot_db
  • المستخدم (User): postgres
  • كلمة المرور (Password): هي POSTGRES_PASSWORD التي قمت بتعيينها في ملف .env.

🎉 هذا كل شيء! البوت الخاص بك يعمل الآن داخل Docker.


الخيار ٢: إعداد التطوير المحلي (بدون Docker)

اتبع هذه الخطوات إذا كنت تفضل تشغيل التطبيق مباشرة على جهازك.

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

  1. NET 9 SDK:

  2. قاعدة بيانات PostgreSQL:

    • قم بتثبيت وتشغيل خادم PostgreSQL محلي.
    • أنشئ قاعدة بيانات ومستخدمًا.
    • حدّث سلسلة الاتصال (connection string) في ملف appsettings.Development.json.
  3. خادم Redis:

    • يُستخدم Redis للتخزين المؤقت ومعالجة المهام في الخلفية.
    • لنظام Windows: قم بتثبيت خادم متوافق مع Redis مثل Memurai.
    • لـ macOS/Linux: قم بالتثبيت عبر مدير الحزم (مثل brew install redis أو sudo apt-get install redis-server).

تشغيل التطبيق محليًا

للمطورين الذين يفضلون تشغيل التطبيق مباشرة على أجهزتهم، اتبعوا هذه الخطوات:

  1. انسخ المستودع (إذا لم تكن قد فعلت ذلك بالفعل).
  2. قم بتهيئة appsettings.Development.json بسلسلة اتصال قاعدة البيانات المحلية والإعدادات الأخرى.
  3. طبق ترحيلات قاعدة البيانات (migrations):
    dotnet ef database update --startup-project WebApi --project Infrastructure
  4. املأ قاعدة البيانات عن طريق تشغيل سكربت Populate_RssSources_Categories.sql على قاعدة بياناتك المحلية.
  5. شغّل الـ API:
    dotnet run --project WebApi

للحصول على تفاصيل أكثر شمولاً وإرشادات النشر في بيئة الإنتاج، يرجى الرجوع إلى دليل INSTALL.md المخصص.


🛠️ دليل المطور

يحتوي هذا القسم على أوامر شائعة للتطوير.

إدارة ترحيلات قاعدة البيانات (Migrations)

قبل تشغيل هذه الأوامر، تأكد من تثبيت أدوات EF Core: dotnet tool install --global dotnet-ef

  • إضافة ترحيل جديد: عند تغيير نموذج المجال (domain model)، أنشئ ترحيلًا جديدًا.

    dotnet ef migrations add YourMigrationName --startup-project WebApi --project Infrastructure

    (استبدل YourMigrationName باسم وصفي، مثل AddSignalStatus)

  • تطبيق الترحيلات: لتحديث مخطط قاعدة البيانات يدويًا.

    dotnet ef database update --startup-project WebApi --project Infrastructure

إنشاء نسخة جاهزة للنشر (Production Build)

لتجميع التطبيق في ملف تنفيذي مستقل جاهز للنشر:

# مثال لنسخة مستقلة لنظام Windows x64
dotnet publish --configuration Release --runtime win-x64 --self-contained true --project WebApi
  • سيكون الناتج في المجلد WebApi/bin/Release/net9.0/win-x64/publish.

الخطوة ٤: معالج الإعداد عبر الويب ✨

هذه هي عملية الإعداد الجديدة والمبسطة.

  1. افتح لوحة التحكم على الويب: انتقل إلى http://localhost:5000/login.html في متصفحك.
  2. تسجيل الدخول: استخدم بيانات الاعتماد الافتراضية:
    • اسم المستخدم: admin
    • كلمة المرور: admin (سيُطلب منك تغيير هذه التفاصيل الحساسة أثناء عملية الإعداد لأول مرة في واجهة الويب لتعزيز الأمان.)
  3. الإعداد الموجه: بعد تسجيل الدخول لأول مرة، سيتم توجيهك تلقائيًا إلى صفحة إعداد آمنة (/indexapp.html).
    • في هذه الصفحة، سيُطلب منك إدخال توكن بوت تيليجرام والإعدادات الأساسية الأخرى.
    • سيقوم النظام باختبار بيانات الاعتماد الخاصة بك مباشرة للتأكد من صلاحيتها قبل الحفظ.
    • بمجرد الحفظ، يتم تخزين هذه الإعدادات بشكل آمن في قاعدة البيانات، وليس في ملفات نصية عادية.
  4. تعبئة قاعدة البيانات: بعد الإعداد الأولي، سيُطلب منك تعبئة قاعدة البيانات. انقر على زر "Seed Database" في واجهة الويب. سيؤدي هذا إلى ملء القائمة الأولية لخلاصات RSS والبيانات المطلوبة الأخرى.

🎉 هذا كل شيء! البوت الخاص بك الآن مُهيأ بالكامل وجاهز للعمل. يمكنك إدارة كل شيء من لوحة التحكم على الويب. alt text

🌟 نجوم المشروع على مر الزمن

إذا وجدت هذا المشروع مفيدًا، فلا تتردد في منحه نجمة 🌟 Stargazers over time


🌍 ملفات README متعددة اللغات 🌍

نحن نوفر ملفات README بلغات متعددة لجعل مشروعنا متاحًا للمستخدمين في جميع أنحاء العالم. اختر لغتك المفضلة أدناه:

اللغة رمز اللغة ملف README الحالة
الإنجليزية 🇺🇸 EN README.md ✅ مكتمل
الروسية 🇷🇺 RU README_RU.md ✅ مكتمل
الفارسية 🇮🇷 FA README_FA.md ✅ مكتمل
الصينية 🇨🇳 ZH README_ZH.md ✅ مكتمل
الإسبانية 🇪🇸 ES README_ES.md ✅ مكتمل
الفرنسية 🇫🇷 FR README_FR.md ✅ مكتمل
الألمانية 🇩🇪 DE README_DE.md ✅ مكتمل
التركية 🇹🇷 TR README_TR.md ✅ مكتمل
العربية 🇸🇦 AR README_AR.md ✅ مكتمل
الهندية 🇮🇳 HI README_HI.md ✅ مكتمل
الإيطالية 🇮🇹 IT README_IT.md ✅ مكتمل
البرتغالية 🇵🇹 PT README_PT.md ✅ مكتمل

يحتوي كل ملف README على وثائق المشروع الكاملة، وتعليمات الإعداد، والميزات المترجمة إلى اللغة المعنية. يتم تحديث جميع الملفات باستمرار بأحدث معلومات المشروع.