Nav apraksta

R_Mamaev acf39e2343 Редактирование readme.md 1 gadu atpakaļ
Diagramma ac2dcf3546 sdelan 1 gadu atpakaļ
img acf39e2343 Редактирование readme.md 1 gadu atpakaļ
readme.md acf39e2343 Редактирование readme.md 1 gadu atpakaļ

readme.md

Министерство образования и науки РФ
ГБПОУ РМЭ "Йошкар-Олинский Технологический колледж"

Курсовая работа на тему
"Автосалон"

г. Йошкар-Ола, 2023

Содержание

Описание предметной области

  • Предполагается, что в системе автосалона будет 4 роли пользователей: клиенты, продавцы-консультанты, подборщики, администраторы. Авторизация в системе производится по телефону и паролю. Клиенты могут зарегистрироваться в системе, указав ФИО, телефон, пароль, дату рождения.

  • Администраторы – пользователи с уже заполненным профилем. Они могут добавлять новых клиентов и заполнять их заказы. Постоянным клиентам администраторы могут предоставлять скидки на автомобили или на услуги.

  • Любой клиент после авторизации может выбрать себе автомобиль. В этом случае клиент видит 3 блока: «Автомобили с пробегом», «Автомобили под заказ», «Продать автомобиль». Клиент может отправить заявку на любой автомобиль или услугу.

  • Администратор после авторизации видит новые заявки от клиентов и их количество (если таковые имеются). В случае подтверждения заявки администратор должен позвонить клиенту, уточнить все детали сделки (срок, цена, и т.д.). После обсуждения всех деталей, администратор передает информацию подборщику для дальнейших действий.

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

  • Клиент, отправивший заявку, но не получивший ответа, видит список своих заявок с результатами (в том числе с указанием причины при отказе) и количеством дней ожидания ответа. Получив положительный ответ по заказу, статус заказа меняется с “Ожидание администратора” на “В работе”. Также в блоке заказа имеется информация об автомобиле, примерная дата получения, звонок или чат с подборщиком и кнопка “Отмена заказа”. Для последней функции появляется подтверждение, а далее звонок администратора, который уже сам отменяет заказ.

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

  • Если клиент выбирает “Продать автомобиль”. Продавец-консультант напрямую получает заявку, даёт примерную оценочную стоимость и приглашает на живую оценку.

Диаграмма вариантов использования

img1 img2 img3

Спецификация вариантов использования (прецедентов)

   
Имя прецедента Прецедент: Выбор услуги
Идентификатор прецедента ID 1
Краткое описание Краткое описание
Покупатель выбирает товар или услугу в автосалоне
Акторы, вовлеченные в прецедент Главные акторы:
Покупатель
Второстепенные акторы:
Администратор, подборщик
Состояние системы на начало прецедента Предусловия:
нет
Фактические этапы прецедента Основной поток:
1. Прецедент начинается, когда Покупатель выбирает товар или услугу
2. Если Покупатель выбирает товар
    2.1 Покупатель указывает параметры товара
3. Если Покупатель выбирает услуги
    3.1 Покупатель указывает параметры услуги
4. Если покупатель выбирает заказ автомобиля
    4.1 Администратор связывается с ним
Альтернативные потоки Альтернативные потоки:
4.1 Администратор связывается с ним
Состояние системы после окончания прецедента Постусловия
1. Покупатель выбрал товар(услугу)
2. Покупатель отказался от покупки
   
Прецедент Оформление заказа
Идентификатор ID 2
Краткое описание Покупатель оформляет заказ на импортный автомобиль
Главные акторы Покупатель
Второстепенные акторы Администратор, подборщик
Предусловия Покупатель выбрал автомобиль
Основной поток 1. Прецедент начинается, когда Покупатель выбрал автомобиль
2. Администратор связывается с ним
3. Уточняются все данные и параметры с обеих сторон
4. Администратор принимает заказ и передает подборщику
Альтернативные потоки 2. Подборщик связывается с покупателем
Постусловия 1. Покупатель сделал заказ.

Диаграмма состояний

img21 img22 img23

ER-Диаграмма

ER-Диаграмма

Словарь данных

  • Member (Пользователь)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  fullName varchar(255) Y Полное ФИО (строка), обязательное поле
  phoneNumber varchar(12) Y Телефон
  password varchar(40) Y Пароль пользователя
  postAdress varchar(255) Y Адрес доставки
FK roleId int Y Ссылка на словарь Role
  • Role (Роль)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  titile varchar(50) Y Роль
  • Payment (Оплата)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  paymentDate Date Y Дата оплаты
  description varchar(255) Y Описание заказа
  amountPaid int(15) Y Оплаченная сумма
  • Order (Заказ автомобиля пользователем)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  transactionDate Date Y Дата транзакции
