/bakecake

MVP сервиса BakeCake. Стек - Django, Bootstrap5, Vanilla JS, Fetch API

Primary LanguagePython

MVP сервиса BakeCake

Рабочая версия сайта: https://truebakecake.pythonanywhere.com/

Сервис предназначен для оформления заказов в интернет-магазине тортов.

Сайт полностью адаптирован для мобильных телефонов и планшетов.

Фичи для клиентов:

  • конструктор торта с различными типами полей (обязательные, необязательные, с одним возможным вариантом выбора и с несколькими)
  • динамическое обновление цены торта в форме заказа в зависимости от промокода, который ввел клиент, а также срочности заказа (заказы до 24 ч на 20% дороже)
  • динамическое изменение пояснений к полям в форме заказа в зависимости от введенной клиентом информации
  • личный кабинет со списком заказов
  • возможность отменить заказ, если он не ушел со стадии "Заявка обрабатывается"

Фичи для менеджеров (админов):

  • отдельный раздел с агрегированной статистикой по магазину (сколько клиентов, сколько заказов, разбивка заказов по статусам, статистика по каждому ингредиенту)
  • доступная из любого раздела админки кнопка выгрузка статистики в CSV-формате.

Как выглядит сайт с мобильного телефона

image image


image image

Стек

  • Django — бэкенд и рендеринг шаблонов страниц
  • Bootstrap5 — вёрстка
  • Vanilla JS — динамическое обновление на клиентской стороне цены заказа в зависимости от промокода и срочности заказа. Для запросов к серверу использован Fetch API.

Запуск

  • Скачайте код
  • Запустите виртуальное окружение
  • Установите зависимости командой pip install -r requirements.txt
  • Создайте файл базы данных и сразу примените все миграции командой python3 manage.py migrate
  • Загрузите фикстуру python3 manage.py loaddata db_example.json
  • Запустите сервер командой python3 manage.py runserver

Переменные окружения

Часть настроек проекта берётся из переменных окружения. Чтобы их определить, создайте файл .env рядом с manage.py и запишите туда данные в таком формате: ПЕРЕМЕННАЯ=значение.

Доступны 3 переменные:

  • DEBUG — дебаг-режим. Поставьте True, чтобы увидеть отладочную информацию в случае ошибки.
  • SECRET_KEY — секретный ключ проекта
  • ALLOWED_HOSTS — см документацию Django.
  • DATABASE — однострочный адрес к базе данных, например: sqlite:///db.sqlite3. Больше информации в документации

Цели и исполнители проекта

Код написан в учебных целях — это парный проект по Python и веб-разработке Devman. История коммитов здесь