107 lines
3.1 KiB
Markdown
107 lines
3.1 KiB
Markdown
# Новая Планета - Backend API
|
||
|
||
Backend API для мобильного приложения **Новая Планета** - визуальное расписание для детей с РАС.
|
||
|
||
## 🛠️ Tech Stack
|
||
|
||
- **Python** 3.11+
|
||
- **FastAPI** 0.109+
|
||
- **PostgreSQL** 15+ + **Redis** 7+
|
||
- **SQLAlchemy** 2.0+ (async)
|
||
- **GigaChat API** для ИИ-агента
|
||
- **MinIO/S3** для хранения изображений
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### Требования
|
||
|
||
- Python 3.11+
|
||
- PostgreSQL 15+
|
||
- Redis 7+
|
||
- Docker (опционально)
|
||
|
||
### Установка
|
||
|
||
1. Клонируйте репозиторий
|
||
2. Установите зависимости:
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
3. Настройте `.env`:
|
||
```bash
|
||
cp .env.example .env
|
||
# Отредактируйте .env с вашими настройками
|
||
```
|
||
|
||
4. Запустите инфраструктуру (Docker):
|
||
```bash
|
||
docker-compose -f docker/docker-compose.yml up -d
|
||
```
|
||
|
||
5. Примените миграции:
|
||
```bash
|
||
alembic upgrade head
|
||
```
|
||
|
||
6. Запустите сервер:
|
||
```bash
|
||
uvicorn app.main:app --reload
|
||
```
|
||
|
||
API доступен на `http://localhost:8000`
|
||
Swagger UI: `http://localhost:8000/docs`
|
||
|
||
## 📡 API Endpoints
|
||
|
||
### Authentication
|
||
- `POST /api/v1/auth/register` - Регистрация
|
||
- `POST /api/v1/auth/login` - Вход
|
||
- `POST /api/v1/auth/refresh` - Обновление токена
|
||
- `GET /api/v1/auth/me` - Текущий пользователь
|
||
|
||
### Schedules
|
||
- `GET /api/v1/schedules` - Список расписаний
|
||
- `POST /api/v1/schedules` - Создать расписание
|
||
- `POST /api/v1/schedules/generate` - Сгенерировать через ИИ
|
||
- `GET /api/v1/schedules/{id}` - Получить расписание
|
||
- `PUT /api/v1/schedules/{id}` - Обновить
|
||
- `DELETE /api/v1/schedules/{id}` - Удалить
|
||
|
||
### Tasks
|
||
- `GET /api/v1/tasks/schedule/{schedule_id}` - Задачи расписания
|
||
- `POST /api/v1/tasks` - Создать задачу
|
||
- `PATCH /api/v1/tasks/{id}/complete` - Отметить выполненной
|
||
|
||
### AI
|
||
- `POST /api/v1/ai/chat` - Чат с ИИ-агентом
|
||
- `POST /api/v1/ai/schedule/generate` - Генерация расписания
|
||
|
||
### Images
|
||
- `POST /api/v1/images/upload` - Загрузить изображение
|
||
- `DELETE /api/v1/images/{key}` - Удалить изображение
|
||
|
||
### WebSocket
|
||
- `WS /api/v1/ws/chat` - WebSocket чат с ИИ
|
||
|
||
## 🗄️ База данных
|
||
|
||
Используется PostgreSQL с async SQLAlchemy. Миграции через Alembic.
|
||
|
||
## 🤖 GigaChat Integration
|
||
|
||
Интеграция с GigaChat API для:
|
||
- Чат с ИИ-агентом "Планета Земля"
|
||
- Генерация расписаний
|
||
|
||
## 📚 Документация
|
||
|
||
- Swagger UI: `/docs`
|
||
- ReDoc: `/redoc`
|
||
|
||
## 🔗 Связанные репозитории
|
||
|
||
- **Frontend (Android)** — [new-planet-android](https://github.com/your-org/new-planet-android)
|
||
- **AI Agents** — [new-planet-ai-agents](https://github.com/your-org/new-planet-ai-agents)
|
||
|