Сайт красноярского цветочного магазина. Букеты со смыслом.
Клиент выбирает букет из каталога или проходит квиз для подбора, оформляет заказ с адресом и временем доставки, применяет промокод и оплачивает онлайн через ЮKassa или наличными при получении.
- Каталог букетов с фильтрацией по событиям (день рождения, свадьба, корпоратив)
- Квиз-подбор букета по поводу и бюджету
- Оформление заказа: адрес, время доставки, способ оплаты
- Промокоды: скидка процентом или фиксированной суммой
- Оплата картой онлайн (ЮKassa) или наличными при получении
- Заявка на консультацию — флорист свяжется с клиентом
- Админ-панель: заказы, букеты, промокоды, настройки доставки
- Дашборд флориста — список активных заказов со статусами
- Python 3.13+
python --version-
Клонируйте репозиторий и перейдите в папку проекта:
git clone https://github.com/Skip-Bug/Flower-Shop.git cd Flower-Shop -
Создайте и активируйте виртуальное окружение:
python -m venv .venv # Windows .venv\Scripts\activate # Linux/Mac source .venv/bin/activate
-
Установите зависимости:
pip install -r requirements.txt
-
Создайте файл
.envв корне проекта и заполните его:# Обязательно SECRET_KEY=ваш-секретный-ключ # Обязательно для разработки DEBUG=True ALLOWED_HOSTS=127.0.0.1,localhost # Обязательно для продакшена # DATABASE_URL=postgres://flower_user:пароль!@host:5432/flower_shop # YOOKASSA_SHOP_ID=номер_от_юкассы # YOOKASSA_SECRET_KEY=ваш_ключ_юкассы # CSRF_TRUSTED_ORIGINS=["https://ваш-домен.com"]Файл
.envне коммитится в Git — он уже добавлен в.gitignore. -
Примените миграции:
python manage.py migrate
-
Заполните базу демо-данными (букеты, события, фото):
python manage.py seed_demo
-
Создайте суперпользователя для доступа в админку:
python manage.py createsuperuser
-
Запустите сервер разработки:
python manage.py runserver
Сайт будет доступен по адресу http://127.0.0.1:8000/, админка — http://127.0.0.1:8000/admin/, страница флориста — http://127.0.0.1:8000/florist только для администраторов.
По умолчанию используется SQLite — файл db.sqlite3 создаётся автоматически при первом запуске python manage.py migrate. В продакшене подключается PostgreSQL через переменную DATABASE_URL.
Файл базы данных не коммитится в Git (добавлен в .gitignore).
Код проверяется и форматируется линтером ruff (настройки в pyproject.toml).
ruff check .
ruff format .Через pre-commit (проверка перед каждым коммитом):
pre-commit install
pre-commit run --all-filesВсе зависимости зафиксированы в requirements.txt:
Для разработки дополнительно устанавливаются из requirements-dev.txt.