Book Catalog & Booking API
Summary
Katalog buku itu gampang. Aturan peminjamannya yang bikin sistem seperti ini menarik, dan justru di situ sistem kecil biasanya jebol.
Ini backend FastAPI untuk perpustakaan: katalog yang bisa dicari, plus mesin booking yang menegakkan aturannya, bukan menyerahkannya ke pengguna.
Cara kerjanya
Siapa saja bisa mencari berdasarkan judul atau penulis. Pengguna yang sudah login dapat filter lengkapnya, yaitu genre, tahun, dan ketersediaan, dan bisa membooking sampai tiga buku sekaligus dengan durasi maksimal tujuh hari.
Admin punya CRUD penuh atas katalog dan bisa mengubah status booking secara manual, yang terjadi waktu buku dikembalikan. Pengembalian buku menaikkan stok secara rekursif, jadi angka ketersediaannya tetap benar tanpa ada yang perlu menghitung ulang raknya.
Autentikasinya JWT, validasinya Pydantic, dan datanya di PostgreSQL lewat SQLAlchemy.
Teknologi
Python, FastAPI, PostgreSQL, SQLAlchemy, JWT, Pydantic, uv.
Yang akan saya ubah
Ini API tanpa frontend, jadi semuanya diuji lewat dokumentasi dan test, bukan lewat tampilan. Itu menjaga ruang lingkupnya tetap jujur. Konsekuensinya, seorang pustakawan belum bisa memakainya apa adanya, dan itu perlu dikatakan terus terang.
Source code
Kodenya publik: https://github.com/rasyidev/booking-book