DV
Back to all projects

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
AI-Powered Productivity Suite

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

Technical Highlights

ChallengeSolution
Multi-provider AI (OpenAI, Anthropic, Gemini)Adapter pattern with factory; API keys encrypted with Fernet
Telegram channel readingDual 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 isolationThree-level guard: DB query filter, API dependency, frontend flag
Background schedulingAPScheduler with timezone support for polling, digests, and sync jobs

Tech Stack

LayerTechnology
FrontendNext.js 16 (App Router), React 19, TypeScript
StylingTailwind CSS v4, shadcn/ui
StateTanStack React Query, React Table
ChartsRecharts
BackendFastAPI, Python 3.12
ORMSQLAlchemy 2.0 (async), Alembic
DatabasePostgreSQL (asyncpg)
AuthJWT + bcrypt, role-based access
AIOpenAI, Anthropic, Google Gemini (multi-provider)
IntegrationsGoogle Calendar, Telegram (Telethon + Bot), Garmin Connect
DeployVercel (frontend), Railway (backend + DB)
TestingVitest, Pytest