Case Study

PerpustakaanKu

Library management information system

ClientPersonal Project
RoleSolo Full-Stack Developer
Year2025
TimelineFeb – Sep 2025
Scope of WorkFull-Stack Development
LocationBali, Indonesia
View source on GitHub

Drag to rotate

Overview

PerpustakaanKu is a web-based library information system that I built solo from the ground up. It handles everything a library needs — books, categories, publishers, borrowing, returns, and fines — through a clean, role-based interface secured behind authentication. Built with Laravel and Tailwind CSS, the project was a practical deep-dive into building a full CRUD system from a real-world domain, covering both the data model and the user-facing experience.

0
Core modules
Auto
Fine calculation on return
Solo
Designed & built end to end
Full
CRUD across all entities
Secure login to guard the system
01

Secure login to guard the system

Every session starts at the login screen — a clean, minimal gate that keeps the library data accessible only to authorized staff. The authentication layer underpins all modules, so no data can be viewed or changed without signing in first.

A full catalog of books, categories, and publishers
A full catalog of books, categories, and publishers
02

A full catalog of books, categories, and publishers

The books module is the catalog's core — listing every title with its category and publisher, with full add, edit, and delete support. Categories and publishers are managed separately, and every form validates input before it touches the database, keeping the catalog clean and consistent.

Borrowing and returns, tracked end to end
Borrowing and returns, tracked end to end
03

Borrowing and returns, tracked end to end

Staff record each borrowing through a structured form that links a member to a book and sets the due date. When a book comes back, the return module closes the transaction and automatically calculates any overdue fine — turning a manual, error-prone process into a reliable, data-driven workflow.

Fines tracked automatically so nothing slips through
04

Fines tracked automatically so nothing slips through

The fines module surfaces every outstanding charge in one view — member, book, days overdue, and the total amount — so staff can follow up without digging through borrowing records manually. Fines are calculated at the moment of return, removing the need for any manual computation.

Behind the build

My role

LaravelPHPTailwind CSSViteJavaScript
  • 01Modeled the database — books, categories, publishers, members, borrowings, returns, and fines
  • 02Built full CRUD for every entity with form validation and relational data handling
  • 03Implemented the borrowing and return lifecycle, including automatic fine calculation for overdue books
  • 04Secured the application behind authentication so only authorized users can access library data
  • 05Built the front end with Tailwind CSS and Vite for a fast, responsive, and consistent UI

One system, every library operation

PerpustakaanKu covers the full lifecycle of a library — cataloging books by category and publisher, recording borrowings with due dates, closing returns, and automatically tallying fines for overdue items. Every entity is fully editable and linked, so updating a category or publisher propagates cleanly across all related records without manual cleanup.

Laravel on the back, Tailwind on the front

The stack is straightforward by design: Laravel handles routing, authentication, and all database operations through its ORM, while Tailwind CSS and Vite deliver a consistent, responsive UI without unnecessary complexity. Building it solo from an empty repo to a working system was the goal — shipping a real domain end to end before reaching for abstractions.