Skip to content

IceDarold/gifty-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

166 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gifty Backend (FastAPI + OAuth)

Backend авторизации для SPA (React) c OAuth (Google/Yandex/VK), PKCE и серверными сессиями (Redis). Данные пользователей и привязок хранятся в Postgres.

Быстрый старт

  1. Скопировать переменные окружения:
    cp .env.example .env
    # заполните OAuth-креды и домены/куки
  2. Поднять Postgres и Redis:
    docker compose up -d
  3. Установить зависимости (локально):
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  4. Применить миграции:
    alembic upgrade head
  5. Запустить API:
    uvicorn app.main:app --reload
    # слушает по умолчанию 127.0.0.1:8000

Полезные URL

  • Старт OAuth: GET /api/v1/auth/{google|yandex|vk}/start?return_to=/path
  • Callback (обрабатывается бекендом): /api/v1/auth/{provider}/callback
  • Текущий пользователь: GET /api/v1/auth/me
  • Выход: POST /api/v1/auth/logout
  • Healthcheck: GET /health

Тесты (базовые)

pytest -q

Примечания

  • Все секреты задаются через .env, в коде не хардкодятся.
  • Сессия хранится в Redis (gifty_session HttpOnly cookie). STATE для OAuth хранится в Redis 10 минут.
  • Ответы в snake_case, ошибки: { "error": { "code": "...", "message": "...", "fields": {...} } }.

Data Processing & Recommendations

1. Catalog Sync (Stage 1)

Fetches products from TakProdam API and updates the local PostgreSQL database. Run:

# Make sure .venv is active
python scripts/run_sync.py

2. Embeddings Generation (Stage 3)

Generates vector embeddings for products using BAAI/bge-m3 model (runs on CPU by default). Run:

# Make sure .venv is active
python scripts/run_embeddings.py

Note: The first run will download the model (~1GB).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •