2026-03-31 20:58:47 +02:00
2026-03-31 14:19:39 +02:00
2026-03-31 20:58:47 +02:00
2026-03-31 20:58:47 +02:00
2026-03-31 20:58:47 +02:00
2026-03-31 15:42:49 +02:00
2026-03-31 20:58:47 +02:00
2026-03-31 20:58:47 +02:00

AI Teacher — Neurosurgeon RAG Learning Platform

A web application for neurosurgeons to upload medical textbooks (PDF), have them embedded into a pgvector store, then select from a predefined topic list to receive AI-generated cross-book summaries, and engage in grounded RAG chat.

Architecture

graph TD
    User["Neurosurgeon (Browser)"]
    FE["Frontend\nVue.js 3 / Vite\n:5173"]
    BE["Backend\nSpring Boot 4 / Spring AI\n:8080"]
    DB["PostgreSQL + pgvector\n(provided)"]
    LLM["LLM Provider\n(OpenAI / configurable)"]

    User -->|HTTP| FE
    FE -->|REST /api/v1/...| BE
    BE -->|JDBC / pgvector| DB
    BE -->|Embedding + Chat API| LLM

Stack

  • Backend: Spring Boot 4.0.5 + Spring AI 2.0.0-M4, Java 21, Maven
  • Frontend: Vue.js 3 + Vite + TypeScript + Pinia + Axios
  • Database: PostgreSQL 16 + pgvector extension
  • Auth: HTTP Basic (single shared in-memory user)

Quick Start

See specs/001-neuro-rag-learning/quickstart.md for full instructions.

Local Dev

# Start the database
docker compose up -d

# Backend
cd backend
mvn spring-boot:run

# Frontend
cd frontend
npm install
npm run dev

Environment Variables

Variable Required Description
OPENAI_API_KEY Yes OpenAI API key for embeddings and chat
APP_PASSWORD Yes Shared password for HTTP Basic auth
DB_URL Yes JDBC URL, e.g. jdbc:postgresql://localhost:5432/aiteacher
DB_USERNAME Yes Database username
DB_PASSWORD Yes Database password
Description
No description provided
Readme 100 MiB
Languages
Shell 42.3%
Java 26%
Vue 25.1%
TypeScript 5.9%
Dockerfile 0.4%
Other 0.3%