نمای کلی پروژه
این پروژه قصد دارد یک ربات تلگرام قدرتمند برای فروش اشتراکهای VPN ایجاد کند. این سیستم تجربه کاربری یکپارچهای برای خرید و مدیریت اشتراکها ارائه خواهد داد که توسط یک پنل مدیریت جنگو قدرتمند و یک سرویس API برای ادغام با ارائهدهنده VPN خارجی (Marzban) پشتیبانی میشود. کل سیستم با تاکید فراوان بر پشتیبانی از زبان فارسی، رابطهای کاربری مدرن و معماری امن و مقیاسپذیر طراحی شده است.
اجزای اصلی
راه حل حول سه ستون به هم پیوسته ساختار یافته است که با تفکیک واضح مسئولیتها عمل میکنند:
- ربات تلگرام: رابط اصلی کاربر برای خرید و مدیریت اشتراک، که برای تعامل بصری ساخته شده است.
- بکاند جنگو و سرویس API: مغز مرکزی که منطق کسب و کار، ذخیرهسازی دادهها، احراز هویت کاربر و ادغام با ارائهدهنده VPN را مدیریت میکند. این بخش به عنوان منبع واحد حقیقت برای تمام دادههای برنامه عمل میکند.
- پنل مدیریت (فرانتاند React): یک رابط وب اختصاصی و واکنشگرا برای مدیران جهت مدیریت کاربران، اشتراکها، پرداختها و تنظیمات سیستم، که از طریق یک API قوی با بکاند جنگو تعامل دارد.
ویژگیهای کلیدی و جریانهای کاربری
ربات تلگرام
- تعامل و ناوبری کاربر:
- رابط کاربری مدرن و بصری ربات که با
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) در رابط کاربری پنل مدیریت.
- تمام رشتههای کاربردی در ربات تلگرام و پنل مدیریت به طور کامل به فارسی ترجمه خواهند شد با استفاده از فریمورکهای استاندارد i18n (مانند
- ادغام تاریخ و زمان جلالی:
- پشتیبانی کامل و سازگار از سیستم تقویم جلالی (فارسی) در تمام لایهها:
- سطح پایگاه داده: فیلدهای مدل جنگو سفارشی یا لایههای تبدیل قوی برای ذخیره و بازیابی تاریخهای جلالی.
- منطق بکاند: تمام محاسبات تاریخ و زمان به درستی تاریخهای جلالی را مدیریت خواهند کرد.
- رابط کاربری (پنل مدیریت): استفاده انحصاری از انتخابگرهای تاریخ جلالی، نمایشها و ورودیها، تضمین یک تجربه بومی برای مدیران.
امنیت و یکپارچگی دادهها
- امنیت 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) برای بینشهای بیدرنگ در مورد عملکرد سیستم، خطاها و رویدادهای امنیتی.
- پشتیبانگیری و بازیابی: استراتژیهای جامع برای پشتیبانگیری منظم از پایگاه داده و برنامههای بازیابی فاجعه برای اطمینان از انعطافپذیری دادهها.
بهبودهای آینده
- اعتبارسنجی خودکار رسید: پیادهسازی OCR یا تشخیص تصویر مبتنی بر هوش مصنوعی/یادگیری ماشین برای خودکارسازی جزئی اعتبارسنجی رسیدهای پرداخت، کاهش قابل توجه بار کاری دستی مدیر.
- روشهای پرداخت متعدد: ادغام با طیف گستردهتری از درگاههای پرداخت محلی و بینالمللی برای ارائه انعطافپذیری بیشتر به کاربران.
- سیستم ارجاع: توسعه سیستمی برای اجازه دادن به کاربران برای ارجاع مشتریان جدید، ارائه پاداش یا تخفیف.
- آمار مصرف کاربر: ارائه آمار دقیق به کاربران در مورد مصرف VPN آنها (مانند انتقال داده، زمان اتصال) در صورتی که API Marzban اجازه چنین دادههای دقیقی را بدهد.
- کدهای تبلیغاتی/تخفیف: پیادهسازی یک سیستم انعطافپذیر برای ارائه کدهای تبلیغاتی و تخفیف برای جذب کاربران جدید و پاداش به مشتریان وفادار.
- ادغام برنامه وب تلگرام: بررسی ادغام یک برنامه وب تلگرام برای تجربه رابط کاربری غنیتر و تعاملیتر مستقیماً در تلگرام برای برخی از ویژگیها.
- وبهوکها برای ادغامهای خارجی: ارائه قابلیتهای وبهوک برای ادغام با پلتفرمهای CRM، تجزیه و تحلیل یا اتوماسیون بازاریابی خارجی.
شروع به کار
جزئیات بیشتر در مورد راهاندازی محلی، نصب و دستورالعملهای توسعه در فایل اختصاصی CONTRIBUTING.md
و در مستندات پروژه ارائه خواهد شد.