peminjaman-buku adalah sebuah sistem peminjaman buku sederhana. Saya membuat project ini sebagai challenge kepada diri sendiri dan mencoba beberapa hal yang belum pernah diterapkan di real project, seperti mengatur multirole login, serta penerapan useDeferredValue
hook.
Flow sistemnya:
User login ke peminjaman-buku. Disini terdapat dua skema, yakni login sebagai guest atau sebagai admin.
Setelah login, maka akan diarahkan ke page /dashboard
.
User memilih buku yang akan dipinjam. Buku-buku ini akan dimasukkan ke Wishlist.
User menuju ke page /pinjam-buku
, dimana Wishlistnya ada disini. Di page ini, user bisa membatalkan peminjaman buku yang ada di Wishlist, atau langsung meminjam bukunya.
Jika user jadi meminjam buku, maka batas waktu pengembalian bukunya adalah 7 hari setelah peminjaman buku. Jadi misalnya user meminjam tanggal 1, maka batas waktu terakhir mengembalikannya adalah tanggal 8.
Jika user yang mengembalikan buku setelah batas waktu yang berlaku, maka akan dikenakan denda berupa uang Rp.2.000/hari(bisa dirubah oleh admin).
Hampir semua data disimpan ke local storage, kecuali untuk data user yang meminjam buku. Jadi, untuk setiap user yang meminjam buku, maka datanya akan disimpan ke Supabase, dan akan ditampilkan ke sebuah table yang berada di page /list-users
, dimana hanya admin yang bisa mengakses page ini. Admin juga bisa mendownload file CSV dari list-users nya.
Untuk langkah-langkah setupnya, saya sudah jabarkan di repo Github.
/list-users
page(only admin who can access this page).