Metadata-Version: 2.4
Name: validator-lanki
Version: 0.1.0
Summary: Мини интернет-магазин: Vue 3 + FastAPI + SQLAlchemy + SQLite
Author: Examen3
License: MIT
Project-URL: Homepage, https://github.com/yourname/examen3
Project-URL: Documentation, https://github.com/yourname/examen3#readme
Keywords: fastapi,vue,shop,sqlite,exam
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: fastapi==0.115.6
Requires-Dist: uvicorn[standard]==0.34.0
Requires-Dist: sqlalchemy==2.0.36
Requires-Dist: python-jose[cryptography]==3.3.0
Requires-Dist: bcrypt==4.2.1
Requires-Dist: python-multipart==0.0.20
Requires-Dist: pydantic-settings==2.7.0
Requires-Dist: email-validator==2.2.0

# Mini Shop

Мини интернет-магазин на **Vue 3 + FastAPI + SQLAlchemy + SQLite**.

В pip-пакет входят **исходники Vue** (`.vue`, `.js`), без production-сборки — можно править на экзамене.

## Установка через pip (экзамен)

```bash
pip install examen3-mini-shop
```

### Запуск

**Терминал 1 — backend:**

```bash
mini-shop
```

**Терминал 2 — frontend (исходники Vue):**

```bash
mini-shop frontend
```

- Backend API: http://127.0.0.1:8000/docs  
- Frontend: http://localhost:5173  

**Админ:** `admin@example.com` / `admin123`

### Где лежат исходники после pip install

```bash
mini-shop frontend-path
```

Обычно это что-то вроде:

`.../site-packages/app/frontend/src/`

Там можно открыть проект в IDE и менять компоненты — `npm run dev` подхватит изменения.

Данные (БД, загрузки): `~/.mini_shop/`

## Публикация на PyPI

```bash
python scripts/build_package.py
pip install twine
twine upload dist/*
```

Проверка на TestPyPI:

```bash
twine upload --repository testpypi dist/*
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ examen3-mini-shop
```

> Имя `examen3-mini-shop` должно быть свободно на PyPI. Если занято — измените `name` в `pyproject.toml`.

## Разработка из репозитория

### Backend

```bash
pip install -e .
mini-shop --reload --port 8000
```

### Frontend

```bash
cd backend/app/frontend
npm install
npm run dev
```

## Структура

```
backend/app/
├── auth/ categories/ products/   # DDD-модули API
├── frontend/                     # исходники Vue (в pip-пакете)
│   ├── src/components/
│   ├── src/views/
│   └── package.json
├── cli.py                        # команда mini-shop
└── main.py
pyproject.toml
```

## Возможности

- Регистрация и авторизация (JWT)
- Каталог товаров с фильтром по категориям
- Карточка товара с фото
- CRUD товаров и категорий (только admin)
- Загрузка изображений товаров
