ربات تلگرام اشتراک VPN

این پروژه با هدف توسعه یک ربات تلگرام قدرتمند برای فروش اشتراک‌های VPN طراحی شده است. این سیستم یک تجربه کاربری یکپارچه برای خرید و مدیریت اشتراک‌ها فراهم می‌کند که توسط یک پنل مدیریت جنگو قوی و یک سرویس API برای ادغام با ارائه‌دهنده VPN خارجی (Marzban) پشتیبانی می‌شود. کل سیستم با تاکید شدید بر پشتیبانی از زبان فارسی، رابط‌های کاربری مدرن و معماری امن و مقیاس‌پذیر طراحی شده است.

نمای کلی پروژه

این پروژه قصد دارد یک ربات تلگرام قدرتمند برای فروش اشتراک‌های VPN ایجاد کند. این سیستم تجربه کاربری یکپارچه‌ای برای خرید و مدیریت اشتراک‌ها ارائه خواهد داد که توسط یک پنل مدیریت جنگو قدرتمند و یک سرویس API برای ادغام با ارائه‌دهنده VPN خارجی (Marzban) پشتیبانی می‌شود. کل سیستم با تاکید فراوان بر پشتیبانی از زبان فارسی، رابط‌های کاربری مدرن و معماری امن و مقیاس‌پذیر طراحی شده است.

اجزای اصلی

راه حل حول سه ستون به هم پیوسته ساختار یافته است که با تفکیک واضح مسئولیت‌ها عمل می‌کنند:

ویژگی‌های کلیدی و جریان‌های کاربری

ربات تلگرام

  • تعامل و ناوبری کاربر:
    • رابط کاربری مدرن و بصری ربات که با aiogram (آخرین نسخه‌های پایتون) ساخته شده است، تجربه کاربری پاسخگو و جذاب را تضمین می‌کند.
    • ناوبری آسان از طریق کیبوردهای درون‌خطی ساختاریافته و تعاملات مبتنی بر دستور.
    • پیام‌های خوش‌آمدگویی جامع، دستورات راهنمای حساس به متن و ارتباط شفاف در طول سفر کاربر.
    • پشتیبانی کامل از زبان فارسی برای تمام پیام‌ها، منوها و تعاملات ربات، از جمله عبارات مناسب فرهنگی.
  • مدیریت اشتراک:
    • کاربران می‌توانند به راحتی طرح‌های مختلف اشتراک VPN را مرور و انتخاب کنند، با جزئیات واضح در مورد ویژگی‌ها و قیمت‌گذاری.
    • قابلیت مشاهده وضعیت فعلی اشتراک، تاریخ انقضا و تخمین مصرف (در صورت ارائه توسط API Marzban).
    • گزینه‌های ساده برای تمدید اشتراک‌های موجود، با اعلان‌های فعال انقضا.
  • فرآیند پرداخت:
    • پس از انتخاب طرح، ربات به صورت امن اطلاعات پرداخت (مانند جزئیات حساب بانکی، لینک‌های درگاه پرداخت امن، کدهای QR) را به کاربر ارائه می‌دهد.
    • کاربران برای تکمیل تراکنش به صورت خارجی هدایت می‌شوند و سپس عکس رسید پرداخت را به ربات ارسال می‌کنند.
    • ربات به صورت امن عکس رسید را برای اعتبارسنجی به پنل مدیریت ارسال می‌کند و حریم خصوصی و یکپارچگی داده‌ها را تضمین می‌کند.
    • کاربران تأیید فوری دریافت رسید خود را دریافت می‌کنند که آرامش خاطر را فراهم می‌کند.
  • اعلان‌ها:
    • اعلان‌های خودکار و به موقع برای به‌روزرسانی وضعیت پرداخت (در انتظار، پذیرفته شده، رد شده) از طریق پیام‌های مستقیم.
    • هشدارهای حیاتی برای فعال‌سازی اشتراک، هشدارهای انقضا و یادآوری‌های تمدید.
    • پیام‌ها و به‌روزرسانی‌های سیستم، تضمین می‌کند که کاربران همیشه مطلع هستند.

