diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index d9b11dd..e807fcc 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -2,13 +2,16 @@ namespace App\Http\Controllers; -namespace App\Http\Controllers; - -use Illuminate\Http\Request; -use Yajra\DataTables\Facades\DataTables; use App\Models\ActivitiesAttended; +use App\Models\ActivitiesOrganised; +use App\Models\BooksPublished; use App\Models\Department; -use Illuminate\Support\Facades\Storage; +use App\Models\ExternalEngagement; +use App\Models\IvOrganised; +use App\Models\OnlineCourse; +use App\Models\Patent; +use App\Models\Publication; +use Illuminate\Http\Request; class AdminController extends Controller { @@ -52,4 +55,130 @@ class AdminController extends Controller { return view('pages.patents.index'); } + public function analyticsActivitiesAttended() + { + $data = ActivitiesAttended::selectRaw('departments.name as department, COUNT(*) as count') + ->join('departments', 'activities_attendeds.department_id', '=', 'departments.id') + ->groupBy('departments.name') + ->get(); + + $total = $data->sum('count'); + + return response()->json([ + 'labels' => $data->pluck('department'), + 'values' => $data->pluck('count'), + 'total' => $total, + ]); + } + + public function analyticsActivitiesOrganised() + { + $data = ActivitiesOrganised::selectRaw('departments.name as department, COUNT(*) as count') + ->join('departments', 'activities_organiseds.department_id', '=', 'departments.id') + ->groupBy('departments.name') + ->get(); + + $total = $data->sum('count'); + + return response()->json([ + 'labels' => $data->pluck('department'), + 'values' => $data->pluck('count'), + 'total' => $total, + ]); + } + + public function analyticsIvOrganised() + { + $data = IvOrganised::selectRaw('departments.name as department, COUNT(*) as count') + ->join('departments', 'iv_organiseds.department_id', '=', 'departments.id') + ->groupBy('departments.name') + ->get(); + + $total = $data->sum('count'); + + return response()->json([ + 'labels' => $data->pluck('department'), + 'values' => $data->pluck('count'), + 'total' => $total, + ]); + } + + public function analyticsPaperPublished() + { + $data = Publication::selectRaw('departments.name as department, COUNT(*) as count') + ->join('departments', 'publications.department_id', '=', 'departments.id') + ->groupBy('departments.name') + ->get(); + + $total = $data->sum('count'); + + return response()->json([ + 'labels' => $data->pluck('department'), + 'values' => $data->pluck('count'), + 'total' => $total, + ]); + } + + public function analyticsBooksPublished() + { + $data = BooksPublished::selectRaw('departments.name as department, COUNT(*) as count') + ->join('departments', 'books_published.department_id', '=', 'departments.id') + ->groupBy('departments.name') + ->get(); + + $total = $data->sum('count'); + + return response()->json([ + 'labels' => $data->pluck('department'), + 'values' => $data->pluck('count'), + 'total' => $total, + ]); + } + + public function analyticsExternalEngagement() + { + $data = ExternalEngagement::selectRaw('departments.name as department, COUNT(*) as count') + ->join('departments', 'external_engagements.department_id', '=', 'departments.id') + ->groupBy('departments.name') + ->get(); + + $total = $data->sum('count'); + + return response()->json([ + 'labels' => $data->pluck('department'), + 'values' => $data->pluck('count'), + 'total' => $total, + ]); + } + + public function analyticsOnlineCourse() + { + $data = OnlineCourse::selectRaw('departments.name as department, COUNT(*) as count') + ->join('departments', 'online_courses.department_id', '=', 'departments.id') + ->groupBy('departments.name') + ->get(); + + $total = $data->sum('count'); + + return response()->json([ + 'labels' => $data->pluck('department'), + 'values' => $data->pluck('count'), + 'total' => $total, + ]); + } + public function analyticsPatent() + { + $data = Patent::selectRaw('departments.name as department, COUNT(*) as count') + ->join('departments', 'patents.department_id', '=', 'departments.id') + ->groupBy('departments.name') + ->get(); + + $total = $data->sum('count'); + + return response()->json([ + 'labels' => $data->pluck('department'), + 'values' => $data->pluck('count'), + 'total' => $total, + ]); + } } diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index f76671f..76c02d6 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -1,23 +1,471 @@ @extends('layouts.app') @section('header') -