Yesod
Instalasi & Scaffolding (stack new)
Menyiapkan tool Stack dan membuat project Yesod baru dari template scaffolding.
Struktur Project (Routes, Foundation, Handler)
Memahami tata letak file config/routes, Foundation.hs, dan folder Handler pada project Yesod.
Type-Safe Routing (File Routes + Dispatch)
Memahami bagaimana Yesod menghasilkan route type-safe dari file config/routes.
Handler Function & Respond
Menulis fungsi handler dan berbagai cara mengembalikan response dari Handler monad.
Widget & Hamlet Template
Menyusun tampilan reusable memakai sistem Widget dan template Hamlet, Lucius, Julius.
Persistent Entity Definition
Mendefinisikan model data lewat quasi-quotation Persistent di config/models.
Persistent Query Dasar
Melakukan operasi CRUD dasar ke database memakai fungsi Persistent seperti selectList, insert, dan get.
Form Handling (yesod-form)
Membuat dan memproses form type-safe memakai library yesod-form.
Session & Autentikasi Dasar
Menyimpan data session dan menerapkan autentikasi login memakai yesod-auth.
JSON API dengan Yesod
Membangun endpoint JSON memakai instance ToJSON/FromJSON dan returnJson.
Static File & Subsite
Melayani file statis dan memahami konsep subsite untuk modul aplikasi yang bisa dipakai ulang.
Middleware Dasar
Menyisipkan logic yang berjalan di setiap request lewat yesodMiddleware.
Error Handling (Handler Exceptions)
Menangani error dan exception di handler memakai notFound, permissionDenied, dan errorHandler custom.
Database Migration Persistent
Memahami migrasi otomatis Persistent dan strategi migrasi manual untuk perubahan skema.
Testing Dasar (Yesod Test)
Menulis test integrasi untuk handler memakai library yesod-test.
Routing dengan Parameter
Menangkap parameter dinamis dari URL dengan tipe yang divalidasi otomatis oleh Yesod.
RESTful Resource Pattern
Menyusun route dan handler mengikuti konvensi REST (index, show, create, update, delete) di Yesod.
Konfigurasi & Environment
Mengelola pengaturan aplikasi lewat config/settings.yml dan environment variable untuk tiap environment.
Tugas Akhir
Membangun aplikasi mini blog dengan Yesod yang menggabungkan Persistent, form, autentikasi, dan JSON API.