Tugas 4: Pengimplementasian Form dan Autentikasi Menggunakan Django
Pemrograman Berbasis Platform (CSGE602022) - diselenggarakan oleh Fakultas Ilmu Komputer Universitas Indonesia, Semester Ganjil 2022/2023
Deskripsi Tugas
Pada tugas ini, kamu akan mengimplementasikan elemen <form>
, konsep autentikasi, dan beberapa hal yang sudah kamu pelajari selama tutorial lab.
Checklist untuk tugas ini adalah sebagai berikut:
Membuat suatu aplikasi baru bernama
todolist
di proyek tugas Django yang sudah digunakan sebelumnya.Menambahkan path
todolist
sehingga pengguna dapat mengakses http://localhost:8000/todolist.Membuat sebuah model
Task
yang memiliki atribut sebagai berikut:user
untuk menghubungkan task dengan pengguna yang membuat task tersebut.Kamu dapat menggunakan tipe model
models.ForeignKey
dengan parameterUser
.Untuk mempelajari lebih lanjut mengenai
ForeignKey
pada Django, silakan baca dokumentasi Django (atau silakan klik disini).Untuk mempelajari lebih lanjut mengenai model
User
pada Django, silakan klik disini.date
untuk mendeskripsikan tanggal pembuatan task.title
untuk mendeskripsikan judul task.description
untuk mendeskripsikan deskripsi task.
Mengimplementasikan form registrasi, login, dan logout agar pengguna dapat menggunakan
todolist
dengan baik.Membuat halaman utama
todolist
yang memuat username pengguna, tombolTambah Task Baru
, tombol logout, serta tabel berisi tanggal pembuatan task, judul task, dan deskripsi task.Membuat halaman form untuk pembuatan task. Data yang perlu dimasukkan pengguna hanyalah judul task dan deskripsi task.
Dokumentasi Django mengenai
Form
dapat kamu baca disini.Membuat routing sehingga beberapa fungsi dapat diakses melalui URL berikut:
- http://localhost:8000/todolist berisi halaman utama yang memuat tabel task.
- http://localhost:8000/todolist/login berisi form login.
- http://localhost:8000/todolist/register berisi form registrasi akun.
- http://localhost:8000/todolist/create-task berisi form pembuatan task.
- http://localhost:8000/todolist/logout berisi mekanisme logout.
Melakukan deployment ke Heroku terhadap aplikasi yang sudah kamu buat sehingga nantinya dapat diakses oleh teman-temanmu melalui Internet.
Membuat dua akun pengguna dan tiga dummy data menggunakan model
Task
pada akun masing-masing di situs web Heroku.Membuat sebuah
README.md
pada foldertodolist
yang berisi tautan menuju aplikasi Heroku yang sudah kamu deploy serta jawaban dari beberapa pertanyaan berikut:- Apa kegunaan
{% csrf_token %}
pada elemen<form>
? Apa yang terjadi apabila tidak ada potongan kode tersebut pada elemen<form>
? - Apakah kita dapat membuat elemen
<form>
secara manual (tanpa menggunakan generator seperti{{ form.as_table }}
)? Jelaskan secara gambaran besar bagaimana cara membuat<form>
secara manual. - Jelaskan proses alur data dari submisi yang dilakukan oleh pengguna melalui HTML form, penyimpanan data pada database, hingga munculnya data yang telah disimpan pada template HTML.
- Jelaskan bagaimana cara kamu mengimplementasikan checklist di atas.
- Apa kegunaan
Tenggat Waktu Pengerjaan
Tenggat waktu pengerjaan Tugas 4:
29 September 2022 05.00.00 UTC (0 days 0 hours 0 minutes 0 seconds left)
Asisten dosen akan mengecek last commit dari repositori tugas lab, sehingga kamu tidak perlu mengumpulkan tautan repositori ke dalam slot submisi.
Bonus
Kamu akan mendapatkan nilai bonus pada penilaian tugas ini apabila kamu membuat fitur berikut.
- Tambahkan atribut
is_finished
pada modelTask
(dengan default valueFalse
) dan buatlah dua kolom baru pada tabel task yang berisi status penyelesaian task dan tombol untuk mengubah status penyelesaian suatu task menjadiSelesai
atauBelum Selesai
. - Tambahkan kolom baru pada tabel task yang berisi tombol untuk menghapus suatu task.
Kedua fitur di atas wajib diimplementaskan (bukan sekedar tombol, melainkan harus dapat melakukan behavior yang diinginkan) jika kamu ingin mendapatkan nilai bonus.
Motivasi: Dengan menyelesaikan fitur bonus, kamu telah mempelajari dasar-dasar CRUD pada Django. 😉