Portal Berita
Spesifikasi
Buat sebuah aplikasi untuk mengelola website berita, semacam detik.com versi sederhana.
Aktor
Aplikasi ini akan melibatkan empat aktor:
- Admin
- Writer
- Member
- Guest
User Story
Secara umum, user story yang bisa dilakukan oleh masing-masing aktor antara lain:
- Writer bisa melakukan CRUD konten berita
- Admin bisa memoderasi komentar
- Admin bisa memoderasi Member dan Writer yang terdaftar
- Admin bisa melihat dashboard untuk mendapatkan summary dan statistik aplikasi
- Writer bisa melihat dashboard untuk melihat statistik terkait berita
- Guest bisa menelusuri dan membaca berita, termasuk:
- Melakukan pencarian judul dan konten berita berdasar keyword tertentu
- Memfilter berita berdasar topik tertentu
- Membaca komentar
- Guest bisa melakukan pendaftaran, termasuk:
- Verifikasi email
- Otentikasi (login, logout)
- Lupas password
- Member bisa mengedit profilnya sendiri
- Member bisa menambah, mengedit, dan menghapus komentarnya sendiri
Konsep Teknis
Model
- User
- Post
- Topic
- Comment
Relationship
- Member is-a User
- Writer is-a Member
- Writer has many Post
- Member has many Comment
- Post belongs to Topic
- Post belongs to Writer
- Comment belongs to Member
Spesifikasi Kode
- Admin panel menggunakan Laravolt
- Tampilan website untuk pengunjung dibuat menggunakan TailwindCSS
- CRUD Post dan Topic dibuat dengan AutoCRUD
- Chart untuk halaman dashboard dibuat dengan Laravolt Chart
Mission
🚲 Level 1
- Kerjakan sesuai minimum requirements di atas
- Tambahkan seeder untuk mengisi data awal sebanyak 1000 berita dengan masing-masing memiliki 100 komentar
- Lengkapi readme.md dengan petunjuk setup aplikasi pertama kali
- Beri nama aplikasi sesuai pilihan Anda, lalu push source code ke GitHub
- Deploy aplikasi ke heroku
🛵 Level 2
- Admin bisa mengekspor berita dan komentar dalam format Excel
- Admin bisa memfilter data yang ditampilkan di dashboard berdasar periode tertentu (tanggal awal - tanggal akhir)
- Writer hanya bisa mengelola berita miliknya sendiri
- Writer mendapat email notifikasi jika ada komentar baru di berita yang ditulisnya
🚗 Level 3
- Admin bisa mengatur beberapa setting terkait website melalui admin panel:
- Nama dan deskripsi website
- Logo dan favicon
- Script google analytics
- Buat 1 tema tambahan untuk website dan bisa diubah oleh Admin melalui admin panel. Multi theme bisa menggunakan library https://github.com/qirolab/laravel-themer.
- Admin bisa melihat traffic pengunjung website melaui dashboard aplikasi, memanfaatkan library https://github.com/spatie/laravel-analytics.
🏎️ Level 4
- Source code aplikasi lolos PHPStan level 9
- Integration test
- Nilai Pagespeed Insight untuk website di atas 90
Demo
TBD