Современное веб-приложение для психологической поддержки, использующее методы Гештальт-терапии и когнитивно-поведенческой терапии (КПТ). Доступно как веб-сайт, PWA приложение и Telegram Mini App.
- 💬 Чат с ИИ-психологом — 24/7 поддержка на основе GPT-4o-mini с методами Gestalt therapy и CBT
- 📋 Beck Depression Inventory — тест из 21 вопроса с автоматической интерпретацией результатов
- 🧘 Библиотека упражнений — дыхательные техники, релаксация, осознанность, когнитивные упражнения
- ⏱️ Таймер для упражнений — с визуальным прогрессом и звуковым уведомлением
⚠️ Режим кризиса — автоматическое обнаружение суицидальных мыслей с экстренными контактами- 💾 История разговоров — сохранение и управление сессиями в БД
- 📱 PWA — установка на телефон как нативное приложение
- 🤖 Telegram Mini App — запуск прямо в Telegram мессенджере
- 🌙 Космический дизайн — успокаивающая визуальная тема с градиентами и звездами
Frontend:
- React 19 + TypeScript
- Tailwind CSS 4
- tRPC для типобезопасного API
- Wouter для маршрутизации
- Streamdown для markdown-рендеринга
Backend:
- Express.js
- tRPC Server
- MySQL/TiDB Database
- Drizzle ORM
Интеграции:
- OpenRouter API (GPT-4o-mini)
- Telegram Bot API
- Vercel Edge Functions
# Установка зависимостей
pnpm install
# Запуск dev сервера
pnpm dev
# Открыть в браузере
# http://localhost:3000Создайте .env файл с необходимыми переменными:
DATABASE_URL=mysql://user:password@host/database
JWT_SECRET=your-secret-key
VITE_APP_ID=your-app-id
OAUTH_SERVER_URL=https://api.manus.im
OWNER_OPEN_ID=your-owner-id
BUILT_IN_FORGE_API_URL=https://forge.manus.im
BUILT_IN_FORGE_API_KEY=your-forge-key
OPENROUTER_API_KEY=your-openrouter-key
TELEGRAM_BOT_TOKEN=your-telegram-bot-tokenpsybot-web/
├── client/ # React приложение
│ ├── src/
│ │ ├── pages/ # Страницы (Home, Conversations, etc)
│ │ ├── components/ # React компоненты
│ │ ├── hooks/ # Custom hooks
│ │ ├── lib/ # Утилиты и конфигурация
│ │ ├── contexts/ # React contexts
│ │ ├── App.tsx # Главный компонент
│ │ └── main.tsx # Entry point
│ ├── public/ # Статические файлы
│ │ ├── manifest.json # PWA манифест
│ │ └── service-worker.js
│ └── index.html
├── server/ # Express сервер
│ ├── routers.ts # tRPC маршруты
│ ├── db.ts # Функции БД
│ ├── db-conversations.ts # История разговоров
│ ├── _core/ # Ядро приложения
│ │ ├── index.ts # Точка входа сервера
│ │ ├── telegram.ts # Telegram Bot Handler
│ │ ├── openrouter.ts # OpenRouter API
│ │ ├── env.ts # Переменные окружения
│ │ ├── context.ts # tRPC контекст
│ │ └── trpc.ts # tRPC конфигурация
│ └── tests/ # Unit тесты
├── drizzle/ # ORM схема и миграции
│ └── schema.ts
├── shared/ # Общий код
│ ├── psychology.ts # Психологические данные
│ ├── exercises.json # База упражнений
│ └── appRouterType.ts # Типы маршрутов
└── package.json
Полнофункциональный чат-интерфейс с поддержкой markdown, автоматическим обнаружением кризиса и сохранением истории.
Компонент Beck Depression Inventory с 21 вопросом, автоматическим подсчетом баллов и интерпретацией результатов.
Библиотека упражнений с фильтрацией по категориям и пошаговыми инструкциями.
Таймер с визуальным прогрессом, паузой/возобновлением и звуковым уведомлением.
# Подключить GitHub репозиторий
# Vercel автоматически обнаружит Next.js конфигурацию
# Добавить переменные окружения в Vercel Dashboard
# Нажать Deploy# Сборка
pnpm build
# Запуск production версии
pnpm startПриложение доступно как Telegram Mini App через бота @nnotrain_bot.
Команды:
/start— Запустить приложение/help— Справка по использованию
Ссылка: https://t.me/nnotrain_bot?startapp=psybot
Chat:
chat.sendMessage— Отправить сообщение психологу
Conversations:
conversations.create— Создать новый разговорconversations.list— Получить список разговоровconversations.getMessages— Получить сообщения разговораconversations.updateTitle— Обновить название разговораconversations.delete— Удалить разговорconversations.clearMessages— Очистить сообщения
Auth:
auth.me— Получить текущего пользователяauth.logout— Выход
Telegram:
POST /api/telegram/webhook— Webhook для Telegram Bot
# Запустить все тесты
pnpm test
# Запустить конкретный тест
pnpm test server/telegram.test.ts
# Watch режим
pnpm test --watch- Все API ключи хранятся на сервере, не передаются клиенту
- OpenRouter API ключ защищен через Vercel Edge Functions
- Telegram Bot Token безопасно обрабатывается на сервере
- Все данные пользователя шифруются в БД
- Lazy loading компонентов
- Code splitting для оптимизации бандла
- Service Worker для кэширования и офлайн-работы
- CDN для статических файлов
- Compression ответов сервера
MIT License - свободное использование в личных и коммерческих целях.
AnykeyevRoman - Разработка и поддержка
Если у вас есть вопросы или вы нашли баг, пожалуйста создайте Issue в GitHub репозитории.
- OpenRouter за API доступ к GPT-4o-mini
- Telegram за Bot API
- React, Express и другим open-source проектам
Приложение работает 24/7 без перерывов. Ваше психическое здоровье важно. 💚