Tools yang dibutuhkan:
- Apache + PHP (disediakan oleh XAMPP)
- MySQL/MariaDB (disediakan oleh XAMPP)
- phpMyAdmin (disediakan oleh XAMPP)
- Git (harap menginstall sendiri)
- Pelajari Git dan command line terlebih dahulu
- Masuk ke dalam folder htdocs pada XAMPP
- Clone repository ini dengan Git sehingga terdapat folder pemweb-cuti di dalam htdocs anda
- Pastikan service MySQL atau MariaDB berjalan pada XAMPP
- Buka phpMyAdmin melalui XAMPP control panel (mengklik tombol Admin pada service MySQL/MariaDB)
- Buat database baru: pemweb_cuti
- Lanjutkan ke step 3 (bawah) untuk melakukan migration
- Buka terminal atau command prompt
- Jalankan perintah
composer update
(harus ada koneksi internet terlebih dahulu) - Buat file .env dari template .env.example dan ubah kredensial database pada file .env sesuai dengan keadaan server masing-masing
- Jalankan perintah
php artisan key:generate --ansi
- Jalankan perintah
php artisan migrate:fresh --seed
- Jalankan perintah
php artisan serve
dan kunjungi URL nya
Ikuti panduan berikut supaya code yang dihasilkan dapat dimaintain dengan mudah dan bisa selaras satu sama lain. Jangan memodifikasi code di luar controller/view yang menjadi jatah/bagian masing-masing. Jika ingin request library atau function di luar controller untuk membantu kalian memudahkan pengerjaan, bisa beritahu miko supaya dibuatkan function/library tersebut.
Buatlah method pada controller yang wajib diperlukan pada routes/web.php sesuai dengan bagiannya masing-masing. Semua controller sudah disediakan, tinggal menambah method-methodnya sesuai pada argumen pada file routes.
Model sudah terdefinisi dan dihandle oleh miko, termasuk relationship-relationshipnya. Tinggal pakai saja. Diharapkan untuk menggunakan fitur relationship untuk mendapatkan data dari tabel lain (gunakan eager loading dengan with apabila perlu untuk meningkatkan performa). Apabila tidak bisa menggunakan relationship, maka bisa menggunakan join pada query builder. Tetapi diutamakan untuk menggunakan relationship.
Untuk keseluruhan query basic (CRUD) juga wajib menggunakan model ORM, jangan query builder.
Untuk melakukan redirection, selalu gunakan named route jangan URL. Sebagai contoh:
// BENAR:
return redirect()->route('some.route');
return redirect()->route('some.route', ['param' => 'value']);
// SALAH:
return redirect('/some/route');
Begitu juga apabila menggunakan link:
<!-- BENAR: -->
<a href="{{ route('some.route') }}"></a>
<!-- SALAH: -->
<a href="{{ url('/some/route') }}">Link</a>
<a href="/some/route">Link</a>
Referensi mengenai named route terdapat pada file routes/web.php. Lapor ke miko apabila terdapat route yang belum terdefinisi sebagai named route.
Berikan flash data pada session saat akan redirect ke halaman tertentu. Untuk status bahwa sebuah tindakan berhasil dilakukan, flash dengan nilai status. Untuk error bahwa tindakan gagal dilakukan, flash dengan bantuan withErrors dan key error. Berikut adalah contohnya:
return redirect()->route('some.route')->with('status', 'Berhasil menyimpan data');
return redirect()->route('some.route')->withErrors(['error' => 'Gagal menyimpan data']);
NOTE : Beri code "use Illuminate\Support\Facades\Auth;" terlebih dahulu supaya code berikut dapat dijalankan
Untuk mendapatkan ID dari admin atau pegawai yang terlogin, gunakan sintaks berikut (contoh):
// ID admin
$idAdmin = Auth::guard('admin')->id();
// ID pegawai
$idPegawai = Auth::guard('pegawai')->id();
Untuk mendapatkan object/data dari admin atau pegawai yang terlogin, gunakan sintaks berikut (contoh):
// Data admin (dalam bentuk model ORM)
$admin = Auth::guard('admin')->user();
echo 'Hello, '.$admin->nama;
// Data pegawai (dalam bentuk model ORM)
$pegawai = Auth::guard('pegawai')->user();
echo 'Hello, '.$pegawai->nama;
Jika terdapat suatu bug atau kendala (misal bug pada model, atau bug pada middleware, atau method yang kalian bikin gak work, dll), lapor ke miko biar langsung diperbaiki dan diselesaikan supaya tidak mengganggu pekerjaan kalian.
Proses development selebihnya akan dikoordinasi melalui group WhatsApp.
Untuk melakukan testing sebagai admin, gunakan kredensial berikut:
- E-mail: root@localhost.localdomain
- Password: root
- Kemudian masuk ke /admin/login
Untuk melakukan testing sebagai pegawai, gunakan kredensial berikut:
- Lihat pada file seeder (database/seeders/DatabaseSeeder.php) untuk daftar pegawai selengkapnya
- NIK: (autogenerate, dapat melihat database)
- Password: (bisa melihat pada seeder)
- Kemudian masuk ke /pegawai/login