Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLI Library Management System

Description

A command-line Library Management System built in Python. The application allows users to manage a collection of books by adding, viewing, searching, updating, removing, borrowing, and returning books. Book information is stored persistently using JSON, providing a complete CRUD-based CLI application.


Features

  • Add new books
  • View all books
  • Search books by:
    • Title
    • Author
    • ISBN
    • Year
    • Availability
  • Update book information
  • Remove books
  • Borrow books
  • Return books
  • JSON data persistence
  • Input validation

Technologies

  • Python
  • Dataclasses
  • JSON
  • File Handling
  • Custom Utility Package

Engineering Concepts Practiced

  • CRUD application development
  • Dataclasses
  • JSON persistence
  • Input validation
  • Data modeling
  • State management
  • Modular architecture
  • Code reuse
  • Software design
  • Debugging control flow

Project Structure

Project 8 CLI Library Management System/

├── main.py
├── manager.py
├── README.md
└── my_package/
    ├── __init__.py
    ├── file_utilities.py
    ├── json_utilities.py
    └── text_utilities.py

How to Run

  1. Make sure Python 3 or later is installed.
  2. Open the project folder.
  3. Run:
python main.py

Skills Practiced

  • CLI application development
  • CRUD operations
  • JSON file management
  • Dataclass usage
  • Searching and updating data
  • Defensive programming
  • Modular programming
  • Data validation

Current Limitations

  • Stores data in JSON instead of a database.
  • Single-user application.
  • Limited validation for book information.
  • No automated testing.
  • No logging system.

Future Improvements (Version 1.1)

  • Improve code refactoring.
  • Reduce duplicated logic.
  • Better availability management.
  • Enhanced search capabilities.
  • Export library data.
  • Add automated tests.

What I Learned

  • How to design a complete CRUD application.
  • How to model application data using dataclasses.
  • How to persist application state using JSON.
  • How to identify duplicated logic and opportunities for refactoring.
  • How application complexity increases as multiple features interact.

Time Taken

Approximately 192 minutes


Author

Vaibhav Kumar

About

A command-line Library Management System built in Python. The application allows users to manage a collection of books by adding, viewing, searching, updating, removing, borrowing, and returning books. Book information is stored persistently using JSON, providing a complete CRUD-based CLI application.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages