Backend: - OAuth service with pluggable provider architecture (Google + Authentik) - Generic authorize/callback endpoints for any provider - Authentik OIDC integration (configurable base URL) - hashed_password made nullable for OAuth-only users - Migration 009: nullable password column - /auth/switch endpoint returns full AuthResponse for account switching - OAuth-only users get clear error on password login attempt - UserResponse includes oauth_provider + avatar_url Frontend: - OAuth buttons on login form (Google + Authentik) - OAuth callback handler (/auth/callback route) - Multi-account auth store (accounts array, addAccount, switchTo, removeAccount) - Account switcher dropdown in header (hover to see other accounts) - "Add another account" option - English + Russian translations Config: - GOOGLE_CLIENT_ID/SECRET/REDIRECT_URI - AUTHENTIK_CLIENT_ID/SECRET/BASE_URL/REDIRECT_URI Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Personal AI Assistant
A client-server web application for managing different areas of personal life with AI-powered assistance. Upload documents, chat with AI specialists, receive proactive reminders, and track critical information across multiple life domains (health, finance, personal, work, etc.).
Key Features
- AI Chat with Specialists — create chats using configurable skills (e.g., doctor, financial advisor, personal coach). Each skill shapes the AI's behavior as a domain expert.
- Document Management — upload documents (records, reports, contracts, notes, etc.). AI extracts and indexes content for intelligent retrieval.
- Proactive Notifications — AI analyzes your stored data and schedules reminders (deadlines, follow-ups, recurring events) via in-app, email, or Telegram.
- PDF Compilation — request AI-generated summaries and reports as downloadable PDF documents.
- Global Memory — AI maintains a shared memory of critical information across all your chats.
- Multi-language — English and Russian support.
Tech Stack
| Layer | Technology |
|---|---|
| Backend | Python 3.12, FastAPI, SQLAlchemy 2.0, Alembic |
| Frontend | React 18, TypeScript, Vite, Shadcn/ui, Tailwind CSS |
| Database | PostgreSQL 16 |
| AI | Claude API (Anthropic) |
| Notifications | WebSocket, Email (SMTP), Telegram Bot |
| Deployment | Docker Compose |
Getting Started
Prerequisites: Docker and Docker Compose installed.
# Clone the repository
git clone https://git.dolgolyov-family.by/alexei.dolgolyov/personal-ai-assistant.git
cd personal-ai-assistant
# Copy environment config
cp .env.example .env
# Edit .env with your API keys and settings
# Start all services
docker compose up -d
# Create initial admin user
docker compose exec backend python scripts/seed_admin.py
The app will be available at http://localhost.
Project Structure
personal-ai-assistant/
├── backend/ # FastAPI application
├── frontend/ # React SPA
├── telegram-bot/ # Telegram notification bot
├── nginx/ # Reverse proxy config
├── plans/ # Phase subplans
├── docker-compose.yml
└── GeneralPlan.md # Full implementation plan
License
Private project. All rights reserved.
Description
Languages
Python
52.9%
TypeScript
42.3%
HTML
3.8%
CSS
0.4%
Dockerfile
0.4%
Other
0.2%