Study
Phoenix

Tugas Akhir

Penjelasan

Tugas akhir ini menggabungkan seluruh topik yang sudah dipelajari: routing, Ecto schema dan changeset, context module, LiveView dengan form real-time, PubSub untuk notifikasi, dan autentikasi dasar. Tujuannya membangun mini aplikasi blog di mana user yang login bisa membuat artikel baru, dan daftar artikel ter-update secara real-time ke semua user yang sedang membuka halaman daftar tanpa reload. Kerjakan bertahap: mulai dari schema dan migration Artikel, lalu context Content dengan fungsi CRUD dasar, lalu LiveView ArtikelLive.Index yang menampilkan daftar dan subscribe ke topic artikel:baru, dan terakhir LiveView ArtikelLive.New dengan form yang setelah berhasil submit melakukan broadcast ke topic tersebut.

Tugas

Bangun fitur berikut di project blog_app: (1) schema & migration Artikel dengan judul dan isi, (2) context Content dengan list_artikel/0 dan create_artikel/1 memakai changeset, (3) LiveView ArtikelLive.Index yang subscribe ke topic "artikel:baru" dan menampilkan daftar artikel real-time, (4) LiveView ArtikelLive.New dengan form phx-change/phx-submit yang setelah create_artikel berhasil melakukan Phoenix.PubSub.broadcast ke topic "artikel:baru", (5) proteksi route /artikel/baru dengan require_authenticated_user hasil phx.gen.auth.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Kerjakan dan test tiap lapisan secara terpisah: pastikan context lulus test ExUnit dulu sebelum menyambungkannya ke LiveView, ini memudahkan mencari sumber bug.