Этот репозиторий является результатом выполнения тестового задания
Проект состоит из следующих packages/apps:
web
: Next.js приложение. Является фронтенд частью бота.backend
: Express.js сервер. Является бэкенд частью бота.bot
: Grammy бот. Обрабатывает добваления бота в группу и команду/start
.Является фронтенд частью ботаpublihser
: Сервис для публикации запланированных постов в канал. Является бэкенд частью бота.migrator
: Сервис для миграции базы данных. Является бэкенд частью бота.@repo/db
: Kysely база данных. Типы для БД. Является бэкенд частью бота.@repo/types
: Схемы валидации данных для общения между сервисами.@repo/services
: Различные сервисы. Является бэкенд частью бота.@repo/ui
: a stub React component library shared by bothweb
anddocs
applications@repo/eslint-config
:eslint
configurations (includeseslint-config-next
andeslint-config-prettier
)@repo/typescript-config
:tsconfig.json
s used throughout the monorepo
Каждый пакет написан на языке TypeScript.
Проект использует конфигурацию через переменные среды. Пример конфигурации можно посмотреть в .env
Для сборки приложений и пакетов, нужно запустить следующую команду:
pnpm build
Прежде всего нужно создать учётную запись на тестовом бэкенде Telegram. Инструкция.
В тестовом сервере нужно создать бота с помощью BotFather, и токен сохранить в переменную окружения TG_TOKEN_TEST
.
Так же понадобиться СУБД PostgreSQL. Можете поднять свой инстанс или запустить контейнер.
docker compose up -d
Для запуска бота в режиме разработки, нужно запустить следующую команду:
pnpm dev
Затем написать /start
боту, чтобы получить доступ к Mini App.