Vaka Çalışması
Proje Vaka Çalışması
Zorluklar, çözümler, kazanımlar, teknik öne çıkanlar, mimari ve proje ölçeği.
⚡
Zorluklar
- Botun engellenmeden çok sayıda Telegram kullanıcısına toplu mesaj gönderme ihtiyacı
- Telegram mesaj gönderme hız sınırlarını yönetme
- Telegram botu ve Django sunucusunu tek bir projede aynı anda çalıştırma
- Bot başlatıldığında kullanıcı bilgilerini otomatik olarak kaydetme
- Yönetim paneli için iki faktörlü kimlik doğrulama ihtiyacı
- Kanal ve grup bağlantılarını dinamik olarak yönetme
- Kullanıcılara ve gruplara aynı anda resim ve metin gönderme
- CRM sistemini Telegram botu ile entegre etme
💡
Çözümler
- Telegram botunu async yönetmek için aiogram kullanma
- Botu AppsConfig.ready() ile ayrı bir iş parçacığında çalıştırma
- chat_id ve username'i Users_link modelinde get_or_create ile kaydetme
- asyncio ve threading ile arka plan gönderimi uygulama
- Hız sınırlarından kaçınmak için gönderimler arasında 5 saniyelik aralıklar kullanma
- Gelişmiş güvenlik için pyotp ile 2FA uygulama
- Telegram bilgilerini saklamak için özel CustomUser kullanma
- Basit HTML formları ile yönetim paneli uygulama
- Celali tarih gösterimi için persiantools kullanma
📚
Kazanımlar
- Eksiksiz Telegram mesaj yönetim sistemi
- Hız sınırı yönetimi ile kullanıcılara ve gruplara toplu gönderim
- İlk bot etkileşiminde otomatik kullanıcı kaydı
- 2FA ile güvenli yönetim paneli
- Telegram botunun Django ile başarılı entegrasyonu
- Resim ve metin gönderme desteği
- Kullanıcı yönetimi için eksiksiz CRM sistemi
🔧
Teknik Öne Çıkanlar
- Django 5.2.6 ve Python 3
- pymysql ile MySQL veritabanı
- Telegram botu için aiogram 3.28 (async)
- Yedek olarak python-telegram-bot 22.3
- API için Django REST Framework 3.16
- Veri filtreleme için django-filter
- Ayar yönetimi için django-environ ve python-decouple
- İki faktörlü kimlik doğrulama için pyotp
- Celali tarih için persiantools
- Botu AppsConfig ile ayrı iş parçacığında çalıştırma
- 5 saniyelik aralıklarla Telegram hız sınırlarını yönetme
- telegram_id ve chat_id saklamak için özel CustomUser
- TOTP ile 2FA uygulama
🏗️
Mimari
Forward Bot, Django'nun MVT (Model-View-Template) mimarisi üzerine kurulmuştur ve iki ana uygulamadan oluşur:
1. crm: Kullanıcı yönetimi, bağlantılar ve yönetim panelinden sorumlu
- telegram_id, telegram_username, phone_number ile özel CustomUser modeli
- Kanal bağlantılarını saklamak için Chanel_link modeli
- Kullanıcı chat_id'sini saklamak için Users_link modeli
- login_view, sendmassage, sendgroupmessage görünümleri
- Bağlantı yönetimi için group_links, users_link görünümleri
2. telegram_bot: Telegram botunu çalıştırmaktan sorumlu
- aiogram Dispatcher ile bot.py dosyası
- Botu ayrı iş parçacığında çalıştırmak için AppsConfig.ready()
- Toplu mesajları saklamak için BroadcastMessage modeli
- Eğitim videoları için TrainingVideo modeli
- Otomatik kullanıcı kaydı için /start işleyicisi
Proje DEBUG modunda çalışır ve geliştirme için SQLite, üretim için MySQL kullanır.
📐
Proje Ölçeği
- 2 ana uygulama (crm, telegram_bot)
- 5 ana veri modeli
- aiogram ile Telegram bot sistemi
- Özel yönetim paneli
- 2FA sistemi
- Kullanıcılara ve gruplara toplu gönderim
- Kanal bağlantısı yönetimi
- Özel CustomUser
- Async/threading entegrasyonu