Files
New-planet-api/new-planet-backend/README.md
2025-12-13 14:39:50 +03:00

107 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Новая Планета - 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)