init
This commit is contained in:
106
new-planet-backend/README.md
Normal file
106
new-planet-backend/README.md
Normal 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)
|
||||
|
||||
Reference in New Issue
Block a user