https://github.com/usbashka/library-system
Тестовое задание "Система управления библиотекой"
https://github.com/usbashka/library-system
python3 test-task
Last synced: 6 months ago
JSON representation
Тестовое задание "Система управления библиотекой"
- Host: GitHub
- URL: https://github.com/usbashka/library-system
- Owner: USBashka
- Created: 2024-11-21T14:30:14.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-25T17:16:38.000Z (about 1 year ago)
- Last Synced: 2025-06-04T03:37:16.859Z (8 months ago)
- Topics: python3, test-task
- Language: Python
- Homepage:
- Size: 287 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# USLib [](https://python.org)
USLib — это консольная система управления библиотекой. Она позволяет вести учёт книг, находить их по названию, автору или году
издания, а также понимать, находится ли книга на полке или её кто-то взял почитать. Вся база книг автоматически сохраняется в
JSON-файле и загружается из него при старте приложения.
| Данный проект является тестовым заданием на вакансию Junior Backend Developer (Python) в компанию Effective Mobile |
|--------------------------------------------------------------------------------------------------------------------|
## Установка и запуск
Склонируйте репозиторий:
```bash
git clone https://github.com/USBashka/Library-system
```
Перейдите в директорию проекта:
```bash
cd Library-system
```
Запустите файл `main.py`:
```bash
python main.py
```
## Использование
Всё взаимодействие с приложением происходит через командную строку. Всего есть 7 команд:
### Помощь
Выводит список доступных команд и их краткое описание.
```
> помощь
Доступные команды (вводить можно как на английском, так и на русском):
help / помощь Вывести список доступных команд
add / добавить Добавить новую книгу
del / удалить Удалить книгу
find / найти Найти книгу
list / список Вывести список всех книг
status / статус Установить статус книги (в наличии/выдана)
exit / выход Выйти из приложения
```
### Добавить
Запрашивает название, автора и год издания книги, после чего добавляет её в систему. Название и автор не могут быть пустыми,
а год издания должен быть целым числом не меньше нуля.
```
> добавить
Название книги: Грокаем алгоритмы
Автор: Адитья Бхаргава
Год издания: 2020
Книга "Грокаем алгоритмы" успешно добавлена в систему под ID 3
```
### Удалить
Запрашивает ID книги и удаляет её.
```
> удалить
ID удаляемой книги: 2
Книга "Скибиди" успешно удалена из системы
> удалить
ID удаляемой книги: 1
Книга с указанным ID не найдена
```
### Найти
Позволяет искать книги в системе. Сначала запрашивает по какому параметру искать, затем сам параметр, после чего выводит
таблицу со всеми подходящими книгами. Книга считается подходящей даже в том случае, если пользователь ввёл только часть
названия или только имя автора без фамилии. Также поиск нечувствителен к регистру.
```
> найти
Выберите, по какому параметру искать книги:
1 - Название
2 - Автор
3 - Год издания
Параметр: 1
Введите название книги: ктулху
В библиотеке 1 книга с похожим названием:
ID | Название | Автор | Год | Статус
-----+------------------------------+---------------------------+-----+---------
6| Зов Ктулху | Говард Лавкрафт | 2018|в наличии
> найти
Выберите, по какому параметру искать книги:
1 - Название
2 - Автор
3 - Год издания
Параметр: 2
Введите автора книги: аристотель
В библиотеке 2 книги с похожим автором:
ID | Название | Автор | Год | Статус
-----+------------------------------+---------------------------+-----+---------
4| Этика | Аристотель | 2022|в наличии
5| Политика. Риторика | Аристотель | 2021|в наличии
```
### Список
Показывает таблицу со всеми книгами в библиотеке.
```
> список
В данный момент в системе 8 книг:
ID | Название | Автор | Год | Статус
-----+------------------------------+---------------------------+-----+---------
3| Грокаем алгоритмы | Адитья Бхаргава | 2020|в наличии
4| Этика | Аристотель | 2022|в наличии
6| Зов Ктулху | Говард Лавкрафт | 2018|в наличии
7| Грокаем глубокое обучение | Эндрю Траск | 2020|в наличии
8| Django | Владимир Дронов | 2019|в наличии
9| Сумма Технологии | Станислав Лем | 2021|в наличии
10| Игра в бисер | Герман Гессе | 2021| выдана
11| История тебя | Виктория Салтыкова | 2024|в наличии
```
### Статус
Запрашивает ID книги и позволяет установить её статус. Статусом может быть только "в наличии" или "выдана".
```
> статус
ID взятой/возвращённой книги: 6
Выберите статус для "Зов Ктулху" (сейчас в наличии):
1 - В наличии
2 - Выдана
Статус: 2
Статус успешно изменён на "выдана"
```
### Выход
Завершает работу приложения.
## Тестирование
В файле `test_data.json` находится тестовая база книг. Её можно переименовать в `data.json` (стандартное название файла сохранения) и запустить приложение для тестирования функционала.
Также есть автотесты в `tests.py`. Для запуска нужно ввести в терминале:
```
python -m unittest tests.py
```