Skip to content

suryasamade/bulletin-challenge-laravel

Repository files navigation

TIMEDOOR TRAINING CHALLENGE PROGRAM - LARAVEL

FEATURE

  • Login
  • Register
  • Attach files (image)

REVISION

1

  • Simpan image ke dalam database cukup nama file-nya saja, tidak perlu nama direktori-nya ✔️
  • Bisa edit post yang tidak ada password nya dari post lain dengan ganti id nya di inspect element, cek delete nya juga. Perbaiki validasi. ✔️
  • Enter di dalam textarea harus terbaca dan tersimpan di database sebagai baris baru ✔️
  • Tampilkan pesan error pada saat password tidak valid ✔️
  • Gunakan default picture pada form edit, jika bulletin tidak memiliki picture ✔️
  • Tambahkan validasi password (bukan penggantian password) pada saat akan submit pada form edit ✔️
  • Pada register confirmation, tampilkan plain password bukan hasil hashing ✔️
  • User yang belum verified tidak dapat melakukan post bulletin ✔️
  • Jangan tampilkan input password pada form edit jika user sudah login (+verified) ✔️

2

  • Login user validation agar tidak bisa melakukan update/delete message user lain (dari inspect element) ✔️
  • Gunakan html5 standart structure ✔️
  • Rapikan atribute html pada blade ✔️
  • is_null() vs isset() ✔️

3

  • Data yang dapat dikirim dari controller jangan ditempatkan di blade ✔️
  • Elemen hasil foreach() lebih mudah dibaca dan lebih efisien jika langsung digunakan tanpa disimpan ke variable ✔️
  • Jangan mengulang banyak kode (tag html) pada blade, manfaatkan pengkondisian ✔️

4

  • Jangan append nama path image dengan string di blade ✔️
  • Jangan explode DateTime pada field created_at, gunakan DateTime format ✔️
  • Gunakan method hasFile() agar safety jika seandainya file tidak ada ✔️
  • Tahun copyright dengan function date('Y') ✔️
  • Efisiensi penggunaan query pada model ✔️
  • Gunakan hasFile() untuk mengecek apakah input memiliki file ✔️
  • Jangan assign FK (Foreign Key) secara hardcode, gunakan method associate() ✔️
  • Gunakan method destroy() untuk delete model berdasarkan id, dan delete image jadikan method deleteImages() --- DRY ✔️
  • Berikan action error response AJAX ✔️
  • Sederhanakan validasi isMember ✔️
  • Operator == dijadikan === ✔️
  • Penamaan variable buat lebih jelas/eksplisit, seperti $emailVerifiedNull jadi $isEmailVerified ✔️

5

  • Bedakan controller login member dan admin ✔️
  • Perbaiki flow AJAX validasi password ✔️
  • Bedakan routes member (web) dan admin - (RouteServiceProvider.php) ✔️
  • Terapkan Route::resources ✔️
  • Coba terapkan authentication dengan Laravel Breeze