Background
A personal full-stack project developed during September–October 2026 to help retrieve and work with learning materials.
Document processing and retrieval
Supports PDF, DOCX, Markdown and TXT. PyMuPDF, python-docx and text processing extract content into chunks that retain source positions. Embeddings and NumPy cosine similarity retrieve relevant passages, which are supplied to the model as context.
Models and interaction
Integrates Ollama local models and compatible APIs, with separate configuration for chat and embedding models. Features include SSE streaming, stopping and regenerating answers, source navigation, and historical citation snapshots that survive document deletion.
Full stack and user isolation
Uses React, TypeScript and Vite on the frontend, and FastAPI, SQLAlchemy and Alembic on the backend. SQLite serves the single-user version; PostgreSQL serves the multi-user version. Authentication, per-user data isolation and encrypted API key storage are implemented.
Engineering and verification
Docker Compose organizes services and an independent worker processes tasks with retries. The project supports persistence, backup and recovery. Pytest and Playwright validate APIs and browser workflows; the multi-user version has been developed and verified locally.