AI-Powered Productivity Suite
Full-Stack Personal Productivity Platform
7 integrated modules: task management (Kanban), job search with AI matching, Google Calendar sync, Google Drive notes, Telegram channel digests with AI classification, Garmin health tracking with AI daily briefings, and unified dashboard. Cross-module data linking, demo mode with role-based access.
FastAPI Next.js PostgreSQL Google OAuth Telegram MTProto Garmin API Multi-provider AI
Overview
Personal Hub is a full-stack web platform that consolidates personal productivity and career management into a single integrated dashboard. Instead of juggling multiple apps — each with its own auth, settings, and deployment — everything lives under one roof: tasks, job applications, calendar, notes, Telegram channel monitoring, and health tracking.
Architecture
┌─────────────────────────────────────────────────────┐
│ Frontend (Vercel) │
│ Next.js 16 · React 19 · TypeScript · Tailwind v4 │
│ shadcn/ui · React Query · Recharts │
└──────────────────────┬──────────────────────────────┘
│ REST API + JWT Auth
┌──────────────────────▼──────────────────────────────┐
│ Backend (Railway) │
│ FastAPI · Python 3.12 · SQLAlchemy 2.0 · Alembic │
├──────────┬───────────┬───────────┬──────────────────┤
│PostgreSQL│ Google │ Telegram │ AI Providers │
│ (asyncpg)│ Calendar │ MTProto + │ OpenAI / Anthropic│
│ 19 models│ OAuth2 │ Bot API │ / Gemini │
│ │ │ │ │
│ │ Garmin │ Job APIs │ │
│ │ Connect │ Adzuna / │ │
│ │ │ SerpAPI │ │
└──────────┴───────────┴───────────┴──────────────────┘
Key Features
- Task Manager — Kanban board with drag-and-drop, priorities, subtasks, timeline, and reminders
- Job Hunt Tracker — full application pipeline with AI-generated resumes, ATS scoring, gap analysis, and cover letters
- Calendar — two-way Google Calendar sync with meeting notes stored locally
- Notes — Markdown editor synced with Google Drive, cross-linked to tasks and events
- Telegram Pulse — channel monitoring via MTProto with AI-generated digests (daily/weekly schedules)
- Vitals — Garmin Connect sync (steps, heart rate, sleep, exercises) with AI daily briefings
- Dashboard — centralized overview with widgets from every module
- Demo Mode — production-quality demo account with realistic data, role-based isolation at DB/API/UI levels
Technical Highlights
| Challenge | Solution |
|---|
| Multi-provider AI (OpenAI, Anthropic, Gemini) | Adapter pattern with factory; API keys encrypted with Fernet |
| Telegram channel reading | Dual approach: Telethon (MTProto) for reading + Bot API for notifications |
| Garmin rate limiting (no public API) | Circuit breaker with exponential backoff (15→120 min), sync log table |
| Demo data isolation | Three-level guard: DB query filter, API dependency, frontend flag |
| Background scheduling | APScheduler with timezone support for polling, digests, and sync jobs |
Tech Stack
| Layer | Technology |
|---|
| Frontend | Next.js 16 (App Router), React 19, TypeScript |
| Styling | Tailwind CSS v4, shadcn/ui |
| State | TanStack React Query, React Table |
| Charts | Recharts |
| Backend | FastAPI, Python 3.12 |
| ORM | SQLAlchemy 2.0 (async), Alembic |
| Database | PostgreSQL (asyncpg) |
| Auth | JWT + bcrypt, role-based access |
| AI | OpenAI, Anthropic, Google Gemini (multi-provider) |
| Integrations | Google Calendar, Telegram (Telethon + Bot), Garmin Connect |
| Deploy | Vercel (frontend), Railway (backend + DB) |
| Testing | Vitest, Pytest |