77 lines
2.0 KiB
Markdown
77 lines
2.0 KiB
Markdown
# StudyOS
|
|
|
|
Plataforma de estudio personal con IA. Chat con streaming, seguimiento de progreso, procesamiento de PDFs, y micro-chats temáticos (fork/merge).
|
|
|
|
## Stack
|
|
- **Backend**: Node.js + Express + SQLite (sql.js, WASM — sin compilación nativa)
|
|
- **Frontend**: React 18 + Vite
|
|
- **Streaming**: Server-Sent Events (SSE)
|
|
|
|
## Requisitos
|
|
- Node.js 18+
|
|
|
|
## Instalación
|
|
|
|
```bash
|
|
cd studyos/server && npm install
|
|
cd studyos/client && npm install
|
|
```
|
|
|
|
## Desarrollo
|
|
|
|
```bash
|
|
# Terminal 1 — Backend
|
|
cd studyos/server
|
|
node index.js
|
|
|
|
# Terminal 2 — Frontend
|
|
cd studyos/client
|
|
npm run dev
|
|
```
|
|
|
|
Abrí http://localhost:5173 en el navegador.
|
|
|
|
## Producción
|
|
|
|
```bash
|
|
cd studyos/client && npm run build
|
|
cd studyos/server && node index.js
|
|
```
|
|
|
|
Todo se sirve desde http://localhost:3001.
|
|
|
|
## Estructura
|
|
|
|
```
|
|
studyos/
|
|
├── server/ # Backend Express
|
|
│ ├── index.js # Servidor principal + init async
|
|
│ ├── db.js # Schema SQLite vía sql.js (WASM) + seed
|
|
│ ├── lib/llm.js # Adaptador SSE (Anthropic + OpenAI)
|
|
│ ├── routes/ # Endpoints REST
|
|
│ └── systemPromptBuilder.js
|
|
├── client/ # Frontend React + Vite
|
|
│ └── src/
|
|
│ ├── components/ # Sidebar, MainChat, ForkPanel, etc.
|
|
│ ├── hooks/ # useChat, usePdfs, useProgress
|
|
│ ├── pages/ # Settings
|
|
│ └── lib/ # API client
|
|
└── data/ # SQLite database (auto-creado)
|
|
```
|
|
|
|
## Configuración Inicial
|
|
|
|
1. La base de datos se crea automáticamente en `data/studyos.db`
|
|
2. El modelo por defecto es `claude-sonnet-4` (Anthropic)
|
|
3. Configurá tus API keys en Settings → Modelos
|
|
4. El endpoint VLM por defecto es `http://localhost:8080/vlm`
|
|
|
|
## Features
|
|
|
|
- 💬 Chat con streaming SSE (Anthropic + OpenAI-compatible)
|
|
- 📄 Subida y procesamiento de PDFs
|
|
- 📊 Seguimiento de progreso por tema
|
|
- 🔀 Micro-chats temáticos (fork/merge)
|
|
- 🎨 Tema oscuro con diseño pulido
|
|
- ⚙️ Configuración de modelos y VLM
|