Skip to content

Dema-koder/Service-for-forecasting-and-formation-of-purchases

Repository files navigation

Сервис Прогнозирования и Планирования Закупок

Этот сервис использует данные о прошлых закупках и бухгалтерскую информацию для:

  • Визуализации статистики
  • Прогнозирования потребностей в закупках
  • Подготовки данных для планирования закупок

Цель сервиса - сократить трудозатраты и человекачасы государственных учреждений на планирование закупок, автоматизируя прогнозирование потребностей в продуктах и их количестве.

Функции

  • Чат-бот интерфейс: Взаимодействие с сервисом через удобный интерфейс чат-бота.
  • Консолидация данных: Интеграция данных о прошлых закупках и бухгалтерской информации.
  • Прогнозирование: Использование моделей машинного обучения для предсказания будущих потребностей в закупках.
  • Визуализация: Предоставление графических представлений и отчетов о данных по закупкам.
  • Коррекция прогнозов на месте: Пользователь может изменить результирующий файл в боте без использования дополнительных инструментов.
  • Мониторинг обновлений в ФЗ: В случае изменения в 44 ФЗ пользователь получает уведомление о изменение в законе.
  • Подгрузка новых данных: Возможность подгрузить новые таблицы со складскими остатками и обортными ведомостями
  • Отслеживание остатка товара: Пользователь может выбрать/удалить товары для отслеживания остатков на складе

Архитектура

Архитектура включает в себя следующие ключевые компоненты:

  1. Telegram бот
    • Взаимодействие пользователя с сервисом осуществляется через Telegam бота
  2. Java бэкенд
    • API с которым взаимодействует Telegram бот
    • Документация бэкенда доступна по ссылке
    • Описание API через Swagger
  3. MongoDB
    • Основная база данных для проекта. Внутри хранятся складские остатки, обортные ведомости и информация об отслеживаемых товарах для каждого пользователя
  4. Python Scripts
    • Скрипты вызываемые бэкендом для прогнозирования и визуализации
  5. Keycloak
    • Система авторизации

Подробное описание архитектуры

Более подробная архитектура, мотивация, пользовательские истории и документация в целом доступна по ссылке

Архитектура приложения текст

Технологический стек

  • Чат-бот и интерфейс: Python, Aiogram, PostgreSQL
  • Обработка и анализ данных: Python, pandas, scikit-learn
  • База данных: MongoDB
  • Визуализация: Python, pandas, matplotlib
  • Инфраструктура и развертывание: Docker, Docker Compose
  • Бэкенд: Java, SpringBoot, ChatGPT
  • Документация: Swagger, Archi, OpenAPI

Начало работы

Предварительные требования

  • Docker/Docker Compose

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/yourusername/procurement-forecasting-service.git
    cd procurement-forecasting-service
  2. Настройте окружение:

    • Заполните пропуски в docker-compose.yml
    • Пример:
      DATABASE_URL: postgresql://username:password@localhost:5432/procurement_db
      MONGO_URL: mongodb://localhost:27017
      ...
  3. Соберите и запустите сервисы с помощью Docker:

    docker-compose up --build

Использование

  1. Доступ к чат-боту:

    • Откройте чат-бот в Telegram
  2. Взаимодействие с чат-ботом:

    • Используйте естественный язык для запроса данных о закупках, прогнозов и визуализаций.
    • Используйте удобные и простые кнопки для выполнения тех же действий.

Взаимодействие пользователя с сервисом

  1. Сначала введите команду /start в боте.

  2. Авторизуйтесь с помощью Keycloak через ссылку, предоставленную ботом.

  3. Подтвердите, что вы авторизованы a. Примите пользовательский случай

    b. Отклоните пользовательский случай

  4. Выберите, что вы хотите сделать

    1. Используйте кнопки, тогда поток будет простым: выберите опцию и введите параметр, который запросит бот.
    2. Введите в ваше сообщение, выбрав опцию и ее параметры, например: Найди сколько осталось на складе бумаги.
  5. Получите ответ и визуализации, если ваш запрос был успешен.

  6. Если вы хотите сохранить запрашиваемый прогноз, вы можете скачать json-файл, отправленный ботом.

  7. Если вы хотите изменить json в Telegram, выберите кнопку для редактирования.

  8. Обновите или оставьте параметры json без изменений.

  9. Сохраните обновленный json.

Пример использования бота

Снимок экрана 1 Снимок экрана 2 Снимок экрана 3

Участие

Мы приветствуем участие! Пожалуйста, следуйте этим шагам:

  1. Форкните репозиторий.
  2. Создайте новую ветку (git checkout -b feature/YourFeature).
  3. Закоммитьте ваши изменения (git commit -am 'Add new feature').
  4. Запушьте в ветку (git push origin feature/YourFeature).
  5. Создайте новый Pull Request.

Лицензия

Этот проект лицензирован по лицензии MIT - см. файл LICENSE для подробностей.

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •