Metadata-Version: 2.4
Name: shop-olimp
Version: 1.0.0
Summary: Internet-shop order management system — Django web app for competition task 09.02.07
Author: OLIMP Participant
License: MIT
Keywords: django,shop,olimp,order-management,web
Classifier: Programming Language :: Python :: 3
Classifier: Framework :: Django
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: Django<5.2,>=4.2
Requires-Dist: openpyxl>=3.1.0

# shop-olimp

Готовый Django-проект для конкурсного задания **09.02.07 «Информационные системы и программирование»** — «Интернет-магазин компьютерной техники».

---

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

**Модуль 2 — База данных**
- Нормализованная БД (SQLite) без аномалий: таблицы `categories`, `clients`, `products`, `orders`, `order_items`
- Команда импорта данных из Excel (`Исходные_данные_БД.xlsx`)

**Модуль 3 — Веб-интерфейс (Django)**
- Авторизация по ролям: **менеджер** и **руководитель**
- Форма менеджера (3 вкладки):
  - Регистрация клиента
  - Оформление заказа (поиск клиента, фильтрация товаров, корзина, скидка 3% по карте)
  - Изменение статуса заказа
- Форма руководителя (2 вкладки):
  - Отчёт о постоянных клиентах (> 3 заказов за период) — экспорт в Excel/HTML
  - Отчёт о продаваемости товаров — экспорт в Excel/HTML

---

## Установка

```bash
pip install shop-olimp
```

---

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

```bash
# 1. Скопировать проект в текущую папку
shop-olimp init

# 2. Перейти в созданную папку
cd shop_olimp_project

# 3. Положить рядом файл Исходные_данные_БД.xlsx
#    (или передать путь вручную на шаге 5)

# 4. Накатить миграции и запустить сервер
#    (если xlsx лежит рядом — данные импортируются автоматически)
shop-olimp runserver

# Или пошагово:
python manage.py migrate
python manage.py import_excel /path/to/Исходные_данные_БД.xlsx
python manage.py runserver
```

Откройте **http://127.0.0.1:8000/** в браузере.

---

## Учётные данные

| Роль | Логин | Пароль |
|------|-------|--------|
| Менеджер | `manager` | `manager` |
| Руководитель | `director` | `director` |

---

## Структура БД

```
CATEGORIES ──< PRODUCTS ──< ORDER_ITEMS >── ORDERS >── CLIENTS
```

> Аномалия из исходной ER-модели устранена: поля `product_name` и `category_name`
> удалены из таблицы `orders` — они принадлежат таблицам `products` и `categories`.

---

## CLI-команды

```
shop-olimp init [dest]          # скопировать проект в папку dest
shop-olimp runserver [port]     # мигрировать + импортировать + запустить сервер
shop-olimp migrate              # только миграции
shop-olimp import <xlsx>        # только импорт из Excel
```

---

## Использование внутри своего проекта

После `shop-olimp init` вы получаете полноценный Django-проект.
Вы можете:
- изменить базу данных в `shop_db/settings.py` (например, на PostgreSQL)
- переименовать БД `OLIMP_01.sqlite3` → `OLIMP_XX.sqlite3` под свой номер участника
- добавить свои миграции, представления и шаблоны

---

## Требования

- Python 3.10+
- Django 4.2 – 5.1
- openpyxl 3.1+