پنل مدیریت (فرانت‌اند React)

  • داشبورد:
    • نمای کلی جامع از معیارهای کلیدی: اشتراک‌های فعال، پرداخت‌های در انتظار، فعالیت‌های اخیر کاربر و وضعیت سلامت سیستم.
    • ویجت‌های قابل تنظیم و آمار سریع برای بینش‌های فوری در مورد عملیات کسب و کار.
  • مدیریت کاربر:
    • ابزارهای پیشرفته برای مشاهده، جستجو، فیلتر و مدیریت حساب‌های مشتری.
    • دسترسی دقیق به تاریخچه خرید مشتری، جزئیات اشتراک و گزارش‌های ارتباطی.
    • قابلیت مسدود کردن، تعلیق یا فعال‌سازی مجدد حساب‌های کاربر با ردیابی حسابرسی.
  • مدیریت اشتراک:
    • قابلیت‌های کامل CRUD (ایجاد، خواندن، به‌روزرسانی، حذف) برای اشتراک‌های VPN.
    • مدیران می‌توانند به صورت دستی اشتراک‌های کاربر را تمدید، اصلاح یا خاتمه دهند.
    • ارتباط یکپارچه اشتراک‌ها با حساب‌های Marzban مربوطه.
  • گردش کار اعتبارسنجی پرداخت و رسید:
    • رابط کاربری اختصاصی و بصری برای بررسی عکس‌های رسید ارسال شده، با ابزارهایی برای بازرسی و حاشیه‌نویسی تصویر.
    • گردش کار ساده برای مدیران جهت تأیید یا رد پرداخت‌ها، با دلایل واضح برای رد.
    • اقدامات خودکار پس از اعتبارسنجی (مانند فعال‌سازی/ایجاد اشتراک در Marzban، ارسال پیام رد به کاربر).
    • تاریخچه جامع و ردیابی حسابرسی تمام تلاش‌های پرداخت و نتایج اعتبارسنجی.
  • مدیریت طرح:
    • تعریف، به‌روزرسانی و حذف طرح‌های اشتراک VPN، شامل مدل‌های قیمت‌گذاری انعطاف‌پذیر، ویژگی‌ها و مدت زمان‌ها.
  • گزارش‌گیری و تحلیل:
    • گزارش‌گیری قوی در مورد عملکرد فروش، کاربران فعال، وضعیت پرداخت‌ها و روند اشتراک‌ها.
    • قابلیت‌های صادرات داده (CSV, PDF) برای تحلیل بیشتر و نگهداری سوابق.
  • بین‌المللی‌سازی و بومی‌سازی:
    • پشتیبانی کامل از زبان فارسی برای کل رابط کاربری، شامل تمام برچسب‌ها، پیام‌ها و نمایش داده‌ها.
    • تقویم جلالی (فارسی) بومی و انتخاب‌گرهای تاریخ و زمان برای تمام فیلدهای تاریخ و زمان مرتبط، تضمین تجربه فرهنگی مرتبط.

سرویس API (ادغام Marzban)

  • عملیات CRUD:
    • مسئول ایجاد، به‌روزرسانی، حذف و بازیابی امن اشتراک‌ها و حساب‌های کاربری VPN مستقیماً از برنامه Marzban.
    • رعایت دقیق شمای API Marzban برای ادغام قابل اعتماد.
  • لایه انتزاعی:
    • یک رابط تمیز و سازگار برای بک‌اند جنگو فراهم می‌کند تا با Marzban تعامل داشته باشد، منطق کسب و کار را از جزئیات API خارجی جدا می‌کند.
    • قابلیت نگهداری را تضمین می‌کند و امکان تغییرات احتمالی آینده در ارائه‌دهنده VPN را بدون تأثیر بر سیستم اصلی فراهم می‌کند.
  • مدیریت خطا و انعطاف‌پذیری:
    • مدیریت خطای قوی برای ارتباط با Marzban، شامل مکانیزم‌های هوشمند تلاش مجدد با بازگشت نمایی.
    • ثبت جامع تمام درخواست‌ها و پاسخ‌های API برای اشکال‌زدایی و حسابرسی.
    • پیاده‌سازی الگوهای قطع‌کننده مدار برای جلوگیری از خرابی‌های آبشاری.

ملاحظات فنی و انتخاب‌های طراحی

معماری

  • یکپارچه مدولار با اصول SOA: در حالی که به عنوان یک واحد منسجم مستقر می‌شود، سیستم با مرزهای واضح بین ربات تلگرام، بک‌اند جنگو و پنل مدیریت React طراحی شده است. این امر توسعه، آزمایش مستقل و مهاجرت احتمالی آینده به یک معماری توزیع‌شده‌تر را ترویج می‌کند.
  • تعامل اجزا:
    • ربات تلگرام <-> بک‌اند جنگو: ارتباط ناهمزمان از طریق وب‌هوک‌های تلگرام برای ورودی کاربر و فراخوانی‌های API RESTful امن برای بازیابی و به‌روزرسانی داده‌ها.
    • پنل مدیریت React <-> بک‌اند جنگو: تعاملات API RESTful امن، با بهره‌گیری از Django REST Framework برای تبادل داده کارآمد.
    • بک‌اند جنگو <-> سرویس API Marzban: فراخوانی‌های API داخلی و احراز هویت شده، احتمالاً با استفاده از یک میکروسرویس اختصاصی یا یک ماژول تعریف شده در جنگو برای ادغام خارجی.
  • ارتباط رویداد-محور (داخلی): استفاده از کارگزاران پیام (مانند Redis/RabbitMQ) برای رویدادهای ناهمزمان (مانند رویداد "پرداخت پذیرفته شد" که وظیفه "ایجاد اشتراک Marzban" را آغاز می‌کند)، افزایش پاسخگویی و تفکیک.
  • جریان داده: ذخیره‌سازی داده متمرکز و معتبر در پایگاه داده PostgreSQL در بک‌اند جنگو، با مکانیزم‌های همگام‌سازی قوی برای Marzban.

پشته فناوری

  • بک‌اند (جنگو و سرویس API):
    • پایتون (آخرین نسخه‌ها): برای تطبیق‌پذیری، اکوسیستم غنی و خوانایی آن.
    • فریم‌ورک جنگو: یک فریم‌ورک وب بالغ، امن و با نظر برای توسعه سریع و مقیاس‌پذیری.
    • Django REST Framework (DRF): برای ساخت نقاط پایانی API قدرتمند و انعطاف‌پذیر، با تولید شمای (مانند drf-spectacular برای OpenAPI/Swagger).
    • PostgreSQL: پایگاه داده رابطه‌ای ترجیحی برای استحکام، ویژگی‌های پیشرفته و پشتیبانی عالی از بین‌المللی‌سازی و انواع داده‌های پیچیده.
  • ربات تلگرام:
    • پایتون (آخرین نسخه‌ها):
    • aiogram (آخرین نسخه): یک فریم‌ورک مدرن، ناهمزمان و با کارایی بالا برای ربات‌های تلگرام.
  • فرانت‌اند (پنل مدیریت):
    • React.js: یک کتابخانه جاوااسکریپت اعلانی، مبتنی بر کامپوننت برای ساخت یک برنامه تک‌صفحه‌ای سبک، پاسخگو و تعاملی.
    • کتابخانه کامپوننت UI مدرن (مانند Ant Design, Material UI): برای طراحی سازگار، دسترسی‌پذیری و توسعه تسریع شده.
  • پردازش ناهمزمان:
    • Celery: یک صف وظایف توزیع‌شده قدرتمند برای اجرای وظایف ناهمزمان (مانند همگام‌سازی داده‌ها، بررسی‌های برنامه‌ریزی شده، ارسال اعلان‌ها).
    • Redis یا RabbitMQ: به عنوان یک کارگزار پیام برای Celery، ارائه صف‌بندی و تحویل وظایف قابل اعتماد.

بین‌المللی‌سازی و بومی‌سازی

  • پشتیبانی عمیق از زبان فارسی:
    • تمام رشته‌های کاربردی در ربات تلگرام و پنل مدیریت به طور کامل به فارسی ترجمه خواهند شد با استفاده از فریم‌ورک‌های استاندارد i18n (مانند gettext در جنگو، react-i18next در React).
    • در نظر گرفتن طرح‌بندی راست به چپ (RTL) در رابط کاربری پنل مدیریت.
  • ادغام تاریخ و زمان جلالی:
    • پشتیبانی کامل و سازگار از سیستم تقویم جلالی (فارسی) در تمام لایه‌ها:
    • سطح پایگاه داده: فیلدهای مدل جنگو سفارشی یا لایه‌های تبدیل قوی برای ذخیره و بازیابی تاریخ‌های جلالی.
    • منطق بک‌اند: تمام محاسبات تاریخ و زمان به درستی تاریخ‌های جلالی را مدیریت خواهند کرد.
    • رابط کاربری (پنل مدیریت): استفاده انحصاری از انتخاب‌گرهای تاریخ جلالی، نمایش‌ها و ورودی‌ها، تضمین یک تجربه بومی برای مدیران.

