vine-checker-application

0

Описание

ML-сервис оценки качества вина по параметрам, с веб-версией и телеграм ботом

Языки

  • Python100%
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
README.md

VineChecker

Сервис определения качества вина по 11 параметрам. Параметры: Fixed Acidity (фиксированная кислотность), Volatile Acidity (летучая кислотность), Citric Acid (лимонная кислота), Residual Sugar (остаточный сахар), Chlorides (хлорид), Free Sulfur Dioxide (свободный диоксид серы), Total Sulfur Dioxide (общий диоксид серы), Density (плотность), pH, Sulphates (сульфаты), Alcohol (спирт).

Результат: качество по 10-балльной шкале, где 7 баллов и выше - действительно хорошее вино.

Краткое описание хода разработки

В данном проекте ML-модель не обучалась, была взята готовая.

Цель

Разработка сервиса с веб-версией и телеграм-ботом, с возможностью авторизации.

Подробное ТЗ

  • На главной странице представлена информация о возможностях сервиса.
  • Пользователи имеют возможность зарегистрироваться и войти в систему.
  • Доступна функция для просмотра текущего баланса в кредитах.
  • Пользователи могут пополнить баланс, нажав на кнопку "Пополнить" (эквайринг не подключен).
  • Есть возможность отправлять запросы к сервису через веб-интерфейс с списанием кредитов с баланса (при успешном выполнении запроса).
  • Пользователи могут просматривать историю загруженных данных и предсказаний, включая информацию о списанных кредитах.
  • Доступна функция выполнения запросов к системе через api-интерфейс.
  • Необходимо реализовать проверку данных: если в загружаемом запросе ошибки, они должны возвращаться пользователю, а предсказания выполняются только на корректных данных.
  • Также требуется проверка наличия положительного баланса при отправке запросов к системе.
  • Роль администратора включает возможность пополнять баланс пользователей (модерировать пополнения) и просматривать все транзакции.

Последовательность разработки

  1. Спроектирована объектная модель сервиса, выделены основные сущности, с которыми будет осуществляться работа.
  2. Развернута локальная база данных PostgreSQL.
  3. Подключена база данных к объектной модели приложения, используя ORM фреймворк.
  4. Спроектирована модель методов приложения. Протестирована работоспособность системы, включая создание пользователей, пополнение и списание баланса, а также историю транзакций.
  5. Разработано api-приложение со всем требуемым функционалом (эндпоинты), протестировано в Postman.
  6. Разработан telegram-bot со всем требуемым функционалом, протестирован.
  7. Настроен воркер передачи сообщений через RabbitMQ для телеграм-бота.
  8. Разработано и протестировано веб-приложение (Streamlit), которое взаимодействует с ранее созданной системой, реализован весь необходимый функционал.

Примечания

Python 3.9

Запуск приложения локально:

  1. Настроить PostgreSQL базу данных с 4-мя таблицами (id строк уникален, id строк автоинкрементируется при добавлении строки, см. db_classes.py)
  2. Открыть DockerDektop
  3. Первый терминал (контейнер RabbitMQ): выполнить команду: docker-compose up -d
  4. Второй терминал (поток консьюмера сообщений RabbitMQ для бота): выполнить команду: python rabbitmq_tg.py
  5. Третий терминал (поток приложения tg-бота): выполнить команду: python tg.py
  6. Четвертый терминал (поток FastAPI приложения): выполнить команду: python api.py
  7. Пятый терминал (поток веб-приложения): выполнить команду: streamlit run web_app.py

Имя бота: @VineCheckerBot

Баланс при регистрации: 10