Skip to content

romz987/calcoo-django-edu

Repository files navigation

Calcoo

Проект для расчетов стоимости мебели в зависимости от компонентов и управляния заказами.
Предназначен для небольших мебельных производств в качестве инструмента для расчета стоимости мебели и управления заказами.

Текущий проект является демо-версией, призванной наглядно проиллюстрировать потенциальному заказчику работу программы.

Перспектива: исходя из особенностей производственного процесса конкретного заказчика, его потребностей и пожеланий на базе текущего проекта может быть создан новый проект, полностью удовлетворяюший требованиям заказчика.

Содержание

Разделы
Развернуть проект
Создание пользователей
Наполнение базы данных
Возможности
Приложения
Модели
Views


Разделы

  1. Справочные материалы
  2. Калькуляторы
  3. Компоненты мебели
  4. Заказы

Развернуть проект

Проект состоит из двух основных компонентов:

  1. Django проект
  2. База данных

В настоящее время приложение функционирует исключительно в локальной среде, подключаясь к базе данных, развернутой в Docker-контейнере на удаленном VPS. В ближайшем будущем планируется внедрение CI с использованием GitHub Actions для автоматической сборки контейнера и его размещения на Docker Hub.


Создание пользователей

Поскольку стандартная модель пользователей была переопределена, создание пользователя-администратора для доступа к админке осуществляется командой:

python manage.py ccsu  

Учетные данные администратора для авторизации

login: [email protected]  
pass: qwerty  

Все остальные пользователи могут быть созданы с помощью регистрации пользователя на сайте.
Регистрация осуществляется только по инвайтам. Создать инвайт может пользователь-администратор в панели управления пользователями.


Наполнение базы данных

В рамках демострационной версии приложения база данных наполняется вручную.


Возможности

Управление пользователями:

- Авторизация
- Создание инвайтов для регистрации (администратор)
- Регистрация пользователя по инвайту
- Подтверждение адреса электронной почты для активации аккаунта
- Сброс пароля
- Активация / Деактивация пользователей (администратор)

Справочные материалы:

- Страницы со справочными материалами

Калькуляторы:

- Расчет стоимости предмета мебели в зависимости от его компонентов  
- Сохранение заказа (смета и данные заказчика)  

Компоненты:

- Конструктор компонентов мебели  
- Управление компонентами  

Заказы:

- Просмотр активных заказов   
- Просмотр неактивных заказов (администратор)    
- Деактивация заказов  
- Активация заказов (администратор)  
- Удаление заказов (администратор)  

Профиль пользователя:

- Редактирование данных профиля  

Приложения

users
Приложение для управления пользователями

furniture
Приложение для управления наполнением сайта

reference
Приложение для управления справочниками

wardrobe
Приложение для рассчета стоимости шкафа и управления заказами на шкафы


Модели

users app

Users model:

- first_name            - имя пользователя    
- last_name             - фамилия пользователя    
- email                 - email пользователя    
- phone                 - телефон пользователя    
- telegram              - telegram пользователя    
- is_active             - активность пользователя    

ActiveInvites model:

- invite_number         - номер инвайта  
- invite_url            - ссылка для регистрации  
- created_at            - дата создания инвайта  

furniture app

Furniture model:

- name                  - название объекта мебели    
- description           - описание объекта мебели    
- image                 - изображение объекта мебели    

reference app

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         - цена за единицу  

wardrobe app

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                 - активность заказа

Views

Представления

furniture app

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)
Представление управляет отображением страницы-заглушки отмененных заказов кухни

users app

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)
Представление управляет страницей переключения активности пользователя (только для администратора)

reference app

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)
Представление управляет отображением страницы со свойствами материалов

wardrobe app

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)
Представление управляет переключением активности заказов

About

Furniture price calculator django educational project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published