Добавлена база данных PostgreSQL + миграции на EntityFramework
Api и база данных упакованы в docker
В Api добавили авторизованную зону(нельзя отправлять запросы без приложенного jwt token-а) + добавили в свагер авторизацию bearer jwt
Написаны тесты на сервисы, которые мы используем в Domain
Структура Api:
Тесты в Api:
Сценарий использования Api:
База данных Api:
Мы использовали PostgreSQL
База данных и миграции к ней упакованы в docker
Можно смотреть и упарвлять базой данных через pgAdmin
Точки расширение Api:
Добавление других разделов сайта УрФУ
Добавление ботов других социальных сетей
Возможность создания публичного api
Что хотели бы добавить в Api:
Добавить миграции в докер
Добавить logger
Добавить обработчик ошибок
Long polling
Что готово в telegram bot:
Наличие и рабочее состояние бота в телеграме
Взаимодействие бота с пользователем
Команды бота
Состояния бота
Паттерн "Команда"
Паттерн "Машина состояний"
Di-container
Реализован DDD
Упакован в докер
Структура telegram bot:
Реализация паттернов telegram bot:
Паттерн "Команда"
Интерфейс ICommand
Реализация интерфейса
Все реализации
Списки команд
Получение команды из текста
Использование команды
Паттерн "Машина состояний"
Машина состояний
Абстрактный класс состояния бота
Каждое состояние разное
Словарь машин состояний для каждого пользователя
Реализация машины состояний
Точки расширение telegram bot:
Добавление новых команд бота
Добавление новых состояний бота со своими клавиатурами и списком команд
Добавление новых клавиатур и других методов ввода команд
Изменение формата вывода комманд
Что хотели бы добавить в telegram bot:
Соеденить api с ботом
Добавить logger
Добавить Redis
Добавить тесты
CI\CD:
CI - Continuous Integration
При создании мр на ветку main срабатывает триггер github action, после чего проект собирается на виртаульной машине и прогоняются все тесты.
(*файл конфигурации ".github/workflows/dotnet.yml")
CD - Continuous Delivery\ Continuous Deployment
При пуше изменений в ветку main срабатывает триггер github action, после чего посылается команда на сервер, где происходит выполняются следующие шаги:
Обновление данных из репозитория
Получение чувствительных данных для переменных окружения из Github Secrets
Запуск приложения в docker
Установка миграций на бд
(* В случае ошибки при сборке будет использован предыдущий билд, а статус операции во вкладке "actions" будет failed)
(*файл конфигурации ".github/workflows/deploy.yml")