تطبيق ويب متكامل لإدارة عملية الموافقة على مهمات المشاريع في المؤسسات. يتطلب النظام موافقة ثلاثة أطراف: المدير المباشر، مدير المشاريع، والموارد البشرية.
- ✅ سير عمل منظم ومتسلسل للموافقات
- ✅ واجهة عربية احترافية بالكامل
- ✅ لوحة تحكم تفاعلية مع إحصائيات فورية
- ✅ نظام صلاحيات متعدد المستويات
- ✅ تتبع حالة المهمات في الوقت الفعلي
- ✅ إمكانية طلب التعديلات والرفض مع التعليقات
- Flask - إطار عمل Python للواجهة الخلفية
- SQLAlchemy - ORM لإدارة قاعدة البيانات
- SQLite - قاعدة بيانات (يمكن الترقية إلى PostgreSQL)
- JWT - للمصادقة والأمان
- bcrypt - لتشفير كلمات المرور
- React - مكتبة JavaScript للواجهة الأمامية
- React Router - للتوجيه بين الصفحات
- Tailwind CSS - للتصميم
- shadcn/ui - مكونات واجهة المستخدم
- Lucide Icons - الأيقونات
project_task_approval/
├── src/
│ ├── models/ # نماذج قاعدة البيانات
│ │ ├── user.py # نموذج المستخدمين
│ │ ├── task.py # نموذج المهمات
│ │ ├── approval.py # نموذج الموافقات
│ │ └── revision.py # نموذج التعديلات
│ ├── routes/ # مسارات API
│ │ ├── auth.py # المصادقة
│ │ ├── tasks.py # المهمات
│ │ ├── approvals.py # الموافقات
│ │ └── dashboard.py # لوحة التحكم
│ ├── frontend/ # تطبيق React
│ │ ├── src/
│ │ │ ├── pages/ # صفحات التطبيق
│ │ │ ├── contexts/ # React Contexts
│ │ │ ├── lib/ # المكتبات والأدوات
│ │ │ └── components/ # المكونات
│ │ └── dist/ # الملفات المبنية
│ ├── static/ # الملفات الثابتة (Frontend المبني)
│ ├── database/ # قاعدة البيانات
│ └── main.py # نقطة الدخول الرئيسية
├── venv/ # البيئة الافتراضية
├── requirements.txt # متطلبات Python
├── create_test_users.py # سكريبت إنشاء مستخدمين تجريبيين
├── architecture.md # وثائق البنية
├── USER_GUIDE.md # دليل المستخدم
└── README.md # هذا الملف
- Python 3.11 أو أحدث
- Node.js 22 أو أحدث
- pip و pnpm
cd /home/ubuntu/project_task_approval# تفعيل البيئة الافتراضية
source venv/bin/activate
# تثبيت المتطلبات (مثبتة مسبقاً)
pip install -r requirements.txt
# إنشاء مستخدمين تجريبيين
python create_test_users.pycd src/frontend
# تثبيت المتطلبات (مثبتة مسبقاً)
pnpm install
# بناء التطبيق
pnpm run build
# نسخ الملفات المبنية
cd ../..
cp -r src/frontend/dist/* src/static/# تأكد من تفعيل البيئة الافتراضية
source venv/bin/activate
# تشغيل الخادم
python src/main.pyالتطبيق سيعمل على: http://localhost:8080
| الدور | اسم المستخدم | كلمة المرور |
|---|---|---|
| موظف | employee1 | password123 |
| مدير مباشر | manager1 | password123 |
| مدير مشاريع | pm1 | password123 |
| موارد بشرية | hr1 | password123 |
POST /api/auth/register- تسجيل مستخدم جديدPOST /api/auth/login- تسجيل الدخولGET /api/auth/me- الحصول على بيانات المستخدم الحالي
GET /api/tasks- الحصول على جميع المهماتGET /api/tasks/:id- الحصول على مهمة محددةPOST /api/tasks- إنشاء مهمة جديدةPUT /api/tasks/:id- تحديث مهمةPOST /api/tasks/:id/submit- إرسال مهمة للموافقةDELETE /api/tasks/:id- حذف مهمة
GET /api/approvals/pending- المهمات المعلقة للموافقةPOST /api/approvals/:id/approve- الموافقة على مهمةPOST /api/approvals/:id/reject- رفض مهمةPOST /api/approvals/:id/request-revision- طلب تعديل
GET /api/dashboard/stats- إحصائيات لوحة التحكم
- الموظف ينشئ مهمة جديدة ويرسلها
- المدير المباشر يراجع ويوافق/يرفض/يطلب تعديل
- مدير المشاريع يراجع ويوافق/يرفض/يطلب تعديل
- الموارد البشرية توافق نهائياً/ترفض/تطلب تعديل
- المهمة تصبح معتمدة أو مرفوضة
cd src/frontend
pnpm run devسيعمل على: http://localhost:5173
ملاحظة: في وضع التطوير، قد تحتاج لتحديث API_BASE_URL في src/frontend/src/lib/api.js
cd src/frontend
pnpm run build
cd ../..
rm -rf src/static/*
cp -r src/frontend/dist/* src/static/# تثبيت gunicorn
pip install gunicorn
# تشغيل التطبيق
gunicorn -w 4 -b 0.0.0.0:8080 src.main:appيمكنك إنشاء Dockerfile للتطبيق:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY src/ ./src/
COPY create_test_users.py .
EXPOSE 8080
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:8080", "src.main:app"]- ✅ كلمات المرور مشفرة باستخدام bcrypt
- ✅ المصادقة عبر JWT tokens
- ✅ نظام صلاحيات محكم
- ✅ حماية من CSRF
- ✅ التحقق من صحة المدخلات
- إشعارات بالبريد الإلكتروني
- نظام الإشعارات الفورية
- تقارير وإحصائيات متقدمة
- تصدير البيانات (PDF, Excel)
- تكامل مع أنظمة خارجية
- تطبيق موبايل
- دعم المرفقات
- سجل التغييرات (Audit Log)
- البحث والفلترة المتقدمة
- لوحة تحكم إدارية شاملة
الحل:
- تأكد من إنشاء المستخدمين التجريبيين:
python create_test_users.py - تحقق من صحة اسم المستخدم وكلمة المرور
الحل:
- تأكد من بناء Frontend:
cd src/frontend && pnpm run build - تأكد من نسخ الملفات:
cp -r src/frontend/dist/* src/static/
الحل:
- احذف قاعدة البيانات وأعد إنشاءها:
rm src/database/app.db
python src/main.py # سينشئ قاعدة بيانات جديدة
python create_test_users.pyنرحب بالمساهمات! يرجى:
- عمل Fork للمشروع
- إنشاء فرع للميزة الجديدة
- Commit التغييرات
- Push إلى الفرع
- فتح Pull Request
هذا المشروع مفتوح المصدر ومتاح للاستخدام الحر.
للمزيد من المعلومات، راجع:
تم التطوير بواسطة Manus AI