Beginner · 2–3 weeks
Library Management System
Digital library backend: manage books, members, borrow/return transactions, and fine calculation for overdue returns. Librarian role can add books; members can search catalog and view borrowing history.
Why this project
Classic domain with clear business rules (availability, due dates, fines). Great for discussing transactions, state machines, and role-based access.
Tech stack
Java 17Spring Boot 3Spring SecuritySpring Data JPAMySQLFlywayDocker Compose
Skills demonstrated
- RBAC
- Transaction management
- Date-based business logic
- Search and pagination
Interview talking points
- How borrow/return is modeled as state transitions on a Loan entity
- Why @Transactional is needed when borrowing a book
- Handling concurrent borrow attempts on the last copy
- Fine calculation logic and edge cases
Problem statement
Physical libraries need to track book inventory, member borrowing, and fines for overdue returns. Doing this on paper is error-prone and cannot handle concurrent access. This API replaces manual records with a single source of truth.