Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/filimonovalexey/tech-interview-trainer
- Owner: FilimonovAlexey
- Created: 2024-05-11T15:46:02.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-06-25T15:52:25.000Z (5 months ago)
- Last Synced: 2024-06-25T17:41:52.767Z (5 months ago)
- Topics: grammyjs, javascript, javascript-bot, sqlite, telegram-bot
- Language: JavaScript
- Homepage: https://t.me/Tehnomaniak_trainer_bot
- Size: 4.83 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
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)