{"id":24472607,"url":"https://github.com/alexscience/vendomat","last_synced_at":"2025-03-14T14:40:17.860Z","repository":{"id":222975466,"uuid":"758898265","full_name":"AlexScience/vendomat","owner":"AlexScience","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-26T11:59:56.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-21T08:12:57.637Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/AlexScience.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}},"created_at":"2024-02-17T12:05:05.000Z","updated_at":"2024-11-26T12:00:02.000Z","dependencies_parsed_at":"2024-02-17T12:25:45.012Z","dependency_job_id":"20e78e09-eaa6-4d1d-a15d-c28e8e7828dc","html_url":"https://github.com/AlexScience/vendomat","commit_stats":null,"previous_names":["alexscience/vendomat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexScience%2Fvendomat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexScience%2Fvendomat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexScience%2Fvendomat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexScience%2Fvendomat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexScience","download_url":"https://codeload.github.com/AlexScience/vendomat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243597379,"owners_count":20316841,"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","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":[],"created_at":"2025-01-21T08:13:01.085Z","updated_at":"2025-03-14T14:40:17.822Z","avatar_url":"https://github.com/AlexScience.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vendomat\n\n**Vendomat** — это проект системы для автоматов по продаже товаров, реализованный на C#. Проект демонстрирует создание и управление торговым автоматом, который позволяет пользователям выбирать товары и добавлять средства с использованием различных сценариев и команд.\n\n## Оглавление\n- [Описание](#описание)\n- [Функциональность](#функциональность)\n- [Установка](#установка)\n- [Использование](#использование)\n- [Структура проекта](#структура-проекта)\n- [Технологии](#технологии)\n- [Будущие возможности](#будущие-возможности)\n\n## Описание\nVendomat реализует функциональность торгового автомата, поддерживая выбор товаров, добавление монет и банкнот, а также проверку баланса и наличия товара. Проект использует паттерны проектирования для управления сценариями и обработки пользовательского ввода.\n\n## Функциональность\n- **Выбор товара**: Позволяет пользователю выбрать товар из доступного списка.\n- **Добавление средств**: Поддержка добавления монет и банкнот.\n- **Проверка состояния**: Проверка наличия выбранного товара и баланса пользователя.\n\n## Установка\nДля установки и запуска проекта:\n\n1. Склонируйте репозиторий:\n    ```bash\n    git clone https://github.com/AlexScience/vendomat.git\n    ```\n\n2. Откройте проект в вашей IDE (например, Visual Studio).\n\n3. Соберите и запустите проект.\n\n## Использование\n1. Запустите проект.\n2. Введите команду для выбора товара или добавления средств:\n   - `item A:1` — для выбора товара.\n   - `coin: 10` — для добавления монеты.\n   - `banknote: 50` — для добавления банкноты.\n3. Следуйте инструкциям на экране.\n\n## Структура проекта\n\n### Основные компоненты\n\n- **`UserInputParser`**: Парсит пользовательский ввод и определяет сценарий на основе введенной команды.\n- **`ScenarioRunner`**: Запускает сценарии в зависимости от выбранного действия пользователя.\n- **`ProductItemsStorage`**: Хранит информацию о доступных товарах и их количестве.\n- **`Commands`**: Содержит регулярные выражения для парсинга команд.\n\n### Сценарии и Шаги\n\n- **`SelectItemScenario`**: Управляет сценарием выбора товара.\n- **`CheckProductAvailabilityStep`**: Проверяет наличие товара.\n- **`CheckBalanceStep`**: Проверяет баланс пользователя.\n\n### Модели\n\n- **`Vendomat`**: Основной класс для управления процессом работы торгового автомата.\n- **`Product`**: Представляет товар с его характеристиками.\n- **`Bank`**: Управляет балансом и денежными операциями.\n\n## Технологии\nПроект реализован с использованием следующих технологий:\n- **Язык программирования**: C#\n- **Среда разработки**: .NET\n\n## Будущие возможности\n- Расширение функциональности для поддержки дополнительных сценариев.\n- Улучшение пользовательского интерфейса и взаимодействия.\n- Интеграция с реальными платежными системами.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexscience%2Fvendomat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexscience%2Fvendomat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexscience%2Fvendomat/lists"}