A modular terminal-based Library Management System built with Python.
The project was designed to apply professional software engineering concepts including:
The application follows a layered architecture:
UI
โ
โผ
Services
โ
โผ
Repositories
โ
โผ
Storage
โ
โผ
JSON Files
Responsible only for:
Responsible for:
Responsible for:
Responsible only for:
LibraryManagmentWithPython/
โ
โโโ main.py
โ
โโโ Models/
โ โโโ book.py
โ โโโ user.py
โ โโโ borrowing.py
โ
โโโ repositories/
โ โโโ book_repository.py
โ โโโ user_repository.py
โ โโโ borrowing_repository.py
โ
โโโ Services/
โ โโโ book_service.py
โ โโโ user_service.py
โ โโโ auth_service.py
โ โโโ borrowing_service.py
โ โโโ report_service.py
โ โโโ member_service.py
โ
โโโ Storage/
โ โโโ json_storage.py
โ
โโโ auth/
โ โโโ session.py
โ โโโ password_hasher.py
โ โโโ exceptions.py
โ
โโโ UI/
โ โโโ auth/
โ โโโ books/
โ โโโ borrowing/
โ โโโ members/
โ โโโ menus/
โ โโโ profile/
โ โโโ reports/
โ
โโโ config/
โ โโโ config.py
โ
โโโ data/
โ โโโ books.json
โ โโโ users.json
โ โโโ borrowings.json
โ
โโโ logs/
โ โโโ library.log
โ
โโโ tests/
โ
โโโ requirements.txt
โโโ .gitignore
โโโ README.md
Create and activate a virtual environment:
python -m venv .venv
Windows:
.venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Run the application:
python main.py
Run the complete test suite:
python -m pytest -q
Current test status:
55 passed
The project follows several important principles:
Each layer has one clear responsibility.
Borrowing information is stored in the borrowing system rather than duplicating borrowing state inside the user model.
Higher-level application logic depends on abstractions such as repositories instead of directly manipulating JSON files.
Rules such as:
JSON writes use atomic replacement to reduce the risk of corrupted data.
Possible future versions include:
This project was built as a practical transition from Python fundamentals toward professional software engineering and Artificial Intelligence.
The next major learning phase is focused on:
NumPy
โ
Pandas
โ
Matplotlib
โ
Mathematics for ML
โ
Scikit-learn
โ
Machine Learning
โ
Deep Learning
โ
Artificial Intelligence
A modular terminal-based Library Management System built with Python.
The project was designed to apply professional software engineering concepts including:
The application follows a layered architecture:
UI
โ
โผ
Services
โ
โผ
Repositories
โ
โผ
Storage
โ
โผ
JSON Files
Responsible only for:
Responsible for:
Responsible for:
Responsible only for:
LibraryManagmentWithPython/
โ
โโโ main.py
โ
โโโ Models/
โ โโโ book.py
โ โโโ user.py
โ โโโ borrowing.py
โ
โโโ repositories/
โ โโโ book_repository.py
โ โโโ user_repository.py
โ โโโ borrowing_repository.py
โ
โโโ Services/
โ โโโ book_service.py
โ โโโ user_service.py
โ โโโ auth_service.py
โ โโโ borrowing_service.py
โ โโโ report_service.py
โ โโโ member_service.py
โ
โโโ Storage/
โ โโโ json_storage.py
โ
โโโ auth/
โ โโโ session.py
โ โโโ password_hasher.py
โ โโโ exceptions.py
โ
โโโ UI/
โ โโโ auth/
โ โโโ books/
โ โโโ borrowing/
โ โโโ members/
โ โโโ menus/
โ โโโ profile/
โ โโโ reports/
โ
โโโ config/
โ โโโ config.py
โ
โโโ data/
โ โโโ books.json
โ โโโ users.json
โ โโโ borrowings.json
โ
โโโ logs/
โ โโโ library.log
โ
โโโ tests/
โ
โโโ requirements.txt
โโโ .gitignore
โโโ README.md
Create and activate a virtual environment:
python -m venv .venv
Windows:
.venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Run the application:
python main.py
Run the complete test suite:
python -m pytest -q
Current test status:
55 passed
The project follows several important principles:
Each layer has one clear responsibility.
Borrowing information is stored in the borrowing system rather than duplicating borrowing state inside the user model.
Higher-level application logic depends on abstractions such as repositories instead of directly manipulating JSON files.
Rules such as:
JSON writes use atomic replacement to reduce the risk of corrupted data.
Possible future versions include:
This project was built as a practical transition from Python fundamentals toward professional software engineering and Artificial Intelligence.
The next major learning phase is focused on:
NumPy
โ
Pandas
โ
Matplotlib
โ
Mathematics for ML
โ
Scikit-learn
โ
Machine Learning
โ
Deep Learning
โ
Artificial Intelligence