Dashboard

Data-driven Dashboard

The bundled demo dashboard mirrors the AdminLTE HTML index with static numbers. The dashboard scaffold replaces those with real aggregates computed from whatever sections you've installed.

php artisan adminlte:scaffold dashboard

Publishes a DashboardController + resources/views/adminlte/dashboard/index.blade.php and the route adminlte.dashboard (/admin/dashboard), plus a DashboardTest.

What it shows

Widget Source
Users stat box users count
Projects stat box adminlte_projects count
Unread messages stat box adminlte_messages where is_read = false
Upcoming events stat box adminlte_events where start_at >= now()
Projects-by-status bars grouped count over adminlte_projects.status
Recent activity feed latest activity_log rows

Every metric is guarded by Schema::hasTable() / hasColumn(), so the dashboard renders correctly whether you've scaffolded one section or all of them — counts simply read 0 for sections you haven't installed. The stat boxes deep-link to the relevant section when its route exists.

Making it your home page

The scaffold registers /admin/dashboard. Point your root route at the same controller to use it as the landing page:

// routes/web.php
use App\Http\Controllers\AdminLte\DashboardController;

Route::get('/', [DashboardController::class, 'index'])->middleware('auth');

Extend DashboardController with your own metrics — it's plain Eloquent/Query Builder and fully yours to edit.