Book Catalog & Booking API
Ringkasan
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 di sisi server, bukan mempercayakannya ke client.
Cara kerjanya
Siapa saja bisa mencari berdasarkan judul atau penulis. Pengguna yang sudah login bisa pakai filter lengkap (genre, tahun, ketersediaan) dan membooking sampai tiga buku sekaligus, maksimal tujuh hari.
Admin punya full CRUD atas katalog dan bisa mengubah status booking secara manual saat buku dikembalikan. Pengembalian buku menaikkan stok otomatis, jadi data ketersediaan tetap akurat tanpa perlu cek rak manual.
Autentikasinya JWT, validasinya Pydantic, dan datanya di PostgreSQL lewat SQLAlchemy.


Teknologi
Python, FastAPI, PostgreSQL, SQLAlchemy, JWT, Pydantic, uv.
PostgreSQL bukan SQLite karena aturan peminjaman butuh transaksi beneran. uv supaya setup project satu perintah, bukan satu halaman README.
Yang akan saya ubah
Ini API tanpa frontend, jadi pengujiannya lewat dokumentasi API dan test, bukan lewat tampilan. Scope-nya memang segitu, dan itu disengaja. Konsekuensinya, pustakawan belum bisa langsung memakainya, dan itu perlu diakui terus terang.
Source code
Kodenya publik: https://github.com/rasyidev/booking-book