{"id":22941133,"url":"https://github.com/usbashka/library-system","last_synced_at":"2025-08-18T16:08:32.469Z","repository":{"id":264045094,"uuid":"892112149","full_name":"USBashka/Library-system","owner":"USBashka","description":"Тестовое задание \"Система управления библиотекой\"","archived":false,"fork":false,"pushed_at":"2024-11-25T17:16:38.000Z","size":294,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-04T03:37:16.859Z","etag":null,"topics":["python3","test-task"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/USBashka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-21T14:30:14.000Z","updated_at":"2024-11-25T17:16:41.000Z","dependencies_parsed_at":"2024-11-21T18:18:16.686Z","dependency_job_id":"af872a64-d4ea-43d4-9a55-16d111578b36","html_url":"https://github.com/USBashka/Library-system","commit_stats":null,"previous_names":["usbashka/library-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/USBashka/Library-system","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USBashka%2FLibrary-system","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USBashka%2FLibrary-system/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USBashka%2FLibrary-system/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USBashka%2FLibrary-system/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/USBashka","download_url":"https://codeload.github.com/USBashka/Library-system/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/USBashka%2FLibrary-system/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271019900,"owners_count":24685762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python3","test-task"],"created_at":"2024-12-14T13:37:25.650Z","updated_at":"2025-08-18T16:08:32.446Z","avatar_url":"https://github.com/USBashka.png","language":"Python","readme":"\u003cimg align=\"left\" width=\"64\" height=\"64\" src=\"icon.png\"\u003e\n\n# USLib [![Made with Godot](https://img.shields.io/badge/Python_3-2A5370?logo=python\u0026logoColor=white)](https://python.org)\n\nUSLib — это консольная система управления библиотекой. Она позволяет вести учёт книг, находить их по названию, автору или году\nиздания, а также понимать, находится ли книга на полке или её кто-то взял почитать. Вся база книг автоматически сохраняется в\nJSON-файле и загружается из него при старте приложения.\n\n| Данный проект является тестовым заданием на вакансию Junior Backend Developer (Python) в компанию Effective Mobile |\n|--------------------------------------------------------------------------------------------------------------------|\n\n\n## Установка и запуск\nСклонируйте репозиторий:\n```bash\ngit clone https://github.com/USBashka/Library-system\n```\nПерейдите в директорию проекта:\n```bash\ncd Library-system\n```\nЗапустите файл `main.py`:\n```bash\npython main.py\n```\n\n## Использование\nВсё взаимодействие с приложением происходит через командную строку. Всего есть 7 команд:\n\n### Помощь\nВыводит список доступных команд и их краткое описание.\n```\n\u003e помощь\nДоступные команды (вводить можно как на английском, так и на русском):\nhelp / помощь   Вывести список доступных команд\nadd / добавить  Добавить новую книгу\ndel / удалить   Удалить книгу\nfind / найти    Найти книгу\nlist / список   Вывести список всех книг\nstatus / статус Установить статус книги (в наличии/выдана)\nexit / выход    Выйти из приложения\n```\n\n### Добавить\nЗапрашивает название, автора и год издания книги, после чего добавляет её в систему. Название и автор не могут быть пустыми,\nа год издания должен быть целым числом не меньше нуля.\n\n```\n\u003e добавить\nНазвание книги: Грокаем алгоритмы\nАвтор: Адитья Бхаргава\nГод издания: 2020\nКнига \"Грокаем алгоритмы\" успешно добавлена в систему под ID 3\n```\n\n### Удалить\nЗапрашивает ID книги и удаляет её.\n\n```\n\u003e удалить\nID удаляемой книги: 2\nКнига \"Скибиди\" успешно удалена из системы\n\n\u003e удалить \nID удаляемой книги: 1\nКнига с указанным ID не найдена\n```\n\n### Найти\nПозволяет искать книги в системе. Сначала запрашивает по какому параметру искать, затем сам параметр, после чего выводит\nтаблицу со всеми подходящими книгами. Книга считается подходящей даже в том случае, если пользователь ввёл только часть\nназвания или только имя автора без фамилии. Также поиск нечувствителен к регистру.\n\n```\n\u003e найти\nВыберите, по какому параметру искать книги:\n1 - Название\n2 - Автор\n3 - Год издания\nПараметр: 1\nВведите название книги: ктулху\nВ библиотеке 1 книга с похожим названием:\n  ID |           Название           |           Автор           | Год |  Статус\n-----+------------------------------+---------------------------+-----+---------\n    6|          Зов Ктулху          |      Говард Лавкрафт      | 2018|в наличии\n\n\u003e найти\nВыберите, по какому параметру искать книги:\n1 - Название\n2 - Автор\n3 - Год издания\nПараметр: 2\nВведите автора книги: аристотель\nВ библиотеке 2 книги с похожим автором:\n  ID |           Название           |           Автор           | Год |  Статус\n-----+------------------------------+---------------------------+-----+---------\n    4|            Этика             |         Аристотель        | 2022|в наличии\n    5|      Политика. Риторика      |         Аристотель        | 2021|в наличии\n```\n\n### Список\nПоказывает таблицу со всеми книгами в библиотеке.\n```\n\u003e список\nВ данный момент в системе 8 книг:\n  ID |           Название           |           Автор           | Год |  Статус\n-----+------------------------------+---------------------------+-----+---------\n    3|      Грокаем алгоритмы       |      Адитья Бхаргава      | 2020|в наличии\n    4|            Этика             |         Аристотель        | 2022|в наличии\n    6|          Зов Ктулху          |      Говард Лавкрафт      | 2018|в наличии\n    7|  Грокаем глубокое обучение   |        Эндрю Траск        | 2020|в наличии\n    8|            Django            |      Владимир Дронов      | 2019|в наличии\n    9|       Сумма Технологии       |       Станислав Лем       | 2021|в наличии\n   10|         Игра в бисер         |        Герман Гессе       | 2021|  выдана\n   11|         История тебя         |     Виктория Салтыкова    | 2024|в наличии\n```\n\n### Статус\nЗапрашивает ID книги и позволяет установить её статус. Статусом может быть только \"в наличии\" или \"выдана\".\n\n```\n\u003e статус\nID взятой/возвращённой книги: 6\nВыберите статус для \"Зов Ктулху\" (сейчас в наличии):\n1 - В наличии\n2 - Выдана\nСтатус: 2\nСтатус успешно изменён на \"выдана\"\n```\n\n### Выход\nЗавершает работу приложения.\n\n\n## Тестирование\nВ файле `test_data.json` находится тестовая база книг. Её можно переименовать в `data.json` (стандартное название файла сохранения) и запустить приложение для тестирования функционала.\n\nТакже есть автотесты в `tests.py`. Для запуска нужно ввести в терминале:\n```\npython -m unittest tests.py\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusbashka%2Flibrary-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusbashka%2Flibrary-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusbashka%2Flibrary-system/lists"}