از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
ده ساعت پیش منتشر شده
تعداد بازدید: 49
کد پروژه: 617327
شرح پروژه
یک ربات تلگرامی برای مدیریت چندین اکانت Telegram User Account که بتواند این اکانتها را با استفاده از Session مدیریت کند و آنها را به Voice Chat / Video Chat گروهها یا کانالهای تلگرام متصل کند.
ربات باید کاملاً از طریق پنل تلگرامی قابل مدیریت باشد و نیازی به اجرای دستی عملیات توسط ادمین روی سرور نداشته باشد.
سیستم باید قابلیت مدیریت همزمان چند اکانت، اتصال به ویسچت، زمانبندی، reconnect خودکار، مدیریت خطا، لاگ، بکاپ و مدیریت دسترسی ادمینها را داشته باشد.
2. تکنولوژی پیشنهادی
Backend:
Python 3.12+
Telegram Bot API
Telethon
PyTgCalls
SQLite برای نسخه اولیه
امکان مهاجرت به PostgreSQL در آینده
asyncio
systemd برای اجرای دائمی روی Ubuntu
ساختار پروژه باید Modular باشد و بخشهای Bot، Database، Accounts، Voice و Services از یکدیگر جدا باشند.
3. معماری کلی
ساختار پیشنهادی:
Telegram Bot
│
├── Admin Panel
│
├── Account Manager
│
├── Voice Manager
│
├── Scheduler
│
├── Group Manager
│
├── Settings
│
├── Dashboard / Health
│
├── Logs
│
├── Backup / Restore
│
└── Notification / Alert System
در Backend:
bot/
accounts/
database/
voice/
services/
هر بخش باید مسئولیت مشخص خودش را داشته باشد و Business Logic داخل Handlerهای تلگرام پخش نشود.
4. مدیریت اکانتها
اصلیترین بخش سیستم، مدیریت Telegram User Accountها است.
ادمین بتواند از طریق ربات:
اکانت جدید اضافه کند
اکانتها را مشاهده کند
وضعیت اکانت را ببیند
اکانت را فعال/غیرفعال کند
اکانت را حذف کند
Session اکانت را مدیریت کند
وضعیت Login را مشاهده کند
وضعیت اتصال اکانت را مشاهده کند
فرآیند Add Account:
ادمین گزینه «افزودن اکانت» را میزند.
شماره موبایل دریافت میشود.
شماره قبل از ذخیرهسازی Normalize شود.
فرمتهای مختلف شماره مانند:
+98912…
98912…
0912…
به یک فرمت Canonical تبدیل شوند.
نکته بسیار مهم:
شماره تلفن نباید با دو فرمت مختلف به عنوان دو اکانت ذخیره شود.
مثلاً:
+989123456789
989123456789
باید دقیقاً یک اکانت محسوب شوند.
برای جلوگیری از مشکل Duplicate Account باید روی شماره Normalize شده Unique Constraint وجود داشته باشد.
کد Login از تلگرام دریافت شود.
اگر Two-Step Verification فعال بود، Password دریافت شود.
Session ساخته و ذخیره شود.
اکانت در Database ثبت شود.
Session در سرویس مدیریت اکانت Load شود.
وضعیت اکانت به Active / Connected تغییر کند.
5. جلوگیری از مشکل + اول شماره
این مورد یکی از مشکلات نسخه فعلی است و در نسخه جدید باید به صورت اصولی حل شود.
قبل از هر عملیات Database:
phone = normalize_phone(phone)
مثلاً همه این موارد:
09123456789
989123456789
+989123456789
باید به یک مقدار استاندارد تبدیل شوند.
همچنین هنگام Query کردن Database نیز فقط مقدار Normalize شده استفاده شود.
Database باید روی phone یک Unique Index داشته باشد.
در صورت تلاش برای اضافه کردن اکانت تکراری:
به جای ایجاد Record جدید، پیام زیر نمایش داده شود:
«این اکانت قبلاً در سیستم ثبت شده است.»
6. Session Management
Session هر اکانت باید مستقل باشد.
مثلاً:
accounts/sessions/
account_1.session
account_2.session
account_3.session
Session نباید با شماره تلفن خام یا نامی که ممکن است باعث Duplicate شود ذخیره شود.
بهتر است از account_id داخلی استفاده شود.
مثلاً:
sessions/
1.session
2.session
3.session
یا UUID.
Sessionها نباید در Database به صورت متن خام ذخیره شوند؛ Database فقط Metadata اکانت را نگه دارد و فایل Session در محل امن ذخیره شود.
7. Voice Chat Manager
سیستم باید بتواند اکانتهای Telegram را به Voice Chat گروه/کانال Join کند.
عملیات:
Join Voice Chat
Leave Voice Chat
Reconnect
بررسی وضعیت اتصال
نمایش اکانت متصل
مدیریت چند Voice Chat
جلوگیری از اتصال Duplicate
مدیریت قطع شدن اتصال
برای Voice باید یک Session Manager مرکزی وجود داشته باشد.
هر Account باید بتواند مستقل مدیریت شود.
8. Auto Reconnect
اگر اتصال اکانت به Voice Chat قطع شد:
سیستم باید بتواند به صورت خودکار Reconnect کند.
Reconnect باید:
محدودیت تعداد Retry داشته باشد
Backoff داشته باشد
Loop بینهایت ایجاد نکند
در صورت خرابی دائمی Alert ایجاد کند
وضعیت reconnect در Database ثبت شود
مثلاً:
Attempt 1 → 5 sec
Attempt 2 → 15 sec
Attempt 3 → 30 sec
Attempt 4 → 60 sec
بعد از تعداد مشخصی تلاش، وضعیت به Failed تغییر کند.
9. Scheduler
سیستم باید امکان زمانبندی عملیات Voice Chat را داشته باشد.
ادمین بتواند برای یک اکانت یا چند اکانت تعیین کند:
چه زمانی Join کنند
چه زمانی Leave کنند
در چه روزهایی اجرا شود
عملیات فعال/غیرفعال باشد
Scheduler باید Persistent باشد.
یعنی اگر Server Restart شد، Scheduleها از بین نروند.
بعد از Restart، Scheduler باید Scheduleهای فعال را دوباره Load کند.
10. Schedule History
برای هر Schedule باید History وجود داشته باشد.
اطلاعات:
Schedule ID
Account
Target
Start Time
End Time
Status
Success / Failed
Error
Created At
ادمین بتواند History را از داخل Bot مشاهده کند.
11. Group Manager
سیستم باید بتواند Targetهای Voice Chat را مدیریت کند.
برای هر Target:
Chat ID
Username
Title
Type
Active / Disabled
ذخیره شود.
ادمین بتواند Target جدید اضافه کند یا Target موجود را حذف/غیرفعال کند.
12. Dashboard
یک Dashboard داخل Bot وجود داشته باشد.
نمایش:
Total Accounts
Active Accounts
Disconnected Accounts
Voice Sessions
Active Schedules
Failed Schedules
System Health
Last Errors
مثلاً:
📊 Dashboard
👤 Accounts: 25
🟢 Connected: 21
🔴 Offline: 4
🎙 Voice Sessions: 8
⏰ Active Schedules: 14
⚠️ Errors: 2
13. Health Monitor
یک سرویس Health Monitor دائمی وجود داشته باشد.
موارد بررسی:
Bot status
Database status
Account sessions
Voice connections
Scheduler
Server resource usage
Session errors
اگر یک سرویس خراب شد، سیستم باید بتواند Alert ارسال کند.
14. Notification System
سیستم Notification مرکزی باشد.
برای موارد مهم:
Account disconnected
Login failed
Session expired
Voice connection failed
Reconnect failed
Database error
Backup failure
Scheduler failure
پیام به Admin ارسال شود.
15. Admin Management
سیستم Multi Admin داشته باشد.
Roleهای پیشنهادی:
OWNER
ADMIN
OPERATOR
VIEWER
مثلاً:
OWNER:
دسترسی کامل
ADMIN:
مدیریت اکانت و Voice
OPERATOR:
اجرای عملیات روزانه
VIEWER:
فقط مشاهده Dashboard و Logs
Permissionها باید قابل توسعه باشند.
16. Maintenance Mode
ادمین بتواند Maintenance Mode را فعال کند.
در این حالت:
عملیات حساس متوقف شود
کاربران/ادمینهای غیرمجاز نتوانند عملیات انجام دهند
وضعیت Maintenance در Dashboard نمایش داده شود.
17. Logs
تمام عملیات مهم Log شوند.
مثلاً:
Account Added
Account Removed
Login Success
Login Failed
Voice Joined
Voice Left
Reconnect
Schedule Created
Schedule Executed
Schedule Failed
Admin Action
System Error
برای هر Log:
timestamp
level
event
account
admin
details
error
ذخیره شود.
ر
هدف نهایی یک Telegram Voice Manager پایدار و Production-Ready است که:
چندین Telegram Account را مدیریت کند
Sessionها را امن مدیریت کند
اکانتها را به Voice Chat متصل کند
Auto Reconnect داشته باشد
Scheduler داشته باشد
Dashboard داشته باشد
Logs داشته باشد
Backup/Restore داشته باشد
Multi Admin داشته باشد
Permission داشته باشد
Health Monitoring داشته باشد
بعد از Restart سرور خودش Recovery شود
و مهمتر از همه، Duplicate Account و مشکل Normalize شدن شماره تلفن نداشته باشد.
نسخه نهایی باید Clean Code، Modular، Async، قابل توسعه و قابل نگهداری باشد
پروژه زمانی تحویلشده محسوب میشود که:
✅ Bot Start شود.
✅ Owner شناسایی شود.
✅ Admin Management کار کند.
✅ Account Login کار کند.
✅ 2FA کار کند.
✅ Phone Normalization کامل باشد.
✅ Duplicate Phone ممکن نباشد.
✅ Session ذخیره شود.
✅ Session بعد از Restart Load شود.
✅ Group اضافه شود.
✅ Group Access Test کار کند.
✅ Voice Session ساخته شود.
✅ چند Account همزمان Join شوند.
✅ Duration کار کند.
✅ Stop Session کار کند.
✅ Stop All کار کند.
✅ Auto Reconnect کار کند.
✅ Manual Leave Reconnect اشتباه ایجاد نکند.
✅ Scheduler کار کند.
✅ Schedule Recovery کار کند.
✅ History کار کند.
✅ Dashboard کار کند.
✅ Health Check کار کند.
✅ Logs کار کند.
✅ Backup کار کند.
✅ Restore کار کند.
✅ Permissionها enforce شوند.
✅ Graceful Shutdown کار کند.
✅ Server Restart Recovery تست شود.
مهارت ها و تخصص های مورد نیاز
بودجه
500,000 تومان تا 1,500,000 تومان
مهلت برای انجام
2روز
وضعیت مناقصه
باز (آماده دریافت پیشنهاد)
درباره کارفرما
عضویت هفده روز پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
تا کنون 7 پیشنهاد قیمت از سمت فریلنسرها برای این پروژه ارسال شده
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار