AI-Powered Productivity Suite
Полнофункциональная платформа личной продуктивности
7 интегрированных модулей: управление задачами (Kanban), поиск работы с AI-подбором, синхронизация Google Calendar, заметки Google Drive, дайджесты Telegram-каналов с AI-классификацией, трекинг здоровья Garmin с AI-брифингами и единый дашборд. Кросс-модульная связь данных, демо-режим с ролевым доступом.
FastAPI Next.js PostgreSQL Google OAuth Telegram MTProto Garmin API Multi-provider AI
Обзор
Personal Hub — полнофункциональная веб-платформа, объединяющая личную продуктивность и управление карьерой в едином интегрированном дашборде. Вместо переключения между множеством приложений — каждое со своей авторизацией, настройками и деплоем — всё собрано в одном месте: задачи, отклики на вакансии, календарь, заметки, мониторинг Telegram-каналов и трекинг здоровья.
Архитектура
┌─────────────────────────────────────────────────────┐
│ Фронтенд (Vercel) │
│ Next.js 16 · React 19 · TypeScript · Tailwind v4 │
│ shadcn/ui · React Query · Recharts │
└──────────────────────┬──────────────────────────────┘
│ REST API + JWT Auth
┌──────────────────────▼──────────────────────────────┐
│ Бэкенд (Railway) │
│ FastAPI · Python 3.12 · SQLAlchemy 2.0 · Alembic │
├──────────┬───────────┬───────────┬──────────────────┤
│PostgreSQL│ Google │ Telegram │ AI-провайдеры │
│ (asyncpg)│ Calendar │ MTProto + │ OpenAI / Anthropic│
│ 19 моделей│ OAuth2 │ Bot API │ / Gemini │
│ │ │ │ │
│ │ Garmin │ Job APIs │ │
│ │ Connect │ Adzuna / │ │
│ │ │ SerpAPI │ │
└──────────┴───────────┴───────────┴──────────────────┘
Ключевые возможности
- Менеджер задач — Канбан-доска с drag-and-drop, приоритетами, подзадачами, таймлайном и напоминаниями
- Трекер вакансий — полный pipeline откликов с AI-генерацией резюме, ATS-скорингом, анализом разрывов и сопроводительными письмами
- Календарь — двусторонняя синхронизация с Google Calendar, заметки к встречам хранятся локально
- Заметки — Markdown-редактор с синхронизацией Google Drive, перекрёстные ссылки на задачи и события
- Telegram Pulse — мониторинг каналов через MTProto с AI-дайджестами (ежедневные/еженедельные расписания)
- Vitals — синхронизация с Garmin Connect (шаги, пульс, сон, тренировки) с AI-брифингами
- Дашборд — централизованный обзор с виджетами каждого модуля
- Демо-режим — полнофункциональный демо-аккаунт с реалистичными данными, изоляция по ролям на уровне БД/API/UI
Технические решения
| Задача | Решение |
|---|
| Мульти-провайдерный AI (OpenAI, Anthropic, Gemini) | Паттерн адаптера с фабрикой; API-ключи зашифрованы Fernet |
| Чтение Telegram-каналов | Двойной подход: Telethon (MTProto) для чтения + Bot API для уведомлений |
| Rate limiting Garmin (нет публичного API) | Circuit breaker с экспоненциальным откатом (15→120 мин), таблица логов синхронизации |
| Изоляция демо-данных | Три уровня защиты: фильтр в запросах БД, dependency в API, флаг на фронтенде |
| Фоновое планирование | APScheduler с timezone для polling, генерации дайджестов и синхронизации |
Технологический стек
| Слой | Технология |
|---|
| Фронтенд | Next.js 16 (App Router), React 19, TypeScript |
| Стилизация | Tailwind CSS v4, shadcn/ui |
| Состояние | TanStack React Query, React Table |
| Графики | Recharts |
| Бэкенд | FastAPI, Python 3.12 |
| ORM | SQLAlchemy 2.0 (async), Alembic |
| База данных | PostgreSQL (asyncpg) |
| Авторизация | JWT + bcrypt, ролевая модель доступа |
| AI | OpenAI, Anthropic, Google Gemini (мульти-провайдер) |
| Интеграции | Google Calendar, Telegram (Telethon + Bot), Garmin Connect |
| Деплой | Vercel (фронтенд), Railway (бэкенд + БД) |
| Тестирование | Vitest, Pytest |