نظام متكامل لإدارة المهام مبني باستخدام إطار العمل 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 (مفترض بناءً على الإعدادات الافتراضية)
اتبع الخطوات التالية لتشغيل المشروع على جهازك المحلي:
-
استنساخ المستودع (Clone):
git clone <repository-url> cd TaskManager
-
تثبيت الحزم (Dependencies):
composer install npm install
-
إعداد ملف البيئة (.env): قم بنسخ ملف المثال وتعديل إعدادات قاعدة البيانات:
cp .env.example .env
تأكد من إنشاء قاعدة بيانات جديدة وربطها في ملف
.env. -
توليد مفتاح التطبيق:
php artisan key:generate
-
تجهيز قاعدة البيانات (Migrations):
php artisan migrate
(يمكنك استخدام
php artisan migrate --seedإذا كان هناك بيانات أولية). -
تشغيل السيرفر:
php artisan serve
سيعمل المشروع عادةً على الرابط:
http://localhost:8000.
جميع الطلبات يجب أن توجه إلى http://localhost:8000/api.
يجب إرفاق Authorization: Bearer <token> في ترويسة الطلبات (Headers) للمسارات المحمية.
| الطريقة | المسار | الوصف |
|---|---|---|
POST |
/register |
تسجيل مستخدم جديد |
POST |
/login |
تسجيل الدخول والحصول على التوكن |
POST |
/logout |
تسجيل الخروج (يتطلب توكن) |
| الطريقة | المسار | الوصف |
|---|---|---|
GET |
/user |
عرض بيانات المستخدم الحالي |
GET |
/users |
عرض جميع المستخدمين (للمشرفين) |
GET |
/profile |
عرض الملف الشخصي للمستخدم |
POST |
/profile |
إنشاء ملف شخصي |
PUT |
/profile |
تحديث الملف الشخصي |
DELETE |
/profile |
حذف الملف الشخصي |
GET |
/user/{id}/tasks |
عرض مهام مستخدم معين |
| الطريقة | المسار | الوصف |
|---|---|---|
GET |
/tasks |
عرض جميع مهام المستخدم الحالي |
POST |
/tasks |
إنشاء مهمة جديدة |
GET |
/tasks/{id} |
عرض تفاصيل مهمة محددة |
PUT |
/tasks/{id} |
تحديث مهمة |
DELETE |
/tasks/{id} |
حذف مهمة |
GET |
/tasks/all |
عرض كافة المهام في النظام (للمشرفين) |
| الطريقة | المسار | الوصف |
|---|---|---|
GET |
/tasks/ordered |
عرض المهام مرتبة حسب الأولوية |
GET |
/tasks/ordered/{sort} |
عرض المهام مرتبة (ASC أو DESC) |
GET |
/tasks/favorite |
عرض المهام المفضلة فقط |
POST |
/tasks/{id}/favorite |
إضافة مهمة للمفضلة |
DELETE |
/tasks/{id}/favorite |
إزالة مهمة من المفضلة |
| الطريقة | المسار | الوصف |
|---|---|---|
POST |
/tasks/{id}/categories |
ربط تصنيف بمهمة محددة |
GET |
/tasks/{id}/categories |
عرض تصنيفات مهمة معينة |
GET |
/categories/{id}/tasks |
عرض جميع المهام التابعة لتصنيف معين |
لتشغيل الاختبارات الموجودة في المشروع:
php artisan test