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

پروژه‌ای قدرتمند برای فروش و مدیریت اشتراک‌های VPN با ربات تلگرام

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

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

اجزای اصلی

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

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

اصول تجربه کاربری (UX)

در طول فرآیند طراحی و توسعه، ما به اصول بنیادی UX پایبندیم تا تعاملی با کیفیت بالا را تضمین کنیم:

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

ربات تلگرام

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

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

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

سرویس 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.
  • مشاهده‌پذیری: ثبت جامع (لاگ‌های ساختاریافته)، جمع‌آوری معیارها (مانند Prometheus/Grafana) و ردیابی توزیع‌شده (مانند OpenTelemetry) در سراسر سرویس‌ها برای ارائه بینش‌های عمیق در مورد رفتار سیستم، عملکرد و تشخیص خطا.
  • ملاحظات معماری آینده:
    • دروازه API: با رشد سیستم، یک دروازه API می‌تواند برای ارائه یک نقطه ورود واحد برای تمام برنامه‌های مشتری معرفی شود و نگرانی‌هایی مانند احراز هویت، محدودیت نرخ و مسیریابی درخواست را مدیریت کند.
    • میکرو-فرانت‌اندها (پنل مدیریت): برای رابط‌های اداری بزرگتر یا اگر چندین تیم بخش‌های متمایز را مدیریت می‌کنند، یک معماری میکرو-فرانت‌اند می‌تواند برای پنل مدیریت React برای امکان استقرار و مقیاس‌بندی مستقل اجزای UI مورد بررسی قرار گیرد.

اصول طراحی API

  • طراحی RESTful: پایبندی به اصول REST برای نقاط پایانی API واضح، قابل پیش‌بینی و مقیاس‌پذیر. تأکید بر URLهای منابع‌محور، متدهای استاندارد HTTP و کدهای وضعیت مناسب.
  • نسخه‌بندی API: پیاده‌سازی نسخه‌بندی صریح API (مانند /api/v1/) برای اطمینان از سازگاری عقب‌رو و امکان تکامل API بدون شکستن کلاینت‌های موجود.
  • ایدیمپوتنت: عملیات حیاتی (مانند پردازش پرداخت، فعال‌سازی اشتراک) به گونه‌ای طراحی شده‌اند که ایدیمپوتنت باشند و اطمینان حاصل شود که درخواست‌های تکراری مشابه همان اثری را دارند که یک درخواست واحد.
  • صفحه‌بندی و فیلترینگ: تمام نقاط پایانی لیست از قابلیت‌های صفحه‌بندی، مرتب‌سازی و فیلترینگ قوی برای مدیریت کارآمد مجموعه‌های داده بزرگ پشتیبانی خواهند کرد.
  • مستندات جامع: مستندات خودکار تولید شده OpenAPI (Swagger) با استفاده از drf-spectacular نگهداری و به‌روز خواهند شد، که یک قرارداد واضح برای تمام مصرف‌کنندگان API ارائه می‌دهد.

پشته فناوری

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

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

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

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

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

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

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

ساختار پروژه (منطقی)

پروژه در دایرکتوری‌های متمایز برای هر مؤلفه اصلی سازماندهی خواهد شد که معماری مدولار را منعکس می‌کند:

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

شروع به کار

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