Ein KI-gestützter Lernassistent, der eigene Kursmaterialien versteht und per Chat beantwortet. Dokumente werden lokal verarbeitet – kein Datenschutzproblem, keine Cloud-Abhängigkeit.
- Authentifizierung – Registrierung, Login und JWT-gesicherte Routen
- Kursverwaltung – Kurse anlegen und Dokumente (PDF, etc.) hochladen
- RAG-Chat – Fragen zu einem Kurs werden semantisch gegen die eigenen Uploads beantwortet
- Lokales LLM – Ollama läuft komplett lokal, keine externen KI-Dienste nötig
- Vektordatenbank – ChromaDB speichert und durchsucht die Embeddings
- Persistenz – MongoDB sichert Benutzerprofile, Kurse und Upload-Metadaten
| Schicht | Technologie |
|---|---|
| Frontend | React + Vite |
| Backend | Node.js + Express |
| LLM | Ollama (lokal) |
| Dokument-Parsing | LlamaIndex (llama-cloud-services) |
| Vektordatenbank | ChromaDB |
| Datenbank | MongoDB |
| Deployment | Docker Compose |
- Docker & Docker Compose
.env-Datei im Projekt-Root (siehe unten)
# 1. Repository klonen
git clone <repo-url>
cd isa
# 2. Umgebungsvariablen setzen
cp .env.example .env
# .env anpassen (siehe Abschnitt "Konfiguration")
# 3. Alle Dienste starten
docker compose up --build| Dienst | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:3000 |
| Ollama | http://localhost:11434 |
| ChromaDB | http://localhost:8000 |
| MongoDB | localhost:27017 |
Erstelle eine .env-Datei im Projekt-Root:
MONGODB_URI=mongodb://mongo:27017/isa
LLAMA_INDEX=<dein-llama-cloud-api-key>isa/
├── backend/
│ ├── controllers/ # Geschäftslogik (auth, user, chat)
│ ├── routes/ # Express-Routen
│ ├── database/ # MongoDB-Schemas & ChromaDB-Logik
│ └── utils/ # JWT-Hilfsfunktionen
├── frontend/
│ └── src/
│ ├── pages/ # Login, Register, Kursübersicht, Chat
│ ├── components/ # Wiederverwendbare UI-Elemente
│ └── hooks/ # Custom React Hooks
├── assets/
│ └── demo.gif
└── docker-compose.yaml
| Methode | Endpunkt | Beschreibung |
|---|---|---|
| POST | /auth/register |
Benutzer registrieren |
| POST | /auth/login |
Einloggen (gibt JWT zurück) |
| GET | /users/profile |
Eigenes Profil abrufen |
| GET | /users/courses |
Kursliste abrufen |
| POST | /users/uploads |
Dokument hochladen |
| GET | /users/course/:name/uploads |
Uploads eines Kurses |
| POST | /chat/:courseName |
RAG-Chat für einen Kurs |
MIT
