49 lines
3.6 KiB
Markdown
49 lines
3.6 KiB
Markdown
# Writer IDE: Архитектурная спецификация
|
|
|
|
## 🎯 Видение проекта
|
|
Создание локально-ориентированного веб-приложения (IDE для писателей), которое объединяет мощь rich-text редактирования, структурированное управление сюжетом (Story Bible) и бесшовную интеграцию AI-ассистента для генерации, редактуры и анализа текста. Приложение должно давать пользователю полный контроль над данными (локальное хранение) и гибкость в выборе AI-моделей (OpenRouter для качества, Ollama для приватности).
|
|
|
|
## 🛠️ Технологический стек
|
|
|
|
### Frontend
|
|
- **Фреймворк**: Next.js 14+ (App Router, TypeScript)
|
|
- **Стилизация**: Tailwind CSS (строгое использование utility-классов, никаких inline-styles)
|
|
- **Редактор**: Tiptap (Headless wrapper вокруг ProseMirror)
|
|
- **Управление состоянием**: Zustand (легковесный, без бойлерплейта Redux)
|
|
- **Иконки**: Lucide React
|
|
- **HTTP-клиент**: Axios (с типизацией ответов)
|
|
|
|
### Backend
|
|
- **Фреймворк**: FastAPI (Python 3.10+)
|
|
- **Валидация**: Pydantic V2
|
|
- **Асинхронность**: Строгое использование `async`/`await`
|
|
- **Хранение**: Локальная файловая система (JSON/Markdown файлы в директории проекта пользователя)
|
|
|
|
### AI Интеграция (Внутренняя логика приложения)
|
|
- **Роутинг**: Абстрактный сервис, поддерживающий как OpenRouter API, так и локальный Ollama (`http://localhost:11434`).
|
|
- **Пресеты**: Жесткое разделение параметров генерации (`temperature`, `top_p`) в зависимости от действия (Creative Draft, Editor, Brainstorm).
|
|
|
|
## 📁 Структура проекта
|
|
```text
|
|
writer-ide/
|
|
├── PROJECT.md # Этот файл
|
|
├── TASKS.md # Пошаговый план разработки
|
|
├── AGENTS.md # Стратегия выбора AI-моделей
|
|
├── .cursorrules # Правила для AI-ассистента в IDE
|
|
│
|
|
├── frontend/ # Next.js приложение
|
|
│ ├── src/
|
|
│ │ ├── app/ # Next.js App Router (pages, layout)
|
|
│ │ ├── components/ # UI компоненты
|
|
│ │ │ ├── editor/ # Tiptap редактор, Toolbar, AI-меню
|
|
│ │ │ ├── sidebar/ # FileExplorer, StoryExplorer
|
|
│ │ │ └── ui/ # Переиспользуемые кнопки, инпуты
|
|
│ │ ├── lib/ # Утилиты, конфигурация axios, типы
|
|
│ │ └── stores/ # Zustand stores (appStore, editorStore)
|
|
│ └── package.json
|
|
│
|
|
└── backend/ # FastAPI сервер
|
|
├── main.py # Точка входа, настройка CORS
|
|
├── routers/ # API эндпоинты (projects, documents, ai)
|
|
├── services/ # Бизнес-логика (file_ops, llm_router)
|
|
└── models/ # Pydantic схемы запросов/ответов |