This commit is contained in:
gitaysn 2025-05-26 15:48:44 +07:00
parent 1ba7bd9e4a
commit d31dc31bce
20 changed files with 292 additions and 199 deletions

View File

@ -22,7 +22,7 @@ class AuthController extends Controller
$credentials = $request->only('username', 'password'); $credentials = $request->only('username', 'password');
if (Auth::attempt($credentials)) { if (Auth::attempt($credentials)) {
return redirect()->route('dashboard'); return redirect()->route('admin.dashboard');
} }
return back()->withErrors(['login' => 'Username atau password salah.']); return back()->withErrors(['login' => 'Username atau password salah.']);

View File

@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\DataAlternatif; use App\Models\DataAlternatif;
use App\Models\Kriteria; use App\Models\Kriteria;
use App\Models\Pakaian;
use App\Models\QuizHistory; use App\Models\QuizHistory;
use App\Models\Subkriteria; use App\Models\Subkriteria;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -14,156 +15,6 @@ class HomeController extends Controller
{ {
public function index() public function index()
{ {
$kriteria = Kriteria::with('subkriteria')->get(); //
return view('landingpage.home', [
'skorAkhir' => $this->getSkorAkhirByJenis('Dress'),
'blouseSkorAkhir' => $this->getSkorAkhirByJenis('Blouse'),
'cardiganSkorAkhir' => $this->getSkorAkhirByJenis('Cardigan'),
'rokSkorAkhir' => $this->getSkorAkhirByJenis('Rok'),
'celanaSkorAkhir' => $this->getSkorAkhirByJenis('Celana'),
'kriteria' => $kriteria
]);
}
public function dress() { return $this->showJenisPakaian('Dress'); }
public function blouse() { return $this->showJenisPakaian('Blouse'); }
public function cardigan() { return $this->showJenisPakaian('Cardigan'); }
public function rok() { return $this->showJenisPakaian('Rok'); }
public function celana() { return $this->showJenisPakaian('Celana'); }
private function showJenisPakaian($jenis, $preferensi = [])
{
$skorAkhir = $this->getSkorAkhirByJenis($jenis, $preferensi);
$alternatif = DataAlternatif::whereHas('penilaian.subkriteria', fn($q) => $q->where('nama_subkriteria', $jenis))->get();
$kriteria = Kriteria::with('subkriteria')->get();
return view('landingpage.rekomendasi', compact('alternatif', 'kriteria', 'jenis', 'skorAkhir', 'preferensi'));
}
private function getSkorAkhirByJenis($jenis, $preferensi = [])
{
$alternatif = DataAlternatif::with(['penilaian.subkriteria', 'penilaian.kriteria'])
->whereHas('penilaian.subkriteria', function ($query) use ($jenis) {
$query->where('nama_subkriteria', $jenis);
})
->get();
$kriteria = Kriteria::with('subkriteria')->get();
$skorAkhir = [];
foreach ($alternatif as $alt) {
$total = 0;
foreach ($kriteria as $k) {
$penilaian = $alt->penilaian->where('kriteria_id', $k->id)->first();
if (!$penilaian) continue;
$nilaiAlt = $penilaian->subkriteria->nilai;
$nilaiPref = $preferensi[$this->mapKriteriaKey($k->nama_kriteria)]['nilai'] ?? $nilaiAlt;
$normalisasi = 1 - abs($nilaiAlt - $nilaiPref);
$total += $normalisasi * $k->bobot;
}
$skorAkhir[] = [
'alternatif' => $alt,
'skor' => round($total, 3),
];
}
usort($skorAkhir, fn($a, $b) => $b['skor'] <=> $a['skor']);
return $skorAkhir;
}
private function mapKriteriaKey($nama)
{
$nama = strtolower($nama);
return match ($nama) {
'harga', 'cost' => 'harga',
'jenis pakaian' => 'jenis',
'warna pakaian' => 'warna',
'lokasi acara' => 'lokasi',
'cuaca acara' => 'cuaca',
'jenis acara' => 'acara',
default => str_replace(' ', '_', $nama),
};
}
public function simpankuisionerdanrekomendasi(Request $request)
{
try {
$validated = $request->validate([
'jenis_acara' => 'required|string',
'harga' => 'required|string',
'jenis_pakaian' => 'required|string',
'warna' => 'required|string',
'cuaca' => 'required|string',
'lokasi' => 'required|string',
]);
// Kumpulkan preferensi untuk diproses
$jawaban = [
'jenis_acara' => $validated['jenis_acara'],
'harga' => $validated['harga'],
'warna' => $validated['warna'],
'cuaca' => $validated['cuaca'],
'lokasi' => $validated['lokasi'],
];
$preferensi = $this->prosesPreferensiBerdasarkanSubkriteria($jawaban);
$skorAkhir = $this->getSkorAkhirByJenis($validated['jenis_pakaian'], $preferensi);
// Simpan ke database
$quizHistory = new QuizHistory();
$quizHistory->data_kuisioner = json_encode($jawaban);
$quizHistory->hasil_rekomendasi = json_encode($skorAkhir);
$quizHistory->save();
return $this->showJenisPakaian($validated['jenis_pakaian'], $preferensi);
} catch (\Exception $e) {
Log::error('Error simpan kuis: ' . $e->getMessage());
return back()->with('error', 'Terjadi kesalahan. Silakan coba lagi.');
}
}
private function prosesPreferensiBerdasarkanSubkriteria($jawaban)
{
$preferensi = [];
foreach ($jawaban as $nama_kriteria => $nama_subkriteria) {
$kriteria = Kriteria::where('nama_kriteria', $nama_kriteria)->first();
$subkriteria = Subkriteria::where('nama_subkriteria', $nama_subkriteria)
->where('kriteria_id', $kriteria->id ?? null)
->first();
if ($kriteria && $subkriteria) {
$key = $this->mapKriteriaKey($kriteria->nama_kriteria);
$preferensi[$key] = [
'value' => $subkriteria->nama_subkriteria,
'nilai' => $subkriteria->nilai,
'bobot' => $kriteria->bobot
];
if ($key === 'harga') {
$preferensi[$key]['range'] = $subkriteria->nama_subkriteria;
}
}
}
return $preferensi;
}
// Menampilkan form kuis
public function showKuis($jenis = 'Dress')
{
$kriteria = Kriteria::with(['subkriteria' => function($query) {
$query->orderBy('nilai', 'desc');
}])->get();
return view('landingpage.pilihpakaian', compact('kriteria', 'jenis'));
} }
} }

