Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/filimonovalexey/tech-interview-trainer

Telegram Бот для подготовки к собеседованию на Frontend разработчика. JavaScript + grammY
https://github.com/filimonovalexey/tech-interview-trainer

grammyjs javascript javascript-bot sqlite telegram-bot

Last synced: 3 days ago
JSON representation

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

Awesome Lists containing this project

README

        

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

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

![](./public/prev.png)

## Функциональности бота
- **Старт**: Пользователь начинает взаимодействие с ботом, используя команду `/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](https://youtu.be/fzgzOgq5_ho)
Опробовать бота можно в Telegram по ссылке - [@Tehnomaniak_trainer_bot](https://t.me/Tehnomaniak_trainer_bot)

## Деплой бота на сервер
Видео-гайд по деплою Telegram бота на сервер - [Смотреть на YouTube](https://youtu.be/vPqAYdjkm4o)

* Установим Git и обновим компоненты системы
```bash
sudo apt update
sudo apt install git
```

* Клонируем репозиторий с ботом на сервер:
```bash
git clone https://github.com/FilimonovAlexey/tech-interview-trainer.git
```

* Переходим в папку проекта:
```bash
cd tech-interview-trainer
```

* Устанавливаем Node.js и пакетный менеджер npm
```bash
sudo apt install nodejs
sudo apt install npm
```

* Обновим Node js и npm, после выполняем перезапуск сервера
```bash
sudo npm install -g n
sudo n stable
```
* Устанавливаем все зависимости
```bash
cd tech-interview-trainer
npm i
```

* Создаем глобальную переменную
```bash
nano .env
```

* Создаем внутри файлов .env две переменные
```bash
BOT_API_KEY=''
ADMIN_ID=''
```

* Устанавливаем pm2 для запуска бота
```bash
npm i pm2 -g
```

* Запуск бота на сервере
```bash
pm2 start index.js
```

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

[Документация grammy js](https://grammy.dev/guide/)

## Authors

- [@FilimonovAlexey](https://github.com/FilimonovAlexey)