فكرة المشروع
نظام إدارة المهام والعمل الجماعي هو مشروع Backend تجريبي يركز على بناء API منظمة لإدارة المشاريع والمهام وأعضاء الفريق.
الفكرة الأساسية هي توفير نظام يمكن للمستخدم من خلاله إنشاء مشروع، إضافة أعضاء الفريق، إنشاء المهام، تحديد المسؤول عنها، وتغيير حالتها أثناء سير العمل.
تطبيق مفاهيم Python وDjango وDjango REST Framework في مشروع عملي يحاكي نظامًا حقيقيًا لإدارة العمل داخل فريق.
أهم مميزات النظام
👤 إدارة المستخدمين
إنشاء المستخدمين وإدارة بيانات الحسابات والصلاحيات.
📁 إدارة المشاريع
إنشاء المشاريع وربط أعضاء الفريق بكل مشروع.
✅ إدارة المهام
إنشاء المهام وتحديد المسؤول عنها ومتابعة حالتها.
🔐 الصلاحيات
التحكم في العمليات التي يستطيع كل مستخدم تنفيذها.
🔎 البحث والتصفية
إمكانية تصفية المهام حسب الحالة أو المشروع أو المستخدم.
📊 متابعة الحالة
تنظيم المهام وفق حالات مثل جديدة وقيد التنفيذ ومكتملة.
التقنيات المستخدمة
بنية المشروع
تم تصميم المشروع بحيث تكون مسؤوليات أجزاء النظام واضحة ومنفصلة قدر الإمكان.
task_manager/
│
├── manage.py
│
├── config/
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
│
├── users/
│ ├── models.py
│ ├── serializers.py
│ ├── views.py
│ └── urls.py
│
├── projects/
│ ├── models.py
│ ├── serializers.py
│ ├── views.py
│ └── urls.py
│
├── tasks/
│ ├── models.py
│ ├── serializers.py
│ ├── views.py
│ └── urls.py
│
└── requirements.txt
تقسيم المشروع إلى تطبيقات منفصلة يساعد على جعل الكود أكثر وضوحًا ويسهل تطوير كل جزء من النظام بشكل مستقل.
تصميم قاعدة البيانات
يمكن بناء قاعدة البيانات حول مجموعة من الجداول الأساسية التي تمثل المستخدمين والمشاريع والمهام.
| الكيان | الغرض | العلاقات |
|---|---|---|
| User | بيانات المستخدم | يمتلك مشاريع ومهام |
| Project | بيانات المشروع | يحتوي على عدة مهام |
| Task | بيانات المهمة | مرتبطة بمشروع ومستخدم |
REST API
يعتمد النظام على REST API للتعامل مع البيانات بين الواجهة الأمامية والـ Backend.
| Method | Endpoint | الوظيفة |
|---|---|---|
| GET | /api/projects/ | عرض المشاريع |
| POST | /api/projects/ | إنشاء مشروع |
| GET | /api/tasks/ | عرض المهام |
| POST | /api/tasks/ | إنشاء مهمة |
| PATCH | /api/tasks/{id}/ | تحديث المهمة |
| DELETE | /api/tasks/{id}/ | حذف المهمة |
المصادقة والصلاحيات
يحتاج النظام إلى حماية العمليات الحساسة بحيث لا يستطيع أي مستخدم الوصول إلى بيانات أو تنفيذ عمليات لا يملك صلاحية عليها.
- تسجيل الدخول والتحقق من هوية المستخدم.
- حماية الـ API من الوصول غير المصرح به.
- التحقق من صلاحية المستخدم قبل تعديل البيانات.
- السماح لصاحب المشروع بإدارة أعضاء فريقه.
- تقييد العمليات الإدارية على المستخدمين المصرح لهم.
التحقق من البيانات
من المهم عدم الاعتماد على الواجهة الأمامية فقط في التحقق من البيانات. يجب أن يقوم الـ Backend أيضًا بفحص البيانات قبل حفظها في قاعدة البيانات.
لا ينبغي السماح بإنشاء مهمة بدون عنوان، أو ربط المهمة بمشروع غير موجود.
معالجة الأخطاء
يجب أن تعيد الـ API استجابات واضحة تساعد المستهلك على فهم سبب فشل الطلب.
{
"detail": "المهمة غير موجودة."
}
استخدام HTTP Status Codes المناسبة يجعل التعامل مع الـ API أكثر احترافية.
الاختبارات
يمكن إضافة اختبارات للتأكد من أن الوظائف الأساسية للنظام تعمل كما هو متوقع.
- اختبار إنشاء المستخدم.
- اختبار إنشاء المشروع.
- اختبار إنشاء المهمة.
- اختبار تحديث حالة المهمة.
- اختبار الصلاحيات.
- اختبار الوصول إلى الموارد المحمية.
ما الذي يوضحه المشروع؟
هذا المشروع يمثل تطبيقًا عمليًا لعدد من المفاهيم المهمة في Backend Development.
Django
تنظيم المشروع وبناء التطبيقات.
REST API
بناء واجهات برمجية للتعامل مع البيانات.
Database
تصميم العلاقات والتعامل مع البيانات.
Security
فهم المصادقة والصلاحيات وحماية الموارد.
حالة المشروع
هذا المشروع جزء من معرض الأعمال التجريبي للموقع، ويمكن استبدال محتواه لاحقًا بمشروع حقيقي، وإضافة رابط GitHub أو Demo ولقطات شاشة حقيقية عند توفرها.