Skip to content

Penambahan fitur Log Aktivitas - #1708

Merged
analisopendesa merged 5 commits into
rilis-devfrom
fitur/001-log-aktivitas
Aug 18, 2026
Merged

Penambahan fitur Log Aktivitas#1708
analisopendesa merged 5 commits into
rilis-devfrom
fitur/001-log-aktivitas

Conversation

@pandigresik

@pandigresik pandigresik commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Pull Request: Feat: Tambah fitur Log Aktivitas

Description

Penambahan fitur pencatatan aktivitas (audit trail) menggunakan spatie/laravel-activitylog untuk mencatat perubahan penting pada model aplikasi seperti Data Umum, Profil, Komplain, Setting Aplikasi, dan User. Fitur ini juga menyediakan halaman admin untuk melihat dan memfilter log aktivitas yang tercatat.

Changes made:

  1. Added: app/Services/ActivityLogService.php — Service layer untuk logging aktivitas dengan pengecekan ketersediaan tabel activity_log
  2. Added: app/Observers/DataUmumObserver.php — Observer untuk mencatat perubahan model DataUmum
  3. Added: app/Observers/KomplainObserver.php — Observer untuk mencatat perubahan model Komplain
  4. Added: app/Observers/ProfilObserver.php — Observer untuk mencatat perubahan model Profil
  5. Added: app/Observers/SettingAplikasiObserver.php — Observer untuk mencatat perubahan model SettingAplikasi
  6. Modified: app/Observers/UserObserver.php — Menambahkan logging aktivitas pada event observer User
  7. Modified: app/Models/DataUmum.php, Komplain.php, Profil.php, SettingAplikasi.php, User.php — Mendaftarkan observer model
  8. Modified: app/Providers/AppServiceProvider.php — Menambahkan event listener untuk auto-log login, logout, dan failed login
  9. Added: app/Http/Livewire/Pengaturan/LogAktivitasTable.php — Livewire component untuk menampilkan log aktivitas dengan filter
  10. Added: app/Http/Controllers/Setting/LogAktivitasController.php — Controller untuk menampilkan halaman log aktivitas
  11. Added: resources/views/livewire/pengaturan/log-aktivitas-table.blade.php — Blade template untuk tabel log aktivitas
  12. Added: resources/views/setting/log-aktivitas/index.blade.php — Blade template halaman log aktivitas
  13. Added: database/migrations/2026_08_14_104239_create_activity_log_table.php — Migrasi tabel activity_log
  14. Added: config/activitylog.php — Konfigurasi spatie/laravel-activitylog
  15. Modified: routes/web.php — Menambahkan route untuk halaman log aktivitas
  16. Modified: composer.json / composer.lock — Menambahkan dependency spatie/laravel-activitylog
  17. Modified: database/seeders/RoleSpatieSeeder.php — Menambahkan permission untuk akses log aktivitas
  18. Modified: resources/views/layouts/dashboard_template.blade.php — Menambahkan menu navigasi log aktivitas
  19. Added: tests/Feature/Audit/AuditTrailTest.php — Test fitur audit trail
  20. Added: tests/Feature/Livewire/LogAktivitasTableTest.php — Test Livewire component log aktivitas
  21. Added: tests/Unit/Services/ActivityLogServiceTest.php — Test unit ActivityLogService

Reason for change:

  • Aktivitas penting perlu tercatat: Perubahan data desa, profil, komplain, setting, dan user perlu memiliki jejak audit untuk keperluan tracking dan compliance
  • Login/logout tracking: Perlu mencatat siapa yang login, logout, dan percobaan login yang gagal untuk keamanan
  • UI akses log: Admin perlu dapat melihat dan memfilter log aktivitas melalui antarmuka yang sederhana
  • Solusi error migrasi: Aktivitas log dilengkapi pengecekan ketersediaan tabel agar tidak menyebabkan error saat migrasi awal/testing

Impact of change:

Audit trail lengkap: Semua perubahan penting pada model penting tercatat dengan detail perubahan
Keamanan: Login, logout, dan failed login tercatat untuk monitoring
UI admin: Admin dapat melihat log aktivitas dengan filter tanggal, user, event, dan keyword
Test coverage: Fitur dilengkapi unit test, feature test, dan Livewire test
Tidak memutus migrasi: Pengecekan Schema::hasTable() memastikan migrasi tidak error saat tabel belum ada

Related Issue

  • Solution for fitur log aktivitas related to issue #1324

Steps to Reproduce

Before (problem):

  1. Tidak ada mekanisme pencatatan perubahan pada model penting
  2. Tidak ada tracking login/logout user
  3. Tidak ada antarmuka untuk melihat log aktivitas

After (solution):

  1. Setiap perubahan pada model DataDesa, Profil, Komplain, SettingAplikasi, dan User tercatat di tabel activity_log
  2. Login, logout, dan failed login otomatis tercatat
  3. Admin dapat mengakses halaman Log Aktivitas untuk melihat dan memfilter data

Checklist

  • I have complied with script writing rules
  • I have followed pull request review process
  • I have created unit test/integration test to verify the fix
  • Manual testing has been done in development environment
  • No console errors or warnings
  • Code has been reviewed by at least 1 person

Technical Details

Technical Explanation

Fitur ini menggunakan package spatie/laravel-activitylog untuk mencatat aktivitas. Setiap model yang diinginkan memiliki observer yang mendaftarkan perubahan via ActivityLogService. Event listener di AppServiceProvider menangkap event login/logout/failed login secara otomatis.

Komponen Livewire LogAktivitasTable menyediakan antarmuka filter dan tabel log dengan pagination. Service ActivityLogService menangani pengecekan ketersediaan tabel activity_log menggunakan static flag + Schema::hasTable() agar tidak memicu error saat migrasi/testing.

Configuration changes

  • config/activitylog.php ditambahkan untuk mengonfigurasi package activity log
  • ACTIVITYLOG_ENABLED environment variable dapat digunakan untuk mengontrol apakah logging aktif

Dependencies added

  • spatie/laravel-activitylog: ^4.8

Testing

Manual Testing

  • Login sebagai admin dan akses menu Log Aktivitas
  • Verifikasi login/logout tercatat di log
  • Modifikasi data desa/profil/komplain/setting dan verifikasi tercatat
  • Coba filter log berdasarkan tanggal, user, event, dan keyword
  • Jalankan php artisan migrate pada fresh database untuk pastikan tidak error
  • Jalankan php artisan test untuk pastikan semua test lulus

Automated Testing

  • Unit Test: ActivityLogServiceTest (12 test cases)
  • Feature Test: AuditTrailTest (10 test cases)
  • Livewire Test: LogAktivitasTableTest (5 test cases)

Scrennshots

image

Breaking Changes

Tidak ada breaking changes. Package baru ditambahkan dan tabel baru dibuat melalui migrasi.

Migration Guide

Tidak diperlukan migrasi manual. Cukup jalankan php artisan migrate untuk membuat tabel activity_log.

References

@github-actions

Copy link
Copy Markdown
Contributor

🔄 AI PR Review sedang antri di server...

Proses review akan segera dimulai di background — hasil akan muncul sebagai komentar setelah selesai.
Powered by CrewAI · PR #1708

@pandigresik
pandigresik force-pushed the fitur/001-log-aktivitas branch from b855427 to 3bc47ed Compare August 17, 2026 23:56
@analisopendesa
analisopendesa merged commit 8db4a34 into rilis-dev Aug 18, 2026
@analisopendesa
analisopendesa deleted the fitur/001-log-aktivitas branch August 18, 2026 06:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants