العودة لقائمة المشاريع
إضافة خدمة تعديل الجدول الدراسي داخل بوت Telegram باستخدام Python وPostgreSQL
الميزانية
$50.00 - $100.00
التصنيف
برمجة، تطوير المواقع والتطبيقات
المهارات المطلوبة
بايثون
تصميم قواعد البيانات
تطوير قاعدة بيانات
برمجة
برمجة مواقع
برمجة قواعد البيانات
تطوير البرمجيات
برمجة التطبيقات
هندسة البرمجيات
بايثون
تصميم قواعد البيانات
تطوير قاعدة بيانات
برمجة
برمجة مواقع
برمجة قواعد البيانات
تطوير البرمجيات
برمجة التطبيقات
هندسة البرمجيات
الوصف
وصف المشروع:
نبحث عن مبرمج محترف بلغة Python يمتلك خبرة قوية في بناء Telegram Bots وقواعد بيانات PostgreSQL، لتنفيذ وحدة مستقلة داخل نظام أكاديمي لمعالجة طلبات تعديل الجدول الدراسي بطريقة ذكية، مع دعم لدور التسجيل والقبول في مراجعة الطلبات يدويًا عبر البوت.
⸻
المهام المطلوبة:
تشمل الخدمة ثلاث وظائف رئيسية:
1. حذف مادة مسجلة
•حذف مقرر مسجل من جدول الطالب، مع حذف أي شعبة مرتبطة به (نظري/عملي) أو إذا كانت الشعبة تحتوي على أكثر من اجتماع أسبوعي.
•تسجيل الطلب في جدول schedule_requests بالحالة: “قيد المراجعة”.
2. تعديل شعبة لمادة مسجلة
•عرض الشعب البديلة المتاحة للمقرر.
•التحقق من الشروط التالية:
•عدم وجود تعارض زمني (شرط إلزامي)
•السعة المتاحة (شرط مرن)
•الربط بين الشعب (نظري/عملي) (شرط إلزامي)
•في حال عدم وجود شعبة مناسبة بدون تعارض:
•يتم تفعيل منطق البحث العميق لاقتراح تعديل شُعب بحد أقصى 3 مقررات لحل التعارض.
3. إضافة مادة غير مسجلة (من المتبقيات)
•التحقق من أن المقرر غير مسجل حاليًا.
•التأكد من استيفاء المتطلبات السابقة (حسب الخطة الدراسية لكل تخصص).
•عرض الشعب المتاحة والتحقق من:
•السعة
•عدم التعارض الزمني
•الربط بين الشعب المرتبطة
•تفعيل البحث العميق في حال عدم توفر شعبة مناسبة مباشرة.
⸻
منطق البحث العميق (Advanced Conflict Resolution):
•يُفعل فقط عند فشل الاقتراحات السطحية.
•تحاول الخوارزمية تعديل شُعب من جدول الطالب الحالي (حتى 3 مواد) لحل التعارض.
•تراعي:
•الحفاظ على ربط الشعب (نظري/عملي)
•عدم تجاوز السعة
•عدم وجود تعارض زمني جديد
•منع تكرار الطلبات المفتوحة لنفس الطالب
⸻
متابعة الطلبات من قبل المسجلين (Registrar Review):
•الطلبات لا تُنفذ تلقائيًا.
•تُسجل في جدول schedule_requests بالحالة “قيد المراجعة”.
•يتم توليد تقرير (PDF أو Excel) يتضمن:
•رقم الطالب
•التخصص والكلية
•نوع الطلب
•رمز المادة والشعبة المقترحة
•حالة السعة
•حالة التعارض الزمني (إن وجدت)
•ملخص نتيجة البحث العميق (إن طُبقت)
•يتم تحديث حالة الطلب يدويًا من خلال البوت:
•“تم التنفيذ”
•“مرفوض”
•“بانتظار تواصل”
⸻
خصائص إضافية:
•لا يُسمح للطالب بتقديم طلب جديد إن كان لديه طلب “قيد المراجعة”.
•بعد تنفيذ الطلب، يتم تحديث بيانات:
•المواد المسجلة
•المواد المتبقية
بشكل آلي.
•يمكن للطالب متابعة حالة طلبه من خلال البوت.
⸻
ما سيتم توفيره للمستقل:
•أمثلة وهمية لجداول قاعدة البيانات بصيغة Excel (تحاكي قاعدة PostgreSQL الحقيقية).
•ملفات Python الجزئية المطلوبة فقط حسب الحاجة (لا يتم تسليم كامل كود البوت).
•شرح للحقول والعلاقات الضرورية.
•حالات اختبار لتوضيح السيناريوهات.
⸻
المخرجات المطلوبة:
•ملفات Python منظمة (منفصلة أو موحدة).
•كود آمن باستخدام SQL parameterization.
•خوارزمية بحث ذكي تُفعل عند الحاجة فقط.
•توثيق داخلي للكود + دليل استخدام مختصر (README).
•سكربت لتوليد تقرير الطلبات (CSV أو PDF).
•يجب أن يكون الكود مكتوبًا بطريقة قابلة للدمج بسهولة داخل هيكل البوت القائم.
•المستقل مسؤول عن التأكد من توافق الكود مع البنية الحالية للبوت