Architecture

Overview

Pallas consists of two main modules: the Study Companion and the Encrypted Journal. Both share the same FastAPI backend but are architecturally isolated.

Tech Stack

Component

Technology

Backend

Python 3.13 · FastAPI · SQLAlchemy · SQLite

Frontend

React · TypeScript · Vite · Tailwind CSS

AI (Study)

Claude API · Ollama (switchable)

AI (Journal)

Ollama only (local, private)

Encryption

AES-256-GCM · Argon2id

Data Flow

  1. User uploads a file (PDF, Word, PowerPoint, Excel, Image, Markdown, TXT)

  2. Parser service extracts raw text

  3. AI service generates summary and key terms

  4. Mindmap service builds hierarchical node structure

  5. Frontend renders interactive, zoomable mindmap

Database Architecture

Pallas uses two separate SQLite databases:

  • pallas.db — Study modules, documents, summaries, mindmap nodes

  • journal.db — Encrypted journal entries, mood data, embeddings (completely isolated)

AI Provider Pattern

The study companion uses a switchable provider pattern. Both providers implement the same interface (summarize, explain_term, generate_mindmap, deep_dive), allowing seamless switching between Claude API and local Ollama.

The journal module exclusively uses Ollama — no external API calls, no shared code path with Claude.