FK memberId int Y Ссылка на словарь Member
FK carId int Y Ссылка на словарь Car
FK paymentId int Y Ссылка на словарь Payment
  • Car (Автомобиль)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
FK brandId int Y Ссылка на словарь Brand
FK modelId int Y Ссылка на словарь Model
FK generationId int Y Ссылка на словарь Generation
  dateOfIssue Date Y Дата выпуска автомобиля
  engineCap decimal(2,1) Объём двигателя (1-2 знака перед запятой, 1 знак после запятой)
FK engineId int Y Тип двигателя с ссылкой на словарь Engine
  cost int(15) Y Цена автомобиля
FK colorId int Y Цвет с ссылкой на словарь Color
FK transmissionId int Y Коробка передач с ссылкой на словарь Transmission
  photo varchar(255) Фотография автомобиля (Обязательно, хотя бы 1)
  description varchar(255) Описание автомобиля
FK categoryId int Y Категория с ссылкой на словарь Category
  • Brand (Марка)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  titile varchar(100) Y Марка
  • Model (Модель)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  titile varchar(100) Y Модель
  • Generation (Поколение)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  titile varchar(100) Y Поколение
  • Engine (Тип двигателя)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  titile varchar(30) Y Тип двигателя
  • Color (Цвет)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  titile varchar(80) Y Цвет
  • Transmission (Тип)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  titile varchar(30) Y Тип трансмиссии
  • Category (Категория)
Key Field Name Data Type/Field Size Required? Notes
PK Id INT Y
  titile varchar(60) Y В какой категории продается авто

База данных SQL

Базы данных

Скрипт

CREATE TABLE `Role` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`title` varchar(50) DEFAULT NULL
)

CREATE TABLE `Member` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`phoneNumber` varchar(12) DEFAULT NULL,
	`fullName` varchar(255) DEFAULT NULL,
	`password` varchar(40) DEFAULT NULL,
	`postAdress` varchar(255) DEFAULT NULL,
	`roleId` INT,
	FOREIGN KEY(`roleId`) REFERENCES `ROLE` (`Id`)
)

CREATE TABLE `Brand` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`title` varchar(100) DEFAULT NULL
)

CREATE TABLE `Model` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`title` varchar(100) DEFAULT NULL
)

CREATE TABLE `Generation` (
	`Id` INT(11) NOT NULL AUTO_INCR EMENT PRIMARY KEY,
	`title` varchar(100) DEFAULT NULL
)

CREATE TABLE `Engine` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`title` varchar(30) DEFAULT NULL
)

CREATE TABLE `Color` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`title` varchar(80) DEFAULT NULL
)

CREATE TABLE `Transmission` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`title` varchar(30) DEFAULT NULL
)

CREATE TABLE `Category` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`title` varchar(60) DEFAULT NULL
)

CREATE TABLE `Car` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`brandId` INT,
	FOREIGN KEY(`brandId`) REFERENCES `Brand` (`Id`),
	`modelId` INT,
	FOREIGN KEY(`modelId`) REFERENCES `Model` (`Id`),
	`generationId` INT,
	FOREIGN KEY(`generationId`) REFERENCES `Generation` (`Id`),
	`dateOfIssue` Date DEFAULT NULL,
	`engineCap` Decimal(2,1) DEFAULT NULL,
	`engineId` INT,
	FOREIGN KEY(`engineId`) REFERENCES `Engine` (`Id`),
	`cost` int(15) DEFAULT NULL,
	`colorId` INT,
	FOREIGN KEY(`colorId`) REFERENCES `Color` (`Id`),
	`transmissionId` INT,
	FOREIGN KEY(`transmissionId`) REFERENCES `Transmission` (`Id`),
	`photo` varchar(255),
	`description` varchar(255),
	`categoryId` INT,
	FOREIGN KEY(`categoryId`) REFERENCES `Category` (`Id`)
)

CREATE TABLE `Payment` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`paymentDate` Date DEFAULT NULL,
	`description` varchar(255) DEFAULT NULL, 
	`amountPaid` INT(15) DEFAULT NULL
)

CREATE TABLE `Order` (
	`Id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
	`transactionDate` Date DEFAULT NULL,
	`memberId` INT,
	FOREIGN KEY(`memberId`) REFERENCES `Member` (`Id`),
	`carId` INT,
	FOREIGN KEY(`carId`) REFERENCES `Car` (`Id`),
	`paymentId` INT,
	FOREIGN KEY(`paymentId`) REFERENCES `Payment` (`Id`)
)