Телеграм бот - персональный помощник для начинающего java разработчика.
Документация » (в разработке)
Функиональность бота:
- Показывает релевантные отфильтрованные вакансии java разработчика до уровня middle
- Выборка вакансий происходит за последние 2 суток c сайтов: hh.ru, career.habr.com, proglib.io
- Можно добавить вакансию в избранные или скрыть нежелательные
- По команде /favourites выводится список избранных вакансий
- С помощью системы карточек (вопрос/ответ) позволяет повторить основные теоретические вопросы, которые могут встретиться на собеседовании
- Карточки разделены по темам
- Вопросы генерируются в случайном порядке в рамках заданной темы
- Можно скрыть нежелательные вопросы
- Можно загружать фото и документы размером не более 5МБ (Необходимо зарегистрироваться)
- При команде /exit полностью удаляет пользователя и файлы
- Для взаимодействия с Telegram API использована библиотека TelegramBots.
- Для взаимодействия с HeadHunter используется HeadHunter API.
- Установить
- Копировать проект
- Создать файл .env в директории проекта и заполнить его (Для запуска локально необходимо добавить значения из файла
.env
в переменные среды.) - В директории проекта в консоли выполнить команды:
mvn package
docker-compose up
- В директории с папкой проекта создать папку
files
и скопироватьcards.json
Проект состоит из 4 микросервисов:
- dispatcher
порт 8088
:- Микросервис взаимоействия с телеграм: регистрация бота, отправка сообщений, а также первичная валидация данных и распределение по очередям в брокере сообщений
- node
порт 8085
:- Микросервис в котором происходит обработка сообщений из брокера и реализована основная бизнес логика приложения
- mail-service
порт 8087
:- Микросервис для отправки email, содержащего ссылку для подверждения регистрации
- rest-service
порт 8086
:- RESTful API сервис обрабатывает входящие http запросы на скачивание файлов и подтверждение регистрации
Содержание файла .env:
JJAB_USERNAME=
username телеграм бота. Например: JavaBot
JJAB_TOKEN=
токен телеграм бота. Например: 123456:AD5e7b_ghjAdUQR60c2StQRW0il0Xbnm
MAIL_SERVICE_NAME=
почта для отправки писем регистрации. Например: bot@gmail.com
MAIL_SERVICE_PASSWORD=
пароль от почты.
SALT=
случайный набор символов для кодировки данных в запросах. Например: 3452@#vSD234YTEY&$%
HH_TOKEN=
токен для hh.ru. Получается на сайте при регистрации приложения.
HH_EMAIL=
почта пользователя hh.ru, на которого зарегистрировано приложение.
RABBITMQ_DEFAULT_USER=
логин стандартного пользователя RabbitMQ.
RABBITMQ_DEFAULT_PASS=
пароль стандартного пользователя RabbitMQ.
RABBITMQ_ADMIN_USER=
логин администратора RabbitMQ.
RABBITMQ_ADMIN_PASS=
пароль администратора RabbitMQ.
SPRING_DATASOURCE_USER=
логин пользователя базы данных.
SPRING_DATASOURCE_PASSWORD=
пароль пользователя базы данных.
POSTGRES_USER=
логин пользователя базы данных.
POSTGRES_PASSWORD=
пароль пользователя базы данных.
- Настроить CI/CD
- Написать документацию на GitBook
- Дополнить карточки вопросами по всем категориям
- Откорректировать генерацию карточек с возможностью последовательного просмотра
- Добавить другие сайты для поиска вакансий
- Настроить автоматическое обновление токена hh.ru
- Добавить возможность откликаться на вакансии прямо из бота
- Покрыть код тестами
- Откорректировать исключения на более релевантные