Проект для расчетов стоимости мебели в зависимости от компонентов и управляния заказами.
Предназначен для небольших мебельных производств в качестве инструмента для расчета стоимости мебели и управления заказами.
Текущий проект является демо-версией, призванной наглядно проиллюстрировать потенциальному заказчику работу программы.
Перспектива: исходя из особенностей производственного процесса конкретного заказчика, его потребностей и пожеланий на базе текущего проекта может быть создан новый проект, полностью удовлетворяюший требованиям заказчика.
Разделы
Развернуть проект
Создание пользователей
Наполнение базы данных
Возможности
Приложения
Модели
Views
- Справочные материалы
- Калькуляторы
- Компоненты мебели
- Заказы
Проект состоит из двух основных компонентов:
- Django проект
- База данных
В настоящее время приложение функционирует исключительно в локальной среде, подключаясь к базе данных, развернутой в Docker-контейнере на удаленном VPS. В ближайшем будущем планируется внедрение CI с использованием GitHub Actions для автоматической сборки контейнера и его размещения на Docker Hub.
Поскольку стандартная модель пользователей была переопределена, создание пользователя-администратора для доступа к админке осуществляется командой:
python manage.py ccsu
Учетные данные администратора для авторизации
login: [email protected]
pass: qwerty
Все остальные пользователи могут быть созданы с помощью регистрации пользователя на сайте.
Регистрация осуществляется только по инвайтам. Создать инвайт может пользователь-администратор в панели управления пользователями.
В рамках демострационной версии приложения база данных наполняется вручную.
Управление пользователями:
- Авторизация
- Создание инвайтов для регистрации (администратор)
- Регистрация пользователя по инвайту
- Подтверждение адреса электронной почты для активации аккаунта
- Сброс пароля
- Активация / Деактивация пользователей (администратор)
Справочные материалы:
- Страницы со справочными материалами
Калькуляторы:
- Расчет стоимости предмета мебели в зависимости от его компонентов
- Сохранение заказа (смета и данные заказчика)
Компоненты:
- Конструктор компонентов мебели
- Управление компонентами
Заказы:
- Просмотр активных заказов
- Просмотр неактивных заказов (администратор)
- Деактивация заказов
- Активация заказов (администратор)
- Удаление заказов (администратор)
Профиль пользователя:
- Редактирование данных профиля
users
Приложение для управления пользователями
furniture
Приложение для управления наполнением сайта
reference
Приложение для управления справочниками
wardrobe
Приложение для рассчета стоимости шкафа и управления заказами на шкафы
Users model:
- first_name - имя пользователя
- last_name - фамилия пользователя
- email - email пользователя
- phone - телефон пользователя
- telegram - telegram пользователя
- is_active - активность пользователя
ActiveInvites model:
- invite_number - номер инвайта
- invite_url - ссылка для регистрации
- created_at - дата создания инвайта
Furniture model:
- name - название объекта мебели
- description - описание объекта мебели
- image - изображение объекта мебели
MaterialType model:
Тип материала (ДСП, ЛДПС, МДФ, Массив дерева)
- name - название материала
MaterialThickness model: Толщина материала
- thickness - толщина материала
MaterialColor model:
Цвет материала
- name - название цвета материала
DoorType model:
Тип дверок
- name - название типа дверей
BoxSummary model: Материалы короба
- material_type - id названия материала (внешняя ссылка на MaterialType)
- material_thickness - id толщины материала (внешняя сслыка на MaterialThickness)
- material_color - id цвета материала (внешняя ссылка на MaterialColor)
- price_per_sqm - цена за квадратный метр для текущей комбинации тип, толщина, цвет
DoorSummary model:
Материалы дверей
- material_type - id названия материала (внешняя ссылка на MaterialType)
- material_thickness - id толщины материала (внешняя сслыка на MaterialThickness)
- material_color - id цвета материала (внешняя ссылка на MaterialColor)
- door_type - id типа двери (внешняя ссылка на DoorType)
- price_per_sqm - цена за квадратный метр для текущей комбинации тип, толщина, цвет, цвет двери
DoorHandle model:
Дверные ручки
- name - название дверной ручки
- length - длинна дверной ручки
- material - материал дверной ручки
- color - цвет
- price_per_one - цена за единицу
Orders model: Таблица заказов
- customer_name - имя заказчика
- customer_surname - фамилия заказчика
- phone - телефон заказчика
- email - email заказчика
- height - высота шкафа
- width - ширина шкафа
- depth - глубина шкафа
- material_type - тип материала короба
- box_material_thickness - толщина материала короба
- box_material_color - цвет материала короба
- box_square - общая площадь короба
- box_price_per_sqm - стоимость комбинации материала короба за м.кв.
- box_price - общая стоимость короба
- door_type - тип дверей
- door_material_thickness - толщина материала дверей
- door_material_color - цвет материала дверей
- door_square - общая площадь дверей
- door_price_per_sqm - стоимость комбинации материала дверей за м.кв.
- door_price - общая стоимость дверей
- handle_name - название дверной ручки
- handle_material - материал дверной ручик
- handle_color - цвет дверной ручки
- handle_length - длинна дверной ручки (опционально)
- handle_price_per_one - стоимость дверной ручки за единицу
- handle_ammount - количество используемых ручек
- handle_price - обшая стоимость дверных ручек
- total_price - общая стоимость шкафа
- owner - сотрудник, создавший заказ
- order_date - дата создания заказа
- is_active - активность заказа
Представления
IndexView (CBV)
Представление управляет отображением главной страницы, документации и заглушек.
Шаблоны:
- furniture/index.html
Модели:
- Furniture
wardrobe_man_view (FBV)
Представление управляет отображением страницы справки для калькулятора шкафа
dresser_man_view (FBV)
Представление управляет отображением страницы справки для калькулятора комода
kitchen_man_view (FBV)
Представление управляет отображением страницы справки для калькулятора кухни
dresser_calc_plug_view (FBV)
Представление управляет отображением страницы-заглушки калькулятора комода
kitchen_calc_plug_view (FBV)
Представление управляет отображением страницы-заглушки калькулятора кухни
dresser_orders_plug_view (FBV)
Представление управляет отображением страницы-заглушки заказов комода
kitchen_orders_plug_view (FBV)
Представление управляет отображением страницы-заглушки заказов кухни
dresser_deactivated_plug_view (FBV)
Представление управляет отображением страницы-заглушки отмененных заказов комодов
kitchen_deactivated_plug_view (FBV)
Представление управляет отображением страницы-заглушки отмененных заказов кухни
UserProfileView (CBV)
Представление управляет страницей обновления профиля пользователя
Страница отображения профиля пользователя предполагает изменения (update) части данных пользователя на текущей странице
Шаблоны:
- users/user_profile.html
Модели:
- User
Формы:
- UserUpdateForm
UserLoginView (CBV)
Представление управляет авторизацией пользователя
Шаблоны:
- users/user_login.html
Модели:
- User
Формы:
- UserLoginForm
UserRegisterView (CBV)
Представление управляет регистрацией пользователя
Шаблоны:
- users/user_register.html
Модели:
- User
Формы:
- UserRegisterForm
MyPasswordResetView (CBV)
Представление управляет отображением страницы запроса на сброс пароля
Шаблоны:
- users/user_password_recovery.html
- email/password_reset_email.html
MyPasswordResetConfirmView (CBV) Представление управляет отображением страницы задания нового пароля
Шаблоны:
- users/user_password_recovery_form.html
Формы:
- MySetPasswordForm
password_changed_view (FBV) Представление управляет отображаением страницы успешного сброса пароля
activate_account_view (FBV) Представление управляет подтверждением адреса электронной почты
successful_register_view (FBV) Представление управляет отображаением страницы успешной регистрации
activation_failed_view (FBV) Представление управляет отображаением страницы неуспешной активации аккаунта
activation_success_view (FBV)
Представление управляет отображаением страницы успешной активации аккаунта
user_logout_view (FBV)
Представление управляет выходом из профиля пользователя
manage_users_view (FBV)
Представление управляет страницей управления пользователями (только для администратора)
toggle_user_active_view (FBV)
Представление управляет страницей переключения активности пользователя (только для администратора)
BoxSummaryCreateView (CBV)
Представление управляет отображением страницы создания записи о материале короба
Шаблоны:
- box/box_reference_create.html
Модели:
- BoxSummary
Формы:
- UpdateBoxSummaryForm
BoxSummaryUpdateView (CBV)
Представление управляет отображением страницы обновления записи о материале короба
Шаблоны:
- box/box_reference_update.html
Модели:
- BoxSummary
Формы:
- UpdateBoxSummaryForm
DoorSummaryCreateView (CBV)
Представление управляет отображением страницы создания записи о материале двери
Шаблоны:
- door/door_reference_create.html
Модели:
- DoorSummary
Формы:
- UpdateDoorSummaryForm
DoorSummaryUpdateView (CBV)
Представление управляет отображением страницы обновления записи о материале двери
Шаблоны:
- door/door_reference_update.html
Модели:
- DoorSummary
Формы:
- UpdateDoorSummaryForm
HandlesCreateView (CBV)
Представление управляет отображением страницы создания записи о мебельной ручке
Шаблоны:
- fitting/fit_reference_create.html
Модели:
- DoorHandle
Формы:
- UpdateFittingForm
HandlesUpdateView (CBV)
Представление управляет отображением страницы обновления записи о мебельной ручке
Шаблоны:
- fitting/fit_reference_update.html
Модели:
- DoorHandle
Формы:
- UpdateFittingForm
boxsummary_show_view (FBV)
Представление управляет отображением страницы таблицы материалов короба
boxsummary_delete_view (FBV)
Представление управляет удалением записи из таблицы материалов короба
doorsummary_show_view (FBV)
Представление управляет отображением страницы таблицы материалов дверей
doorsummary_delete_view (FBV)
Представление управляет удалением записи из таблицы материалов дверей
handles_show_view (FBV)
Представление управляет отображением страницы мебельных ручек
handles_delete_view (FBV)
Представление управляет удалением мебельной ручки
properties_show_view (FBV)
Представление управляет отображением страницы со свойствами материалов
WardrobeView (CBV)
Представление управляет отображением страницы калькулятора шкафа
Шаблоны:
- wardrobe.html
- wardrobe_result.html
Модели:
- MaterialType
- MaterialThickness
- MaterialColor
- DoorType
- BoxSummary
- DoorSummary
- DoorHandle
Формы:
- WardrobeForm
WardrobeSaveOrderView (CBV)
Представление управляет страницей сохранения заказа
Шаблоны:
- wardrobe_save_order.html
Модели:
- Orders
Формы:
- SaveOrderForm
WardrobeOrderDetailView (CBV)
Представление управляет страницей деталей заказа (данные заказчика и смета)
Шаблоны:
- wardrobe_order_details.html
Модели:
- Orders
WardrobeOrderUpdateView (CBV)
Представление управляет страницей обновления данных заказа
Шабоны:
- wardrobe_order_update.html
Модели:
- Orders
Формы:
- OrderUpdateForm
WardrobeDeactivatedDetailView (CBV)
Представление управляет страницей деталей отмененного заказа
Шабоны:
- wardrobe_deactivated_order_details.html
Модели:
- Orders
wardrobe_orders_list_view (FBV)
Представление управляет страницей таблицы заказов
wardrobe_order_delete_view (FBV)
Представление управляет страницей удаления заказа
save_order_success_view (FBV)
Представление управляет страницей, сообщающей об удачном сохранении заказа
combination_not_found_view (FBV)
Представление управляет страницей, сообщающей об отсутствии компонентов по сочетанию характеристик
wardrobe_deactivated_list_view (FBV)
Представление управляет страницей таблицы отмененных заказов
toggle_order_active_view (FBV)
Представление управляет переключением активности заказов