A robust, command-line-based library system in Java for managing books, authors, and users.
Scriptorium is a robust, console-based library system developed in Java. It enables comprehensive management of users, authors, publishers, and books through an intuitive command-line interface (CLI). A core feature is the direct integration with the Open Library API, which significantly simplifies importing book data and reduces manual data entry.
Problem: Smaller libraries or private collections often need simple yet powerful management software without the overhead of large, graphical applications. The solution should be platform-independent, resource-efficient, and controllable via the command line.
Objectives:
Architecture: The application follows a clear layered architecture that separates business logic, data access, and presentation layer (CLI) from each other. This promotes maintainability and testability of the code.
Picocli
is used to create the command-line commands, options, and interactive shell. It converts user input into method calls within the application.UserService
or BookService
coordinate operations and interact with the data access layer.User
, Book
, etc.Technology Justification:
The result is a fully functional, performant, and portable command-line application for library management. It is easy to use and can be built and executed easily through the Gradle wrapper scripts. The codebase is well secured by unit and integration tests with JUnit 5 and Mockito.