نظام إدارة مهام احترافي عبر Telegram للشركات والمؤسسات.
TaskNode Bot هو بوت تليجرام متكامل لإدارة المهام يدعم:
- ✅ نظام أقسام ومستخدمين
- ✅ 3 مستويات صلاحيات (Super Admin, Department Admin, User)
- ✅ إنشاء وتتبع المهام
- ✅ نظام تعليقات على المهام
- ✅ مرفقات (صور، ملفات) مع تخزين Cloudflare R2
- ✅ تقارير PDF و Excel
- ✅ تذكيرات تلقائية
- ✅ إشعارات فورية
| المتطلب | الإصدار |
|---|---|
| Python | 3.11+ |
| PostgreSQL | 14+ |
| Cloudflare R2 | حساب مفعّل |
# Windows
python -m venv .venv
.venv\Scripts\activate
# Linux/Mac
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txt-- في PostgreSQL
CREATE DATABASE tasknodebot;# انسخ ملف المثال
cp .env.example .env
# ثم عدّل الإعدادات (انظر القسم التالي)alembic upgrade headpython main.pyقم بإنشاء ملف .env في المجلد الرئيسي وأضف الإعدادات التالية:
# ==========================================
# إعدادات البوت (مطلوبة)
# ==========================================
# توكن البوت من @BotFather
BOT_TOKEN=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
# معرفات السوبر أدمن (Telegram IDs) - مفصولة بفاصلة
# للحصول على ID: أرسل رسالة لـ @userinfobot
SUPER_ADMIN_IDS=123456789,987654321
# ==========================================
# قاعدة البيانات (مطلوبة)
# ==========================================
# رابط PostgreSQL
# الصيغة: postgresql+asyncpg://المستخدم:كلمة_السر@الخادم:المنفذ/اسم_القاعدة
DATABASE_URL=postgresql+asyncpg://postgres:mypassword@localhost:5432/tasknodebot
# ==========================================
# Cloudflare R2 للمرفقات (مطلوبة)
# ==========================================
# رابط R2 Endpoint
# الصيغة: https://<ACCOUNT_ID>.r2.cloudflarestorage.com
R2_ENDPOINT_URL=https://abc123def456.r2.cloudflarestorage.com
# مفاتيح API (من Cloudflare Dashboard > R2 > Manage R2 API Tokens)
R2_ACCESS_KEY_ID=your_access_key_id
R2_SECRET_ACCESS_KEY=your_secret_access_key
# اسم الـ Bucket
R2_BUCKET_NAME=tasknodebot-attachments
# ==========================================
# إعدادات إضافية (اختيارية)
# ==========================================
# المنطقة الزمنية (افتراضي: Asia/Riyadh)
TIMEZONE=Asia/Riyadh
# وضع التصحيح (True/False)
DEBUG_MODE=False
# مستوى السجلات (DEBUG, INFO, WARNING, ERROR)
LOG_LEVEL=INFO- افتح @BotFather في تليجرام
- أرسل
/newbot - اتبع التعليمات واختر اسم للبوت
- ستحصل على التوكن
- أرسل رسالة لـ @userinfobot في تليجرام
- سيرد عليك بـ Telegram ID الخاص بك
- أضف الـ IDs مفصولة بفاصلة
مثال للـ PostgreSQL المحلي:
postgresql+asyncpg://postgres:password123@localhost:5432/tasknodebot
مثال لـ Supabase:
postgresql+asyncpg://postgres:password@db.xxxx.supabase.co:5432/postgres
- سجل دخول في Cloudflare Dashboard
- اذهب إلى R2 Object Storage
- أنشئ Bucket جديد باسم
tasknodebot-attachments - اذهب إلى Manage R2 API Tokens
- أنشئ Token جديد مع صلاحيات Read/Write
- انسخ Access Key ID و Secret Access Key
TaskNodeBot/
├── main.py # نقطة البداية
├── requirements.txt # المكتبات المطلوبة
├── alembic.ini # إعدادات Alembic
├── .env.example # مثال ملف البيئة
│
├── bot/
│ ├── handlers/ # معالجات الأوامر والأزرار
│ ├── models/ # نماذج قاعدة البيانات
│ ├── services/ # خدمات الأعمال
│ ├── jobs/ # المهام المجدولة
│ └── utils/ # أدوات مساعدة
│
├── config/
│ └── settings.py # إعدادات التطبيق
│
├── alembic/
│ └── versions/ # ملفات Migration
│
├── scripts/
│ ├── reset_database.py # إعادة تعيين القاعدة
│ └── check_empty_database.py # فحص القاعدة
│
└── docs/
└── individual_tasks_system.md # توثيق نظام المهام
- إدارة جميع الأقسام والمستخدمين
- الموافقة على تسجيلات المستخدمين الجدد
- إنشاء مهام لأي قسم
- عرض جميع التقارير
- إعدادات النظام
- إدارة مستخدمي القسم الخاص به
- إنشاء مهام للقسم
- مراجعة وقبول/رفض تسليمات المهام
- عرض تقارير القسم
- استلام المهام
- تسليم المهام مع المرفقات
- إضافة تعليقات
- عرض مهامه الشخصية
PENDING → IN_PROGRESS → PENDING_REVIEW → COMPLETED
↘ ↙
NEEDS_REVISION
| الحالة | الوصف |
|---|---|
| PENDING | بانتظار القبول |
| IN_PROGRESS | قيد التنفيذ |
| PENDING_REVIEW | بانتظار المراجعة |
| NEEDS_REVISION | تحتاج تعديلات |
| COMPLETED | مكتملة |
| CANCELLED | ملغية |
| المهمة | الوقت | الوصف |
|---|---|---|
| التذكيرات | 12:00 PM | إرسال تذكيرات المهام القريبة |
| فحص البلوك | 8:00 AM | اكتشاف المستخدمين الذين حظروا البوت |
# إعادة تعيين قاعدة البيانات (حذف كل البيانات)
python scripts/reset_database.py
# فحص إذا كانت القاعدة فارغة
python scripts/check_empty_database.pyتأكد من:
- PostgreSQL شغال
- DATABASE_URL صحيح
- قاعدة البيانات موجودة
تأكد من:
- R2_ENDPOINT_URL يحتوي على Account ID الصحيح
- المفاتيح صحيحة ولها صلاحيات كافية
- الـ Bucket موجود
تأكد من:
- BOT_TOKEN صحيح
- لا يوجد instance آخر شغال
- الـ Telegram IDs في SUPER_ADMIN_IDS صحيحة
للمساعدة أو الاستفسارات، تواصل مع فريق التطوير.
جميع الحقوق محفوظة © 2026