Skip to content

mohammedzom/TaskManager

Repository files navigation

نظام إدارة المهام (Task Manager API)

نظام متكامل لإدارة المهام مبني باستخدام إطار العمل Laravel. يوفر هذا المشروع واجهة برمجة تطبيقات (API) قوية تسمح للمستخدمين بإدارة مهامهم اليومية، تنظيمها ضمن فئات، تحديد أولوياتها، وإضافتها للمفضلة، مع نظام مصادقة آمن.

🌟 المميزات الرئيسية

  • نظام مصادقة متكامل (Authentication): تسجيل حساب جديد، تسجيل دخول، وتسجيل خروج آمن باستخدام Laravel Sanctum.
  • إدارة المهام (CRUD): إمكانية إنشاء، قراءة، تعديل، وحذف المهام.
  • نظام الأولويات: دعم ترتيب المهام بناءً على الأولوية (High, Medium, Low) مع إمكانية الفرز تصاعدياً أو تنازلياً.
  • المفضلة (Favorites): إمكانية إضافة المهام إلى قائمة المفضلة والوصول إليها بسرعة.
  • التصنيفات (Categories): ربط المهام بتصنيفات متعددة لتنظيم أفضل، وعرض المهام حسب التصنيف.
  • إدارة الملف الشخصي (Profiles): إدارة بيانات الملف الشخصي للمستخدم.
  • صلاحيات المستخدمين: حماية بعض المسارات (مثل عرض جميع المهام) باستخدام Middleware خاص (CheckUser).

🛠️ التقنيات المستخدمة

  • PHP: ^8.2
  • Framework: Laravel 12.x
  • Authentication: Laravel Sanctum
  • Database: MySQL (مفترض بناءً على الإعدادات الافتراضية)

🚀 طريقة التنصيب والتشغيل

اتبع الخطوات التالية لتشغيل المشروع على جهازك المحلي:

  1. استنساخ المستودع (Clone):

    git clone <repository-url>
    cd TaskManager
  2. تثبيت الحزم (Dependencies):

    composer install
    npm install
  3. إعداد ملف البيئة (.env): قم بنسخ ملف المثال وتعديل إعدادات قاعدة البيانات:

    cp .env.example .env

    تأكد من إنشاء قاعدة بيانات جديدة وربطها في ملف .env.

  4. توليد مفتاح التطبيق:

    php artisan key:generate
  5. تجهيز قاعدة البيانات (Migrations):

    php artisan migrate

    (يمكنك استخدام php artisan migrate --seed إذا كان هناك بيانات أولية).

  6. تشغيل السيرفر:

    php artisan serve

    سيعمل المشروع عادةً على الرابط: http://localhost:8000.

📚 توثيق نقاط الوصول (API Endpoints)

جميع الطلبات يجب أن توجه إلى http://localhost:8000/api. يجب إرفاق Authorization: Bearer <token> في ترويسة الطلبات (Headers) للمسارات المحمية.

🔐 المصادقة (Authentication)

الطريقة المسار الوصف
POST /register تسجيل مستخدم جديد
POST /login تسجيل الدخول والحصول على التوكن
POST /logout تسجيل الخروج (يتطلب توكن)

👤 المستخدم والملف الشخصي (User & Profile)

الطريقة المسار الوصف
GET /user عرض بيانات المستخدم الحالي
GET /users عرض جميع المستخدمين (للمشرفين)
GET /profile عرض الملف الشخصي للمستخدم
POST /profile إنشاء ملف شخصي
PUT /profile تحديث الملف الشخصي
DELETE /profile حذف الملف الشخصي
GET /user/{id}/tasks عرض مهام مستخدم معين

✅ المهام (Tasks)

الطريقة المسار الوصف
GET /tasks عرض جميع مهام المستخدم الحالي
POST /tasks إنشاء مهمة جديدة
GET /tasks/{id} عرض تفاصيل مهمة محددة
PUT /tasks/{id} تحديث مهمة
DELETE /tasks/{id} حذف مهمة
GET /tasks/all عرض كافة المهام في النظام (للمشرفين)

⚡ ميزات إضافية للمهام (Filters & Features)

الطريقة المسار الوصف
GET /tasks/ordered عرض المهام مرتبة حسب الأولوية
GET /tasks/ordered/{sort} عرض المهام مرتبة (ASC أو DESC)
GET /tasks/favorite عرض المهام المفضلة فقط
POST /tasks/{id}/favorite إضافة مهمة للمفضلة
DELETE /tasks/{id}/favorite إزالة مهمة من المفضلة

📂 التصنيفات (Categories)

الطريقة المسار الوصف
POST /tasks/{id}/categories ربط تصنيف بمهمة محددة
GET /tasks/{id}/categories عرض تصنيفات مهمة معينة
GET /categories/{id}/tasks عرض جميع المهام التابعة لتصنيف معين

🧪 الاختبار (Testing)

لتشغيل الاختبارات الموجودة في المشروع:

php artisan test

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages