/tech-interview-trainer

Telegram Бот для подготовки к собеседованию на Frontend разработчика. JavaScript + grammY

Primary LanguageJavaScript

Telegram Бот для Подготовки к Собеседованию на Frontend Разработчика

Этот Telegram бот разработан для помощи в подготовке к собеседованиям на позицию Frontend разработчика. Бот предлагает викторины по различным категориям, таким как HTML, CSS, JavaScript и React, и предоставляет рейтинговый режим для оценки навыков пользователя.

Функциональности бота

  • Старт: Пользователь начинает взаимодействие с ботом, используя команду /start. Бот приветствует пользователя и предлагает выбрать категорию вопросов или включить рейтинговый режим.
  • Викторины: Пользователь выбирает одну из категорий (HTML, CSS, JavaScript, React) и отвечает на вопросы. После каждого ответа бот сообщает, правильный ли ответ, и предлагает следующий вопрос.
  • Рейтинговый режим: Пользователь отвечает на вопросы из всех категорий до первой ошибки. Количество правильных ответов фиксируется как очки, которые сохраняются в таблице лидеров.
  • Таблица лидеров: Пользователь может посмотреть топ-10 игроков, набравших наибольшее количество очков в рейтинговом режиме.
  • Профиль: Команда /profile позволяет пользователю просмотреть информацию о количестве правильных ответов в каждой категории, а также последний результат в рейтинговом режиме.

Используемые технологии

  • Node.js: Серверная платформа для выполнения JavaScript-кода.
  • grammy: Модуль для создания Telegram ботов.
  • sqlite: Встраиваемая база данных для хранения результатов пользователей.
  • date-fns: Библиотека для форматирования дат и времени.
  • dotenv: Модуль для загрузки переменных окружения из .env файла.

Структура проекта

  • index.js - Главный файл с логикой бота.
  • questions/ - Папка с файлами вопросов по HTML, CSS, JavaScript и React.
  • leaderboard.db - Файл базы данных SQLite для хранения таблицы лидеров.

Демо бота

Обзор возможностей бота и инструкция по настройке - Смотреть на YouTube
Опробовать бота можно в Telegram по ссылке - @Tehnomaniak_trainer_bot

Деплой бота на сервер

Видео-гайд по деплою Telegram бота на сервер - Смотреть на YouTube

  • Установим Git и обновим компоненты системы
sudo apt update
sudo apt install git
  • Клонируем репозиторий с ботом на сервер:
git clone https://github.com/FilimonovAlexey/tech-interview-trainer.git
  • Переходим в папку проекта:
cd tech-interview-trainer
  • Устанавливаем Node.js и пакетный менеджер npm
sudo apt install nodejs
sudo apt install npm
  • Обновим Node js и npm, после выполняем перезапуск сервера
sudo npm install -g n
sudo n stable
  • Устанавливаем все зависимости
cd tech-interview-trainer
npm i
  • Создаем глобальную переменную
nano .env
  • Создаем внутри файлов .env две переменные
BOT_API_KEY=''
ADMIN_ID=''
  • Устанавливаем pm2 для запуска бота
npm i pm2 -g
  • Запуск бота на сервере
pm2 start index.js

Документация по grammy js

Документация grammy js

Authors