Task Reminder with Laravel & MongoDB
June 30, 2025📌 Building a Task Reminder App
This guide shows how to set up a Laravel app using MongoDB to implement a task reminder system with authentication, CRUD, and scheduled email reminders.
Prerequisites
- MongoDB Atlas cluster
- PHP + MongoDB extension
- Composer, NPM
- Basic Laravel & MongoDB knowledge
1. Start Laravel Project & Add MongoDB
composer create‑project laravel/laravel task‑reminder
cd task‑reminder
composer require mongodb/laravel-mongodb
Then in config/database.php, add:
'connections' => [
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('MONGODB_URI'),
'database' => 'YOUR_DB',
],
],
2. Authentication with Breeze
composer require laravel/breeze --dev
php artisan breeze:install
php artisan migrate
npm install && npm run dev
php artisan serve
3. Add Ping Route to Test MongoDB
Route::get('/ping', function() {
try {
DB::connection('mongodb')->command(['ping'=>1]);
return ['msg' => 'MongoDB is accessible!'];
} catch (Exception $e) {
return ['msg' => 'Not connected: '.$e->getMessage()];
}
});
4. Task Model & Controller (CRUD)
php artisan make:model Task --resource --controller
// in 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'];
}
Controller handles index, create, store, edit, update, destroy. Format dates with Carbon, link tasks to auth()->user()->email.
5. Views with Bootstrap
- Create form input: title, description, due_date, reminder_time
- Edit form similar
- Index page lists tasks, with Edit/Delete buttons
6. Send Reminder Emails
php artisan make:command SendTaskReminders
// handle() in 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. Schedule the Command
// in console.php
Schedule::command('app:send-task-reminders')->everyMinute();
// add cron: * * * * * php /path/artisan schedule:run
Conclusion
You’ve built a full task reminder system with MongoDB storage, user auth, CRUD, and scheduled email notifications using Laravel.
Blog
Feb 05, 2026
Understanding Redux Toolkit 2.9.0 Update The Redux Toolkit 2.9.0 release focuses primarily on optimizing RTK Query performance, streamlining asyn...
Jul 07, 2025
How to cache report queries with fixed timelines How to generate large reports asynchronously using job queues 1. đź§ Report Query Caching wi...
Jul 06, 2025
🔍 ECMAScript 2025 – Detailed Feature Guide All new ECMAScript 2025 features with code examples and explanation of their importance for front...
Aug 17, 2025
Laravel Global Scopes: Automatic Query Filtering Eloquent Importance: Enforce consistent filters across all model queries (e.g., Soft Del...
Oct 14, 2026
Introduction When you write a short line in Laravel to fetch data from the database, it looks simple: $users = User::where('active', 1)->get();...
Jul 01, 2025
Analyze Laravel Codebases with Laravel Introspect If you’re doing a complex refactor or building dev tools, Laravel Introspect helps you quer...