Saya akan memecah proses ini menjadi beberapa bagian, dimulai dengan fondasi proyek: inisialisasi Laravel, instalasi frontend assets, dan pembuatan database migrations.
Tahap 1: Inisialisasi Proyek & Migrasi Database
Pada tahap ini, kita akan menyiapkan proyek Laravel, menginstal Bootstrap dan jQuery, serta membuat semua migrations untuk skema database yang telah kita rancang.
1.1. Inisialisasi Proyek Laravel & Instalasi Frontend
Pertama, kita akan membuat proyek Laravel baru dan menginstal dependensi frontend yang diperlukan.
Langkah-langkah Inisialisasi Proyek Laravel
14 Jul, 17.50
Buka
1.2. Database Migrations
Sekarang, mari kita buat migrations untuk semua tabel yang telah kita rancang. Saya akan menyediakan kode untuk setiap migration secara berurutan, karena urutan migration penting untuk foreign keys.
Migrasi Tabel Users dan Autentikasi
14 Jul, 17.50
Buka https://g.co/gemini/share/f55896bd9d9c
https://gist.github.com/hidjrahs/e04a838580f163f5a775386d8e457a1e
Migrasi Tabel File Manager dan Lokasi
14 Jul, 17.50
Buka https://g.co/gemini/share/b19737e58bce
https://gist.github.com/hidjrahs/416dd7badec791d7e706e1fa34951b14
Migrasi Tabel Produk dan Kategori
14 Jul, 17.50
Buka https://g.co/gemini/share/1526afd9e956
https://gist.github.com/hidjrahs/9100abddaa5fbb0a31818c3618427b6f
Migrasi Tabel Pesanan, Pembayaran, Pengiriman, Ulasan, Komisi, dan Voucher
14 Jul, 17.50
Buka https://g.co/gemini/share/3ced6c7c38a2
https://gist.github.com/hidjrahs/fd70ed71abc2e9b7d0ac3bdb00d144ed
Setelah Anda membuat semua file migration ini (Anda perlu membuat file baru untuk setiap bagian, misalnya php artisan make:migration add_roles_to_users_table, php artisan make:migration create_files_table, dst.), pastikan urutannya benar (tabel yang direferensikan harus dibuat terlebih dahulu).
Anda bisa menjalankan semua migrasi dengan:
Bash
php artisan migrate
Ini akan membuat semua tabel di database Anda sesuai dengan rancangan.
Tahap 2: Eloquent Models
Selanjutnya, kita akan membuat model Eloquent untuk setiap tabel dan mendefinisikan relasi antar model. Ini akan memungkinkan kita berinteraksi dengan database secara object-oriented.
Model Eloquent
15 Jul, 08.04
Buka https://g.co/gemini/share/aa27536faf8a
https://gist.github.com/hidjrahs/aa6d6e04e337f61f15a52e5c0effc3a2
Catatan: Beberapa model di atas merujuk ke Enums (misalnya UserRoleEnum, PaymentStatusEnum). Ini adalah praktik baik di Laravel 9+ untuk mengelola nilai-nilai tetap. Anda perlu membuat file-file Enum ini di direktori app/Enums. Contoh:
Contoh Enums
15 Jul, 10.10
Buka https://g.co/gemini/share/d72f6621bc4d
https://gist.github.com/hidjrahs/41efe3373a86735e0426b5d4c990d08f
Tahap 3: Autentikasi & Otorisasi
Laravel Breeze sudah menyediakan dasar autentikasi. Kita akan memodifikasinya untuk mendukung peran (role) dan integrasi Socialite.
3.1. Modifikasi Redirect Setelah Login Berdasarkan Peran
Anda bisa memodifikasi app/Providers/RouteServiceProvider.php untuk mengarahkan pengguna ke dashboard yang berbeda setelah login.
Modifikasi Redirect Login (RouteServiceProvider)
14 Jul, 17.50
Buka https://g.co/gemini/share/ff72dc60019f
https://gist.github.com/hidjrahs/8c27633db6690b2b08077c3b637dfbbc
Kemudian, di app/Http/Middleware/RedirectIfAuthenticated.php, Anda akan mengubah baris return redirect(RouteServiceProvider::HOME); menjadi:
Modifikasi RedirectIfAuthenticated Middleware
14 Jul, 17.50
Buka https://g.co/gemini/share/7799a4d672e7
https://gist.github.com/hidjrahs/e6cdd86695d3caa689edfce1b08b433c
3.2. Implementasi Middleware Peran (Role Middleware)
Kita akan membuat middleware sederhana untuk melindungi rute berdasarkan peran.
Middleware Role
14 Jul, 17.50
Buka https://g.co/gemini/share/c93bc1ad5947
https://gist.github.com/hidjrahs/398fc26d4967a5016299a62d37a0fc14
Daftarkan middleware ini di app/Http/Kernel.php:
0
3.3. Integrasi Laravel Socialite
- Instal Socialite:
Bash
composer require laravel/socialite - Konfigurasi Layanan:
Tambahkan konfigurasi untuk Google dan Facebook di config/services.php:
1
Tambahkan detail ini ke file .env Anda (Anda harus mendapatkan kredensial ini dari Google Developer Console dan Facebook Developer Dashboard):
Cuplikan kode
# Google
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URI=”${APP_URL}/auth/google/callback”
# Facebook
FACEBOOK_CLIENT_ID=your_facebook_client_id
FACEBOOK_CLIENT_SECRET=your_facebook_client_secret
FACEBOOK_REDIRECT_URI=”${APP_URL}/auth/facebook/callback”
- Buat Controller Socialite:
2
- Definisikan Rute Socialite:
Tambahkan rute ini di routes/web.php:
3
- Tambahkan Tombol Socialite di Tampilan Login:
Edit resources/views/auth/login.blade.php untuk menambahkan tombol login Socialite.
4
Tahap 4: Admin Panel (Dasar)
Kita akan membuat dashboard admin sederhana dan fungsionalitas untuk mengaktifkan/menonaktifkan pengguna.
4.1. Tampilan Dashboard Admin
Buat file resources/views/admin/dashboard.blade.php:
5
4.2. Manajemen Pengguna (Admin)
- Controller Pengguna Admin:
Bash
php artisan make:controller Admin/UserController
6
- Rute Pengguna Admin:
Tambahkan rute ini di routes/web.php di dalam grup admin middleware:
7
- Tampilan Daftar Pengguna Admin:
Buat file resources/views/admin/users/index.blade.php:
8
- Tampilan Edit Pengguna Admin:
Buat file resources/views/admin/users/edit.blade.php:
9
Ini adalah langkah-langkah awal yang krusial. Anda telah menyiapkan proyek Laravel, semua tabel database, model Eloquent, sistem autentikasi dasar dengan peran, dan panel admin sederhana untuk manajemen pengguna.
Langkah Selanjutnya:
- Jalankan php artisan migrate untuk membuat tabel.
- Buat Enums yang direferensikan oleh model.
- Akses aplikasi di browser Anda, daftar user baru, dan ubah peran mereka secara manual di database menjadi ‘admin’ untuk mencoba panel admin.
Di tahap selanjutnya, kita akan fokus pada File Manager dan Manajemen Lokasi (Desa/Dusun). Apakah Anda siap untuk melanjutkan?
