تذكير بالمهام مع Laravel وMongoDB
يونيو 30, 2025📌 بناء تطبيق تذكير مهام
المقال ده بيشرح إزاي نعمل تطبيق Laravel يستخدم MongoDB علشان يذكرك بالمهمات بتاعتك، مع تسجيل دخول، CRUD، وتذكير بالإيميلات.
المتطلبات
- MongoDB Atlas cluster
- PHP وامتداد MongoDB
- Composer وNPM
- معرفة أساسية بـ Laravel وMongoDB
1. إنشاء مشروع Laravel وتنصيب MongoDB
composer create‑project laravel/laravel task‑reminder
cd task‑reminder
composer require mongodb/laravel-mongodb
وبعدين في config/database.php
ضيف:
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('MONGODB_URI'),
'database' => 'YOUR_DB',
],
],
2. تسجيل دخول بـ Breeze
composer require laravel/breeze --dev
php artisan breeze:install
php artisan migrate
npm install && npm run dev
php artisan serve
3. طريق Ping لاختبار الاتصال بـ MongoDB
Route::get('/ping', function() {
try {
DB::connection('mongodb')->command(['ping'=>1]);
return ['msg' => 'MongoDB is accessible!'];
} catch (Exception $e) {
return ['msg' => 'مش متصل: '.$e->getMessage()];
}
});
4. موديل وكنترولر للمهمات (CRUD)
php artisan make:model Task --resource --controller
// في Task.php
use MongoDB\Laravel\Eloquent\Model;
class Task extends Model {
protected $connection='mongodb';
protected $fillable=['title','description','due_date','email','reminder_time','last_notification_date'];
}
الكنترولر بيتعامل مع إنشاء، عرض، تعديل، حذف، وإضافة تفاصيل زي تحويل التواريخ وربطها بإيميل المستخدم اللي عامل دخول.
5. الصفحات (Views) بـ Bootstrap
- صفحة إنشاء: فيها العنوان، الوصف، تاريخ الاستحقاق، ووقت التذكير
- صفحة تعديل: نفس الحاجة لكن الحقول محشية بالبيانات
- الصفحة الرئيسية: بتعرض كل المهمات مع أزرار تعديل وحذف
6. إرسال إيميلات تذكير
php artisan make:command SendTaskReminders
// داخل handle() في SendTaskReminders.php
$now = Carbon::now();
$tasks = Task::whereNull('last_notification_date')
->where('reminder_time','>=',$now->subMinutes(10))
->get();
foreach($tasks as $task){
Mail::raw("Reminder: {$task->title}", function($msg) use($task){
$msg->to($task->email)
->subject("Task Reminder: {$task->title}");
});
$task->last_notification_date = $now;
$task->save();
}
7. جدولة الأمر كل دقيقة
// في console.php
Schedule::command('app:send-task-reminders')->everyMinute();
// بعدين في الكرون:
* * * * * php /path/artisan schedule:run
الخلاصة
خلصنا تطبيق تذكير مهام كامل بـ MongoDB، وتسجيل دخول، وعمليات CRUD، وكمان تذكير بالإيميلات بشكل أوتوماتيكي.
المدونة
إزاي OAuth بيشتغل
يونيو 29, 2025
إزاي OAuth بيشتغل؟ OAuth هو بروتوكول بيخلّي التطبيقات تقدر تدخل على بياناتك بطريقة آمنة من غير ما تدّيهم الباسورد بتاعك. زي مثلًا لو حبيت تطبيق ينشر...
أحدث مميزات ECMAScript 2025
يونيو 30, 2025
أحدث مميزات ECMAScript 2025 في 25 يونيو 2025، تم اعتماد ES2025 رسميًا. الإضافات الجاية هتسهل عليك كتابة الكود: 1. 📦 Import Attributes و JSON Module...
إزاي تستخدم Web Components ببساطة وذكاء
يوليو 06, 2025
إزاي تستخدم Web Components ببساطة وذكاء كتير من المطورين بيفكروا إن Web Components معمولة عشان تبقى بديل كامل لفريموركات زي React أو Vue. بس الحقيق...
شرح مفصل لكل هوك في React
يوليو 01, 2025
🎣 شرح React Hooks وبأمثلة عملية 🧠 useState بيعمل إيه: بيضيف حالة داخلية (state) جوا أي مكون شغال بوظيفة. مثال عملي: import React, { useSta...
تذكير بالمهام مع Laravel وMongoDB
يونيو 30, 2025
📌 بناء تطبيق تذكير مهام المقال ده بيشرح إزاي نعمل تطبيق Laravel يستخدم MongoDB علشان يذكرك بالمهمات بتاعتك، مع تسجيل دخول، CRUD، وتذكير بالإيميلات...
لارافيل 12.16.0 - مميزات جديدة للمطورين
يونيو 03, 2025
لارافيل 12.16.0 - مميزات جديدة للمطورين 1. قاعدات تحقق جديدة: in_array_keys دلوقتي تقدر تتحقق إن الأراي فيه على الأقل مفتاح واحد من اللي انت محددهم...