View File

@ -21,7 +21,7 @@ class PenilaianController extends Controller
} }
// Ambil jumlah per halaman dari parameter 'perPage' atau default ke 10 // Ambil jumlah per halaman dari parameter 'perPage' atau default ke 10
$perPage = $request->get('perPage', 10); $perPage = $request->get('entries', 10);
// Ambil data pakaian dengan pagination // Ambil data pakaian dengan pagination
$pakaians = $query->paginate($perPage); $pakaians = $query->paginate($perPage);
@ -68,8 +68,27 @@ class PenilaianController extends Controller
// Ambil semua kriteria, supaya bisa ditampilkan di form edit untuk memilih/mengubah subkriteria // Ambil semua kriteria, supaya bisa ditampilkan di form edit untuk memilih/mengubah subkriteria
$kriterias = Kriteria::with('subKriteria')->get(); $kriterias = Kriteria::with('subKriteria')->get();
// Kirim data ke view edit // Ambil ID kriteria yang multiple select
return view('admin.pages.penilaian.edit', compact('pakaian', 'kriterias')); $multiSelectKriteriaIds = Kriteria::whereIn('nama_kriteria', ['Jenis Acara', 'Lokasi Acara', 'Cuaca'])->pluck('id')->toArray();
// Kirim juga nilai penilaian yang sudah disimpan
$nilai = [];
foreach ($pakaian->subKriterias as $sub) {
$kriteriaId = $sub->kriteria->id;
// Untuk multiple, buat array; untuk single, overwrite
if (in_array($kriteriaId, $multiSelectKriteriaIds)) {
$nilai[$kriteriaId][] = $sub->id;
} else {
$nilai[$kriteriaId] = $sub->id;
}
}
return view('admin.pages.penilaian.edit', compact(
'pakaian',
'kriterias',
'multiSelectKriteriaIds',
'nilai'
));
} }
/** /**
@ -85,16 +104,20 @@ class PenilaianController extends Controller
$rules = []; $rules = [];
$messages = []; $messages = [];
$allKriteria = Kriteria::all()->keyBy('id');
foreach ($request->input('nilai') as $kriteriaId => $value) { foreach ($request->input('nilai') as $kriteriaId => $value) {
if (!isset($allKriteria[$kriteriaId])) continue;
$nama = $allKriteria[$kriteriaId]->nama_kriteria;
if (in_array($kriteriaId, $multiSelectKriteria)) { if (in_array($kriteriaId, $multiSelectKriteria)) {
// Kriteria yang multiple select wajib berupa array dengan minimal 1 elemen
$rules["nilai.$kriteriaId"] = 'required|array|min:1'; $rules["nilai.$kriteriaId"] = 'required|array|min:1';
$messages["nilai.$kriteriaId.required"] = 'Harap pilih minimal satu subkriteria untuk kriteria ' . Kriteria::find($kriteriaId)->nama_kriteria; $messages["nilai.$kriteriaId.required"] = "Pilih minimal satu subkriteria untuk $nama.";
$messages["nilai.$kriteriaId.min"] = 'Harap pilih minimal satu subkriteria untuk kriteria ' . Kriteria::find($kriteriaId)->nama_kriteria; $messages["nilai.$kriteriaId.min"] = "Pilih minimal satu subkriteria untuk $nama.";
} else { } else {
// Kriteria yang single select wajib ada (string / integer)
$rules["nilai.$kriteriaId"] = 'required'; $rules["nilai.$kriteriaId"] = 'required';
$messages["nilai.$kriteriaId.required"] = 'Harap pilih satu subkriteria untuk kriteria ' . Kriteria::find($kriteriaId)->nama_kriteria; $messages["nilai.$kriteriaId.required"] = "Pilih satu subkriteria untuk $nama.";
} }
} }

View File

@ -0,0 +1,64 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class RekomendasiController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -44,7 +44,7 @@ class SubKriteriaController extends Controller
$validated = $request->validate([ $validated = $request->validate([
'kriteria_id' => 'required', 'kriteria_id' => 'required',
'nama_sub' => 'required|string|max:255', 'nama_sub' => 'required|string|max:255',
'nilai' => 'required|numeric', 'nilai' => 'required|integer|min:1|max:5',
'min_harga' => 'nullable|numeric|min:0', 'min_harga' => 'nullable|numeric|min:0',
'max_harga' => 'nullable|numeric|min:0|gte:min_harga', 'max_harga' => 'nullable|numeric|min:0|gte:min_harga',
]); ]);
@ -86,7 +86,7 @@ class SubKriteriaController extends Controller
$request->validate([ $request->validate([
'kriteria_id' => 'required', 'kriteria_id' => 'required',
'nama_sub' => 'required|string|max:255', 'nama_sub' => 'required|string|max:255',
'nilai' => 'required|numeric', 'nilai' => 'required|integer|min:1|max:5',
'min_harga' => 'nullable|numeric', 'min_harga' => 'nullable|numeric',
'max_harga' => 'nullable|numeric', 'max_harga' => 'nullable|numeric',
]); ]);

View File

@ -0,0 +1,90 @@
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$users = User::all(); // Mengambil semua data user
return view('admin.pages.user.index', compact('users'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show($id)
{
$user = User::findOrFail($id); // Ambil data user, jika tidak ada akan 404
return view('admin.pages.user.show', compact('user'));
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$user = User::findOrFail($id); // Ambil data user
return view('admin.pages.user.edit', compact('user'));
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
{
$user = User::findOrFail($id); // Ambil user berdasarkan ID
// Validasi input dari form
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users,email,' . $id,
'username' => 'required|string|unique:users,username,' . $id,
'password' => 'nullable|string|min:6|confirmed', // validasi password + konfirmasi
]);
// Ambil data yang akan diperbarui
$data = $request->only(['name', 'email', 'username']);
// Jika password diisi, enkripsi dan tambahkan ke data
if ($request->filled('password')) {
$data['password'] = Hash::make($request->password);
}
// Update data user di database
$user->update($data);
return redirect()->route('admin.user.show', $user->id)->with('success', 'User berhasil diperbarui');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class QuizHistory extends Model
{
protected $fillable = [
'jenis_acara',
'harga',
'jenis_pakaian',
'warna',
'cuaca',
'lokasi',
'pakaian_id',
];
public function pakaian()
{
return $this->belongsTo(Pakaian::class);
}
}

View File

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('quiz_histories', function (Blueprint $table) {
$table->id();
$table->string('jenis_acara');
$table->string('harga');
$table->string('jenis_pakaian');
$table->string('warna');
$table->string('cuaca');
$table->string('lokasi');
$table->unsignedBigInteger('pakaian_id')->nullable(); // hasil rekomendasi
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('quiz_histories');
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -212,11 +212,12 @@
aria-labelledby="userDropdown"> aria-labelledby="userDropdown">
<!-- Profile Link --> <!-- Profile Link -->
<a class="dropdown-item" href="#"> <a class="dropdown-item" href="{{ route('admin.user.show', Auth::user()->id) }}">
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i> <i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
Profile Profile
</a> </a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<!-- Logout Link --> <!-- Logout Link -->
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal"> <a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">

View File

@ -122,7 +122,7 @@
<td>{{ $loop->iteration }}</td> <td>{{ $loop->iteration }}</td>
<td> <td>
@if ($item->img) @if ($item->img)
<img src="{{ asset($item->img) }}" alt="Gambar" class="img-thumbnail" style="width: 100px; height: 100px;"> <img src="{{ asset($item->img) }}" alt="Gambar" style="width: 100px; height: 100px;">
@else @else
<span class="text-muted">Tidak ada gambar</span> <span class="text-muted">Tidak ada gambar</span>
@endif @endif
@ -133,7 +133,7 @@
<button type="button" class="btn btn-info btn-sm" data-bs-toggle="modal" data-bs-target="#infoModal{{ $item->id }}"> <button type="button" class="btn btn-info btn-sm" data-bs-toggle="modal" data-bs-target="#infoModal{{ $item->id }}">
<i class="bi bi-info-circle"></i> <i class="bi bi-info-circle"></i>
</button> </button>
<a href="{{ route('admin.pakaian.edit', $item->id) }}" class="btn btn-warning btn-sm"> <a href="#" class="btn btn-warning btn-sm edit-button" data-id="{{ $item->id }}" data-bs-toggle="modal" data-bs-target="#modalEdit{{ $item->id }}">
<i class="bi bi-pencil-square"></i> <i class="bi bi-pencil-square"></i>
</a> </a>
<button type="button" class="btn btn-danger btn-sm btn-delete" data-id="{{ $item->id }}" data-nama="{{ $item->nama_pakaian }}"> <button type="button" class="btn btn-danger btn-sm btn-delete" data-id="{{ $item->id }}" data-nama="{{ $item->nama_pakaian }}">
@ -151,10 +151,6 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<!-- Pagination -->
<div class="d-flex justify-content-end">
{{ $alternatif->appends(request()->query())->links('vendor.pagination.bootstrap-5') }}
</div>
<!-- Modal Info --> <!-- Modal Info -->
@foreach ($alternatif as $item) @foreach ($alternatif as $item)

View File

@ -76,43 +76,48 @@
</div> </div>
<div class="row"> <div class="row">
@foreach ($kriterias as $kriteria) @foreach ($kriterias as $kriteria)
<div class="col-md-6 mb-3"> <div class="col-md-6 mb-3">
<label class="form-label fw-semibold">{{ $kriteria->nama_kriteria }}</label> <label class="form-label fw-semibold">{{ $kriteria->nama_kriteria }}</label>
@if(in_array($kriteria->nama_kriteria, ['Jenis Acara', 'Lokasi', 'Cuaca'])) @if(in_array($kriteria->id, $multiSelectKriteriaIds))
{{-- Checkbox group untuk multiple select --}} {{-- Multiple select: checkbox group --}}
<div class="checkbox-group d-flex flex-wrap gap-2"> <div class="checkbox-group d-flex flex-wrap gap-2">
@foreach ($kriteria->subKriteria as $subkriteria) @foreach ($kriteria->subKriteria as $subkriteria)
<div class="form-check"> <div class="form-check">
<input type="checkbox" <input
type="checkbox"
name="nilai[{{ $kriteria->id }}][]" name="nilai[{{ $kriteria->id }}][]"
value="{{ $subkriteria->id }}" value="{{ $subkriteria->id }}"
id="sub_{{ $kriteria->id }}_{{ $subkriteria->id }}" id="sub_{{ $kriteria->id }}_{{ $subkriteria->id }}"
class="form-check-input" class="form-check-input"
{{ (isset($nilai[$kriteria->id]) && in_array($subkriteria->id, (array) $nilai[$kriteria->id])) ? 'checked' : '' }}> {{ (isset($nilai[$kriteria->id]) && in_array($subkriteria->id, (array) $nilai[$kriteria->id])) ? 'checked' : '' }}
<label for="sub_{{ $kriteria->id }}_{{ $subkriteria->id }}" class="form-check-label cursor-pointer"> >
<label class="form-check-label" for="sub_{{ $kriteria->id }}_{{ $subkriteria->id }}">
{{ $subkriteria->nama_sub }} {{ $subkriteria->nama_sub }}
</label> </label>
</div> </div>
@endforeach @endforeach
</div> </div>
<small class="form-text text-muted">Pilih satu atau lebih</small> <small class="form-text text-muted">Pilih satu atau lebih</small>
@else
{{-- Dropdown biasa untuk single select --}} @else
<select class="form-control" name="nilai[{{ $kriteria->id }}]" required> {{-- Single select: dropdown --}}
<option value="">-- Pilih --</option> <select class="form-control" name="nilai[{{ $kriteria->id }}]" required>
@foreach ($kriteria->subKriteria as $subkriteria) <option value="">-- Pilih --</option>
<option value="{{ $subkriteria->id }}" @foreach ($kriteria->subKriteria as $subkriteria)
{{ isset($nilai[$kriteria->id]) && $nilai[$kriteria->id] == $subkriteria->id ? 'selected' : '' }}> <option
{{ $subkriteria->nama_sub }} value="{{ $subkriteria->id }}"
</option> {{ isset($nilai[$kriteria->id]) && $nilai[$kriteria->id] == $subkriteria->id ? 'selected' : '' }}
@endforeach >
</select> {{ $subkriteria->nama_sub }}
@endif </option>
</div> @endforeach
@endforeach </select>
</div> @endif
</div>
@endforeach
</div>
<button type="submit" class="btn" style="background-color: #064E3B; color: white;"> <button type="submit" class="btn" style="background-color: #064E3B; color: white;">
Simpan Simpan
</button> </button>

View File

@ -140,7 +140,7 @@
@endphp @endphp
<td class="text-center"> <td class="text-center">
@if (count($namaSubs)) @if (count($namaSubs))
@if ($kriteria->nama_kriteria === 'Jenis Acara') @if (in_array($kriteria->nama_kriteria, ['Jenis Acara', 'Lokasi Acara', 'Cuaca Acara']))
<div class="d-flex flex-wrap justify-content-center gap-2"> <div class="d-flex flex-wrap justify-content-center gap-2">
@foreach ($namaSubs as $nama) @foreach ($namaSubs as $nama)
<span class="rounded-pill px-3 py-1 bg-light border text-dark small shadow-sm"> <span class="rounded-pill px-3 py-1 bg-light border text-dark small shadow-sm">

View File

@ -21,7 +21,7 @@
</div> </div>
@endif @endif
<form action="{{ route('user.update', $user->id) }}" method="POST"> <form action="{{ route('admin.user.update', $user->id) }}" method="POST">
@csrf @csrf
@method('PUT') @method('PUT')
<div class="mb-3"> <div class="mb-3">
@ -47,7 +47,7 @@
<button type="submit" class="btn btn-success" style="background-color: #064e03; border-color: #064e03;"> <button type="submit" class="btn btn-success" style="background-color: #064e03; border-color: #064e03;">
Simpan Simpan
</button> </button>
<a href="{{ route('user.show', $user->id) }}" class="btn btn-success" style="background-color: #a6f4a3; border-color: #a6f4a3; color: #064e03;"> <a href="{{ route('admin.user.show', $user->id) }}" class="btn btn-success" style="background-color: #a6f4a3; border-color: #a6f4a3; color: #064e03;">
Kembali Kembali
</a> </a>
</form> </form>

View File

@ -36,7 +36,7 @@
</table> </table>
<div class="mt-4 text-end"> <div class="mt-4 text-end">
<a href="{{ route('user.edit', $user->id) }}" class="btn" style="background-color: #064e03; color: white;"> <a href="{{ route('admin.user.edit', $user->id) }}" class="btn" style="background-color: #064e03; color: white;">
<i class="bi bi-pencil-square"></i> Edit Profil <i class="bi bi-pencil-square"></i> Edit Profil
</a> </a>
</div> </div>

View File

@ -2,11 +2,13 @@
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
use App\Http\Controllers\PakaianController; use App\Http\Controllers\PakaianController;
use App\Http\Controllers\KriteriaController; use App\Http\Controllers\KriteriaController;
use App\Http\Controllers\PenilaianController; use App\Http\Controllers\PenilaianController;
use App\Http\Controllers\Admin\AuthController; use App\Http\Controllers\Admin\AuthController;
use App\Http\Controllers\SubKriteriaController; use App\Http\Controllers\SubKriteriaController;
use App\Http\Controllers\Admin\RiwayatController;
use App\Http\Controllers\Admin\DashboardController; use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\SubKriteriaShowController; use App\Http\Controllers\SubKriteriaShowController;
use App\Http\Controllers\Landingpage\HomeController; use App\Http\Controllers\Landingpage\HomeController;
@ -67,8 +69,11 @@ Route::prefix('admin')->middleware(['auth'])->as('admin.')->group(function () {
Route::resource('pakaian', PakaianController::class); Route::resource('pakaian', PakaianController::class);
Route::resource('penilaian', PenilaianController::class); Route::resource('penilaian', PenilaianController::class);
Route::resource('user', UserController::class);
}); });
Route::get('riwayat', [RiwayatController::class, 'index'])->name('riwayat.index');
// // Kriteria // // Kriteria
// Route::get('/kriteria', [DataKriteriaController::class, 'indexPage'])->name('admin.kriteria.index'); // Route::get('/kriteria', [DataKriteriaController::class, 'indexPage'])->name('admin.kriteria.index');
// Route::get('/kriteria/create', [DataKriteriaController::class, 'create'])->name('admin.kriteria.create'); // Route::get('/kriteria/create', [DataKriteriaController::class, 'create'])->name('admin.kriteria.create');