امنیت و یکپارچگی داده‌ها

  • امنیت API:
    • API مدیریت: پیاده‌سازی احراز هویت قوی (مانند JWT، OAuth2) و مجوز (کنترل دسترسی مبتنی بر نقش - RBAC) برای تمام نقاط پایانی API.
    • APIهای داخلی: ارتباط امن بین سرویس‌ها با استفاده از کلیدهای API یا احراز هویت مبتنی بر توکن داخلی.
    • اعتبارسنجی ورودی: اعتبارسنجی دقیق سمت سرور برای تمام ورودی‌های کاربر و مدیر برای جلوگیری از آسیب‌پذیری‌های رایج (مانند XSS، تزریق SQL).
    • محدودیت نرخ: محافظت از APIها و تعاملات ربات در برابر سوء استفاده و حملات DDoS.
  • مدیریت پرداخت:
    • سیستم هرگز اطلاعات حساس کارت اعتباری را مستقیماً ذخیره نخواهد کرد. دستورالعمل‌های پرداخت کاربران را به درگاه‌های پرداخت خارجی امن یا حواله‌های بانکی هدایت می‌کند.
    • مدیریت و ذخیره‌سازی امن عکس‌های رسید پرداخت، با دسترسی محدود به مدیران مجاز.
    • ردیابی حسابرسی برای تمام اقدامات اعتبارسنجی پرداخت.
  • همگام‌سازی داده‌ها (کارگران ناهمزمان):
    • کارگران ناهمزمان اختصاصی به طور مداوم داده‌ها را بین پایگاه داده برنامه جنگو و ارائه‌دهنده VPN Marzban نظارت و تطبیق خواهند داد.
    • این شامل تأیید وضعیت اشتراک، حساب‌های کاربر و اطمینان از سازگاری در سراسر سیستم‌ها است.
    • مدیریت خطای قوی، استراتژی‌های حل تعارض و مکانیزم‌های تلاش مجدد برای وظایف همگام‌سازی برای حفظ یکپارچگی داده‌ها ضروری است.
  • کنترل دسترسی:
    • کنترل دسترسی مبتنی بر نقش (RBAC) دقیق برای پنل مدیریت جهت مدیریت سطوح مختلف امتیازات مدیریتی.
    • احراز هویت امن برای تمام اجزا (ربات به بک‌اند، مدیر به بک‌اند).

استقرار و مقیاس‌پذیری

  • کانتینری‌سازی: داکر برای کانتینری‌سازی ربات تلگرام، بک‌اند جنگو و پنل مدیریت React استفاده خواهد شد تا محیط‌های سازگار در توسعه، مرحله‌بندی و تولید را تضمین کند.
  • ارکستراسیون: داکر کامپوز برای توسعه و آزمایش محلی. برای تولید، Kubernetes یا پلتفرم‌های ارکستراسیون کانتینر مشابه برای مدیریت، مقیاس‌بندی و خودترمیم‌گری سرویس‌ها در نظر گرفته خواهد شد.
  • خطوط لوله CI/CD: خطوط لوله یکپارچه‌سازی مداوم و استقرار مداوم خودکار برای اطمینان از کیفیت کد، آزمایش خودکار و استقرار یکپارچه در محیط‌های تولید تنظیم خواهد شد.
  • ابری مستقل: طراحی شده است که بسیار قابل حمل و قابل استقرار در ارائه‌دهندگان مختلف ابری (AWS, Azure, Google Cloud و غیره) باشد.
  • نظارت و ثبت: ادغام با ابزارهای نظارت (مانند Prometheus, Grafana) و ثبت متمرکز (مانند ELK stack, Datadog) برای بینش‌های بی‌درنگ در مورد عملکرد سیستم، خطاها و رویدادهای امنیتی.
  • پشتیبان‌گیری و بازیابی: استراتژی‌های جامع برای پشتیبان‌گیری منظم از پایگاه داده و برنامه‌های بازیابی فاجعه برای اطمینان از انعطاف‌پذیری داده‌ها.

بهبودهای آینده

شروع به کار

جزئیات بیشتر در مورد راه‌اندازی محلی، نصب و دستورالعمل‌های توسعه در فایل اختصاصی CONTRIBUTING.md و در مستندات پروژه ارائه خواهد شد.