This commit is contained in:
2025-12-13 14:39:50 +03:00
commit b666cdcb95
79 changed files with 3081 additions and 0 deletions

View File

@@ -0,0 +1,106 @@
# Новая Планета - 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)