Files
New-planet-api/new-planet-backend
..
2025-12-13 14:39:50 +03:00
2025-12-18 17:07:33 +03:00
2025-12-18 14:14:04 +03:00
2025-12-13 14:39:50 +03:00
2025-12-18 17:07:33 +03:00
2025-12-13 14:39:50 +03:00
2025-12-18 14:14:04 +03:00
2025-12-13 14:39:50 +03:00
2025-12-13 14:39:50 +03:00
2025-12-13 14:39:50 +03:00
2025-12-18 14:14:04 +03:00

Новая Планета - 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. Установите зависимости:
pip install -r requirements.txt
  1. Настройте .env:
cp .env.example .env
#В целом вам нужно поменять GIGACHAT API секцию, JWT Secret key сгенерить, просто в поисковике генератор на 256 байт сделаете JWT
#Для гигачата логинетесь, дергаете от туда CLIENT_ID и SECRET KEY
# Отредактируйте .env с вашими настройками
  1. Запустите инфраструктуру (Docker):
docker-compose -f docker/docker-compose.yml up -d
# или используйте вариант ниже,но лучше вариант выше для избежания непредвиденного
#также напоминаю что вам необходим сам запущенный докер чтобы тестировать локально
docker-compose up
  1. Примените миграции:
alembic upgrade head
  1. Запустите сервер:
uvicorn app.main:app --reload
# если не запустилось, проверяйте есть ли .venv(установлено ли окружение для питона), также попробуйте в венве    uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

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 - Текущий пользователь

Для написания всех запросов ниже:

Не забывайте авторизоваться в сваггере, сверху кнопка Authorize

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

🔗 Связанные репозитории