161 lines
5.0 KiB
Markdown
161 lines
5.0 KiB
Markdown
# CourseCraft - AI-Powered Course Creation Platform
|
||
|
||
CourseCraft - это платформа для создания образовательных курсов с помощью искусственного интеллекта. Просто опишите тему курса, и AI создаст полноценный курс с структурой, главами, уроками и контентом.
|
||
|
||
## Возможности
|
||
|
||
- **AI-генерация курсов** - создание курсов по текстовому описанию
|
||
- **Уточняющие вопросы** - AI задаёт вопросы для лучшего понимания потребностей
|
||
- **WYSIWYG редактор** - редактирование курсов с помощью TipTap
|
||
- **AI-режим редактирования** - переписывание текста с помощью нейросети
|
||
- **Система тарифов** - FREE, PREMIUM, PRO с разными лимитами
|
||
- **Настраиваемые AI модели** - возможность выбора модели через OpenRouter
|
||
|
||
## Технологический стек
|
||
|
||
### Frontend
|
||
- Next.js 14 (App Router)
|
||
- TypeScript
|
||
- TailwindCSS + shadcn/ui
|
||
- TipTap - WYSIWYG редактор
|
||
- Framer Motion - анимации
|
||
|
||
### Backend
|
||
- NestJS
|
||
- PostgreSQL + Prisma
|
||
- Redis + BullMQ
|
||
- Supabase Auth
|
||
- Stripe - платежи
|
||
|
||
### AI
|
||
- OpenRouter API
|
||
- Настраиваемые модели (GPT-4, Claude, Llama и др.)
|
||
|
||
### Инфраструктура
|
||
- Docker Compose
|
||
- Meilisearch - полнотекстовый поиск
|
||
- pgvector - embeddings
|
||
|
||
## Быстрый старт
|
||
|
||
### Требования
|
||
- Node.js 20+
|
||
- pnpm 9+
|
||
- Docker и Docker Compose
|
||
|
||
### Установка
|
||
|
||
1. Клонируйте репозиторий:
|
||
```bash
|
||
git clone https://github.com/your-username/coursecraft.git
|
||
cd coursecraft
|
||
```
|
||
|
||
2. Установите зависимости:
|
||
```bash
|
||
pnpm install
|
||
```
|
||
|
||
3. Создайте файл `.env` из примера:
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
|
||
4. Заполните переменные окружения в `.env`:
|
||
- `DATABASE_URL` - URL PostgreSQL
|
||
- `REDIS_URL` - URL Redis
|
||
- `NEXT_PUBLIC_SUPABASE_URL` - URL вашего Supabase проекта
|
||
- `NEXT_PUBLIC_SUPABASE_ANON_KEY` - Anon key Supabase
|
||
- `SUPABASE_SERVICE_ROLE_KEY` - Service role key Supabase
|
||
- `OPENROUTER_API_KEY` - API ключ OpenRouter
|
||
- `STRIPE_SECRET_KEY` - Secret key Stripe
|
||
- `STRIPE_WEBHOOK_SECRET` - Webhook secret Stripe
|
||
- `MEILISEARCH_API_KEY` - Master key Meilisearch
|
||
|
||
5. Запустите Docker контейнеры:
|
||
```bash
|
||
pnpm docker:up
|
||
```
|
||
|
||
6. Примените миграции базы данных:
|
||
```bash
|
||
pnpm db:push
|
||
```
|
||
|
||
7. Запустите приложение в режиме разработки:
|
||
```bash
|
||
pnpm dev
|
||
```
|
||
|
||
Приложение будет доступно по адресам:
|
||
- Frontend: http://localhost:3000
|
||
- API: http://localhost:3001
|
||
- API Docs: http://localhost:3001/docs
|
||
- Meilisearch: http://localhost:7700
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
coursecraft/
|
||
├── apps/
|
||
│ ├── web/ # Next.js Frontend
|
||
│ ├── api/ # NestJS Backend
|
||
│ └── ai-service/ # AI Pipeline Service
|
||
├── packages/
|
||
│ ├── database/ # Prisma схема
|
||
│ └── shared/ # Общие типы и утилиты
|
||
├── docker/
|
||
│ └── docker-compose.yml
|
||
└── turbo.json
|
||
```
|
||
|
||
## Команды
|
||
|
||
```bash
|
||
# Разработка
|
||
pnpm dev # Запуск всех сервисов
|
||
pnpm build # Сборка всех пакетов
|
||
pnpm lint # Проверка кода
|
||
|
||
# База данных
|
||
pnpm db:generate # Генерация Prisma клиента
|
||
pnpm db:push # Применение схемы
|
||
pnpm db:migrate # Создание миграции
|
||
pnpm db:studio # Открыть Prisma Studio
|
||
|
||
# Docker
|
||
pnpm docker:up # Запуск контейнеров
|
||
pnpm docker:down # Остановка контейнеров
|
||
pnpm docker:logs # Логи контейнеров
|
||
```
|
||
|
||
## Тарифные планы
|
||
|
||
| План | Курсов/мес | AI Модель | Цена |
|
||
|------|-----------|-----------|------|
|
||
| Free | 2 | GPT-4o Mini | $0 |
|
||
| Premium | 5 | GPT-4o Mini | $9.99 |
|
||
| Pro | 15 | GPT-4o Mini (или своя в настройках) | $29.99 |
|
||
|
||
На Pro плане можно указать любую модель OpenRouter в настройках.
|
||
|
||
## Конфигурация AI моделей
|
||
|
||
По умолчанию используется **openai/gpt-4o-mini**. На плане Pro в настройках можно указать свою модель OpenRouter, например:
|
||
```
|
||
openai/gpt-4o-mini
|
||
anthropic/claude-3.5-sonnet
|
||
openai/gpt-4-turbo
|
||
```
|
||
|
||
Формат: `provider/model-name`
|
||
|
||
## Лицензия
|
||
|
||
MIT
|
||
|
||
## Поддержка
|
||
|
||
- Email: support@coursecraft.ai
|
||
- Docs: https://docs.coursecraft.ai
|