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
todolistdi proyek tugas Django yang sudah digunakan sebelumnya.Menambahkan path
todolistsehingga pengguna dapat mengakses http://localhost:8000/todolist.Membuat sebuah model
Taskyang memiliki atribut sebagai berikut:useruntuk menghubungkan task dengan pengguna yang membuat task tersebut.Kamu dapat menggunakan tipe model
models.ForeignKeydengan parameterUser.Untuk mempelajari lebih lanjut mengenai
ForeignKeypada Django, silakan baca dokumentasi Django (atau silakan klik disini).Untuk mempelajari lebih lanjut mengenai model
Userpada Django, silakan klik disini.dateuntuk mendeskripsikan tanggal pembuatan task.titleuntuk mendeskripsikan judul task.descriptionuntuk mendeskripsikan deskripsi task.
Mengimplementasikan form registrasi, login, dan logout agar pengguna dapat menggunakan
todolistdengan baik.Membuat halaman utama
todolistyang 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
Formdapat 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
Taskpada akun masing-masing di situs web Heroku.Membuat sebuah
README.mdpada foldertodolistyang 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_finishedpada 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 menjadiSelesaiatauBelum 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. 😉