Portal Berita

Spesifikasi

Buat sebuah aplikasi untuk mengelola website berita, semacam detik.com versi sederhana.

Aktor

Aplikasi ini akan melibatkan empat aktor:

  1. Admin
  2. Writer
  3. Member
  4. Guest

User Story

Secara umum, user story yang bisa dilakukan oleh masing-masing aktor antara lain:

  1. Writer bisa melakukan CRUD konten berita
  2. Admin bisa memoderasi komentar
  3. Admin bisa memoderasi Member dan Writer yang terdaftar
  4. Admin bisa melihat dashboard untuk mendapatkan summary dan statistik aplikasi
  5. Writer bisa melihat dashboard untuk melihat statistik terkait berita
  6. Guest bisa menelusuri dan membaca berita, termasuk:
    1. Melakukan pencarian judul dan konten berita berdasar keyword tertentu
    2. Memfilter berita berdasar topik tertentu
    3. Membaca komentar
  7. Guest bisa melakukan pendaftaran, termasuk:
    1. Verifikasi email
    2. Otentikasi (login, logout)
    3. Lupas password
  8. Member bisa mengedit profilnya sendiri
  9. Member bisa menambah, mengedit, dan menghapus komentarnya sendiri

Konsep Teknis

Model

  1. User
  2. Post
  3. Topic
  4. Comment

Relationship

  1. Member is-a User
  2. Writer is-a Member
  3. Writer has many Post
  4. Member has many Comment
  5. Post belongs to Topic
  6. Post belongs to Writer
  7. Comment belongs to Member

Spesifikasi Kode

  1. Admin panel menggunakan Laravolt
  2. Tampilan website untuk pengunjung dibuat menggunakan TailwindCSS
  3. CRUD Post dan Topic dibuat dengan AutoCRUD
  4. Chart untuk halaman dashboard dibuat dengan Laravolt Chart

Mission

🚲 Level 1

  1. Kerjakan sesuai minimum requirements di atas
  2. Tambahkan seeder untuk mengisi data awal sebanyak 1000 berita dengan masing-masing memiliki 100 komentar
  3. Lengkapi readme.md dengan petunjuk setup aplikasi pertama kali
  4. Beri nama aplikasi sesuai pilihan Anda, lalu push source code ke GitHub
  5. Deploy aplikasi ke heroku

🛵 Level 2

  1. Admin bisa mengekspor berita dan komentar dalam format Excel
  2. Admin bisa memfilter data yang ditampilkan di dashboard berdasar periode tertentu (tanggal awal - tanggal akhir)
  3. Writer hanya bisa mengelola berita miliknya sendiri
  4. Writer mendapat email notifikasi jika ada komentar baru di berita yang ditulisnya

🚗 Level 3

  1. Admin bisa mengatur beberapa setting terkait website melalui admin panel:
    1. Nama dan deskripsi website
    2. Logo dan favicon
    3. Script google analytics
  2. 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.
  3. Admin bisa melihat traffic pengunjung website melaui dashboard aplikasi, memanfaatkan library https://github.com/spatie/laravel-analytics.

🏎️ Level 4

  1. Source code aplikasi lolos PHPStan level 9
  2. Integration test
  3. Nilai Pagespeed Insight untuk website di atas 90

Demo

TBD