Рабочая версия сайта: https://truebakecake.pythonanywhere.com/
Сервис предназначен для оформления заказов в интернет-магазине тортов.
Сайт полностью адаптирован для мобильных телефонов и планшетов.
Фичи для клиентов:
- конструктор торта с различными типами полей (обязательные, необязательные, с одним возможным вариантом выбора и с несколькими)
- динамическое обновление цены торта в форме заказа в зависимости от промокода, который ввел клиент, а также срочности заказа (заказы до 24 ч на 20% дороже)
- динамическое изменение пояснений к полям в форме заказа в зависимости от введенной клиентом информации
- личный кабинет со списком заказов
- возможность отменить заказ, если он не ушел со стадии "Заявка обрабатывается"
Фичи для менеджеров (админов):
- отдельный раздел с агрегированной статистикой по магазину (сколько клиентов, сколько заказов, разбивка заказов по статусам, статистика по каждому ингредиенту)
- доступная из любого раздела админки кнопка выгрузка статистики в CSV-формате.
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. История коммитов здесь