diff --git a/app/Http/Controllers/Admin/PengumumanController.php b/app/Http/Controllers/Admin/PengumumanController.php
new file mode 100644
index 0000000..d5af954
--- /dev/null
+++ b/app/Http/Controllers/Admin/PengumumanController.php
@@ -0,0 +1,61 @@
+get();
+ return view('admin.pengumuman.index', compact('pengumuman'));
+ }
+
+ public function create()
+ {
+ return view('admin.pengumuman.create');
+ }
+
+ public function store(Request $request)
+ {
+ $request->validate([
+ 'judul' => 'required|string|max:255',
+ 'isi' => 'required|string',
+ 'tanggal_mulai' => 'nullable|date',
+ 'tanggal_selesai' => 'nullable|date|after_or_equal:tanggal_mulai',
+ 'status' => 'boolean',
+ ]);
+
+ Pengumuman::create($request->all());
+
+ return redirect()->route('pengumuman.index')->with('success', 'Pengumuman berhasil ditambahkan.');
+ }
+
+ public function edit(Pengumuman $pengumuman)
+ {
+ return view('admin.pengumuman.edit', compact('pengumuman'));
+ }
+
+ public function update(Request $request, Pengumuman $pengumuman)
+ {
+ $request->validate([
+ 'judul' => 'required|string|max:255',
+ 'isi' => 'required|string',
+ 'tanggal_mulai' => 'nullable|date',
+ 'tanggal_selesai' => 'nullable|date|after_or_equal:tanggal_mulai',
+ 'status' => 'boolean',
+ ]);
+
+ $pengumuman->update($request->all());
+
+ return redirect()->route('pengumuman.index')->with('success', 'Pengumuman berhasil diperbarui.');
+ }
+
+ public function destroy(Pengumuman $pengumuman)
+ {
+ $pengumuman->delete();
+ return redirect()->route('pengumuman.index')->with('success', 'Pengumuman berhasil dihapus.');
+ }
+}
diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php
index f790297..21d6566 100644
--- a/app/Http/Controllers/DashboardController.php
+++ b/app/Http/Controllers/DashboardController.php
@@ -7,19 +7,18 @@
use App\Models\Siswa;
use App\Models\WaliMurid;
use App\Models\Kelas;
+use App\Models\Pengumuman;
class DashboardController extends Controller
{
public function index()
-{
- $pengumuman = "Besok ada kegiatan belajar di kantor polisi";
- $jadwal = "Pembelajaran di kantor polisi - 8 a.m.";
- $aktivitas = [
- ['nama' => 'Winda Kurnia', 'waktu' => '01 Aug, 09:20AM'],
- ['nama' => 'Siti Nurhaliza', 'waktu' => '01 Aug, 04:20PM'],
- ['nama' => 'Daffa Lintang', 'waktu' => '01 Aug, 08:20AM'],
+ {
+ $pengumuman = Pengumuman::orderBy('created_at', 'desc')->first();
+ $aktivitas = [
+ (object)['deskripsi' => 'Admin menambahkan data guru', 'created_at' => now()],
+ (object)['deskripsi' => 'Admin membuat pengumuman baru', 'created_at' => now()->subHour()],
];
- return view('dashboard', compact('pengumuman', 'jadwal', 'aktivitas'));
-}
+ return view('dashboard', compact('pengumuman','aktivitas'));
}
+}
\ No newline at end of file
diff --git a/app/Models/Pengumuman.php b/app/Models/Pengumuman.php
new file mode 100644
index 0000000..7cc4ee4
--- /dev/null
+++ b/app/Models/Pengumuman.php
@@ -0,0 +1,22 @@
+id();
+ $table->string('judul');
+ $table->text('isi');
+ $table->date('tanggal_mulai');
+ $table->date('tanggal_selesai');
+ $table->boolean('status')->default(1);
+ $table->timestamps();
+ });
+}
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('pengumuman');
+ }
+};
diff --git a/resources/views/admin/pengumuman/create.blade.php b/resources/views/admin/pengumuman/create.blade.php
new file mode 100644
index 0000000..5a278da
--- /dev/null
+++ b/resources/views/admin/pengumuman/create.blade.php
@@ -0,0 +1,48 @@
+@extends('layouts.app')
+
+@section('content')
+
+
➕ Tambah Pengumuman
+
+
+
+@endsection
diff --git a/resources/views/admin/pengumuman/edit.blade.php b/resources/views/admin/pengumuman/edit.blade.php
new file mode 100644
index 0000000..92d548f
--- /dev/null
+++ b/resources/views/admin/pengumuman/edit.blade.php
@@ -0,0 +1,49 @@
+@extends('layouts.app')
+
+@section('content')
+
+
✏️ Edit Pengumuman
+
+
+
+@endsection
diff --git a/resources/views/admin/pengumuman/index.blade.php b/resources/views/admin/pengumuman/index.blade.php
new file mode 100644
index 0000000..f5777a4
--- /dev/null
+++ b/resources/views/admin/pengumuman/index.blade.php
@@ -0,0 +1,46 @@
+@extends('layouts.app')
+
+@section('content')
+
+
+
+
+
+
+ | # |
+ Judul |
+ Tanggal |
+ Status |
+ Aksi |
+
+
+
+ @foreach ($pengumuman as $i => $p)
+
+ | {{ $i+1 }} |
+ {{ $p->judul }} |
+
+ {{ $p->tanggal_mulai }} - {{ $p->tanggal_selesai }}
+ |
+
+
+ {{ $p->status ? 'Aktif' : 'Nonaktif' }}
+
+ |
+
+ Edit
+
+ |
+
+ @endforeach
+
+
+
+@endsection
diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php
index d6a9bc7..2890477 100644
--- a/resources/views/dashboard.blade.php
+++ b/resources/views/dashboard.blade.php
@@ -1,40 +1,56 @@
@extends('layouts.app')
@section('content')
-
+
+
Hai, Admin 👋
-
-
-
📢 Pengumuman
-
{{ $pengumuman ?? 'Belum ada pengumuman.' }}
-
-
-
-
-
-
📅 Jadwal
-
See all
+
+
+
+
📢 Pengumuman Terbaru
+ @if($pengumuman)
+
{{ $pengumuman->judul }}
+
{{ $pengumuman->isi }}
+
+ Periode: {{ $pengumuman->tanggal_mulai }} - {{ $pengumuman->tanggal_selesai }}
+ @if(now()->between($pengumuman->tanggal_mulai, $pengumuman->tanggal_selesai))
+ Aktif
+ @else
+ Belum aktif
+ @endif
+
+@else
+
Belum ada pengumuman.
+@endif
-
🔔 {{ $jadwal ?? 'Belum ada jadwal.' }}
-
-
-
-
🧒 Aktivitas Peserta Didik
-
See all
+
+
+
+
+
-
- @forelse ($aktivitas as $a)
- -
- {{ $a['nama'] }}
- {{ $a['waktu'] }}
-
- @empty
- - Belum ada aktivitas.
- @endforelse
-
-
+
+
+
📌 Aktivitas Terbaru
+
+ @forelse($aktivitas as $item)
+ - • {{ $item->deskripsi }}
+ - {{ $item->created_at->diffForHumans() }}
+
+ @empty
+ - Tidak ada aktivitas terbaru.
+ @endforelse
+
+
+
+
@endsection
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index 9edc95c..48f2aeb 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -30,7 +30,7 @@
Laporan Perkembangan
-
+
Menu Pengumuman
diff --git a/routes/api.php b/routes/api.php
index 614bc78..174c7fc 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -8,6 +8,7 @@
use App\Http\Controllers\Admin\GuruController;
use App\Http\Controllers\Admin\WaliMuridController;
use App\Http\Controllers\Admin\SiswaController;
+use App\Http\Controllers\Api\PerkembanganController as ApiPerkembangan;
Route::post('/login', [AuthController::class, 'login']);
@@ -41,5 +42,5 @@
'update' => 'api.siswa.update',
'destroy' => 'api.siswa.destroy',
]);
-
+ Route::middleware('auth:sanctum')->get('/wali/perkembangan', [ApiPerkembangan::class,'index']);
});
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index a605b56..919e81d 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -6,6 +6,9 @@
use App\Http\Controllers\Admin\GuruController;
use App\Http\Controllers\Admin\WaliMuridController;
use App\Http\Controllers\Admin\SiswaController;
+use App\Http\Controllers\Admin\PengumumanController;
+use App\Http\Controllers\Guru\PerkembanganController as GuruPerkembangan;
+use App\Http\Controllers\Admin\PerkembanganController as AdminPerkembangan;
// Login routes
Route::get('/login', [AuthController::class, 'showLogin'])->name('login');
@@ -20,10 +23,20 @@
// Hanya bisa diakses setelah login
Route::middleware('auth')->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
+ Route::resource('pengumuman', \App\Http\Controllers\Admin\PengumumanController::class);
Route::prefix('admin')->group(function () {
Route::resource('guru', GuruController::class);
Route::resource('wali', WaliMuridController::class);
Route::resource('siswa', SiswaController::class);
+
+Route::middleware(['auth','role:guru'])->prefix('guru')->name('guru.')->group(function(){
+ Route::resource('perkembangan', GuruPerkembangan::class);
+});
+
+Route::middleware(['auth','role:admin'])->prefix('admin')->name('admin.')->group(function(){
+ Route::get('perkembangan', [AdminPerkembangan::class, 'index'])->name('perkembangan.index');
+ Route::get('perkembangan/{id}', [AdminPerkembangan::class, 'show'])->name('perkembangan.show');
+});
});
});
\ No newline at end of file