Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dilozy/library_manager
Система для управления библиотекой, позволяющая добавлять, удалять книги, менять их статус, а также искать книги по различным критериям.
https://github.com/dilozy/library_manager
python
Last synced: about 2 months ago
JSON representation
Система для управления библиотекой, позволяющая добавлять, удалять книги, менять их статус, а также искать книги по различным критериям.
- Host: GitHub
- URL: https://github.com/dilozy/library_manager
- Owner: Dilozy
- Created: 2024-11-26T10:39:44.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-26T10:49:07.000Z (2 months ago)
- Last Synced: 2024-11-26T11:41:03.161Z (2 months ago)
- Topics: python
- Language: Python
- Homepage:
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Система управления библиотекой
Данный проект представляет собой систему для управления библиотекой, реализованную с использованием Python. Система позволяет добавлять, удалять книги, менять их статус, а также искать книги по различным критериям.
## Структура проекта
Проект включает в себя следующие ключевые компоненты:
1. **Классы и исключения**:
- `Book`: Класс для хранения информации о книге.
- `Library`: Класс для работы с коллекцией книг.
- `LibraryManager`: Менеджер, обрабатывающий запросы на добавление, удаление и изменение статуса книг.
- Исключения: `NotFoundInTheLibrary`, `IncorrectSearchFields`, `AlreadyInTheLibrary` - для обработки ошибок, связанных с библиотечными операциями.2. **Работа с консолью**:
Взаимодействие с пользователем происходит через консоль. Пользователю предлагается выбрать одну из команд для выполнения. Все действия с книгами выполняются в цикле, до тех пор, пока не будет выбрана команда выхода.3. **Меню**:
После запуска программы вы увидите следующее меню:```
1. Добавить книгу
2. Удалить книгу
3. Изменить статус книги
4. Показать все книги
5. Искать книги
0. Выход
```
4. **Тесты**:
Тесты запускаются командой
`python -m unittest discover`## Как запустить
Для запуска приложения необходимо:
1. Клонировать репозиторий или скачать файл с кодом.
2. Убедитесь, что у вас установлен Python (желательно версии 3.8 и выше).
3. Для работы с данными используется файл `library.json`. Если он отсутствует, будет создан пустой файл.
4. Запустите приложение с помощью команды:
```bash
python -m app.main
```## Работа с программой
### 1. **Добавить книгу**
При выборе этого пункта программа попросит ввести название, автора и год издания книги в формате `<название>, <автор>, <год>`. После ввода этих данных программа выполнит валидацию. Если книга успешно добавлена, она будет сохранена в файл `library.json`. В случае ошибок, например, если книга с таким названием, автором и годом уже существует, программа выведет соответствующее сообщение об ошибке и предложит попробовать снова.
### 2. **Удалить книгу**
Выбор этого пункта предложит ввести ID книги, которую нужно удалить. Программа проверит, существует ли книга с таким ID в библиотеке. Если книга найдена, она будет удалена, и изменения сохранятся в файл. Если книга не найдена, программа выведет сообщение об ошибке.
### 3. **Изменить статус книги**
При выборе этой опции программа предложит ввести ID книги для изменения её статуса. Статус может быть изменен на "Выдана", если книга была "В наличии", или на "В наличии", если она была "Выдана". Если книга с таким ID не найдена, программа выведет ошибку.
### 4. **Показать все книги**
При выборе этого пункта программа выведет список всех книг в библиотеке, включая информацию о каждом экземпляре: ID, название, автор, год издания и статус. Это позволит вам получить полный обзор всех книг, находящихся в библиотеке.
### 5. **Искать книги**
Этот пункт меню позволяет искать книги по различным полям: `title` (название), `author` (автор) и `year` (год издания). Вам нужно будет ввести запрос в формате: `<поле> = <значение>`, например, `title = Война и мир` или `author = Толстой`. Программа выполнит поиск по указанному полю и выведет все соответствующие книги. Если книги не найдены, программа сообщит об этом.
### 0. **Выход**
При выборе этой опции программа завершит свою работу.