Checking Out Books
The checkout process uses a shopping cart system that allows you to scan multiple books before confirming your checkout.Navigate to Checkout
Click the “CHECKOUT” button in the navigation bar at the top of the dashboard. This opens the checkout workspace with two panels: scan area and cart.
Scan book ISBN barcodes
Position the book’s ISBN barcode under the scanner. The system will:
- Look up the book in the local database
- Fetch metadata from Open Library API if not cached
- Display the book cover, title, and author in the preview area
- Show the calculated due date (14 days from checkout)
- Add the book to your cart
The input field automatically focuses when you enter the checkout screen for quick scanning.
Review your cart
Each scanned book appears in the cart on the right side showing:
- Book cover thumbnail
- Title and author
- Due date (formatted as “Mon DD, YYYY”)
Confirm checkout
When ready, click the “CONFIRM CHECKOUT (X)” button at the bottom of the cart, where X is the number of items.The button is:
- Disabled (gray) when the cart is empty
- Enabled (blue with glow effect) when books are in the cart
Checkout complete
The system will:
- Mark all books as “Checked Out” in the database
- Create loan records with your user ID
- Set the due date to 14 days from today
- Display a success notification: “Successfully checked out X item(s)! Return by [Date]”
- Clear the cart and reset the interface
- Update the catalog to reflect availability changes
Due Date Policy
- All books are due 14 days from the checkout date
- The due date is displayed in the cart for each item
- The final checkout confirmation shows the return deadline
- Due dates are calculated using:
datetime.now() + timedelta(days=14)
Example due date display: “Due: March 18, 2026”
Returning Books
The return process is quick and requires only a single ISBN scan.Navigate to Return
Click the “RETURN” button in the navigation bar. This opens the return workspace with a large dropzone preview.
Scan the book ISBN
Position the book’s ISBN barcode under the scanner. The system will:
- Validate the book exists in the database
- Check that the book is currently checked out
- Find the active loan record for this book
- Display the book cover and title
Return confirmed
Upon successful return:
- The book status changes from “Checked Out” to “Available”
- The loan record is marked as returned with timestamp
- The status badge changes from gray “WAITING FOR SCAN” to blue “RETURNED SUCCESSFULLY”
- A success notification appears: “Book Returned!”
- The catalog updates to show the book as available
Return Tracking
- The system records the exact return timestamp using
datetime.now() - Returned books immediately become available for other users to check out
- Your borrowing history is updated to show the return date
- No late fees are calculated, but overdue status is tracked
ISBN Lookup System
The kiosk uses a two-tier book lookup system:- Local Database Cache: Checks the SQLite database first for fast lookups
- Open Library API: If not found locally, queries the Open Library API and caches the result
Books fetched from Open Library are automatically cached with:
- ISBN number
- Title
- Author (first author if multiple)
- Cover image URL
- Initial status: “Available”
Troubleshooting
“Book not found” error- Verify the ISBN barcode is scannable and complete
- The book may not exist in Open Library database
- Try manually entering the ISBN if the scanner fails
- The book may not have an active loan record
- Verify you’re scanning the correct ISBN
- Contact library staff if the issue persists
- Ensure the input field is focused (click the scan area)
- Check barcode is clean and undamaged
- Try manually typing the ISBN as a fallback