Загрузка данных
Конечно. Ниже можно прямо использовать как основу для курсовой, ТЗ или описания информационной системы для сайта заказа тортов и капкейков.
1. Предметная область
Предметная область — заказ, изготовление и доставка кондитерских изделий, а именно тортов и капкейков, через веб-сайт.
Сайт предназначен для взаимодействия между клиентами и кондитерской. Клиент может ознакомиться с ассортиментом продукции, выбрать подходящий торт или набор капкейков, указать необходимые параметры заказа, оформить заказ и выбрать способ его получения.
Кондитерская, в свою очередь, получает информацию о заказах, обрабатывает их, назначает статус заказа, контролирует изготовление и доставку.
Основные объекты предметной области:
• Клиент — человек, оформляющий заказ.
• Товар — торт или капкейк/набор капкейков.
• Категория товара — например, торты, капкейки, праздничные наборы.
• Заказ — оформленная клиентом заявка на изготовление и получение продукции.
• Состав заказа — конкретные товары и их количество.
• Оплата — информация об оплате заказа.
• Доставка — информация о способе и адресе получения.
• Ингредиенты — продукты, используемые при изготовлении.
• Статус заказа — текущее состояние заказа.
• Отзыв — оценка и комментарий клиента о товаре.
• Промокод — код для предоставления скидки.
• Сотрудник — работник кондитерской, занимающийся обработкой заказов.
• Администратор — сотрудник, управляющий сайтом и его содержимым.
2. Назначение сайта
Основная задача сайта — автоматизировать процесс заказа кондитерских изделий.
Система должна позволять:
1. Представлять каталог продукции.
2. Показывать подробную информацию о каждом товаре.
3. Предоставлять возможность выбора параметров торта.
4. Формировать корзину.
5. Оформлять заказ.
6. Рассчитывать стоимость заказа.
7. Выбирать способ получения.
8. Производить оплату.
9. Отслеживать статус заказа.
10. Оставлять отзывы.
11. Управлять товарами и заказами сотрудникам кондитерской.
12. Управлять пользователями и содержимым сайта администратору.
3. Функционал сайта
3.1. Регистрация и авторизация
Пользователь может:
• зарегистрироваться;
• указать имя;
• указать номер телефона;
• указать электронную почту;
• создать пароль;
• войти в личный кабинет;
• выйти из аккаунта;
• восстановить пароль.
После авторизации пользователь получает доступ к истории своих заказов и личным данным.
4. Каталог товаров
На сайте располагается каталог тортов и капкейков.
Для каждого товара отображается:
• название;
• фотография;
• описание;
• категория;
• цена;
• вес;
• количество порций;
• состав;
• возможные вкусы;
• доступные размеры;
• доступные варианты оформления.
Например:
Торт «Красный бархат»
• Вес: 1 кг
• Порции: 8–10
• Вкус: красный бархат
• Начинка: сливочный крем
• Цена: 1800 ₽
• Доступное оформление: стандартное / праздничное / индивидуальное.
5. Фильтрация и поиск
Пользователь может найти необходимый товар с помощью:
• поиска по названию;
• категории;
• цены;
• веса;
• вкуса;
• количества порций;
• типа мероприятия.
Например:
Пользователь выбирает «День рождения» → торты до 3000 ₽ → 10–15 порций.
6. Выбор индивидуальных параметров
Для некоторых тортов пользователь может самостоятельно выбрать характеристики.
Например:
Торт:
• размер;
• вес;
• вкус коржей;
• начинку;
• крем;
• цвет;
• оформление;
• надпись на торте;
• количество ярусов.
Также можно добавить комментарий кондитеру.
Например:
«Надпись: С днём рождения, Аня! Сделать оформление в розовых цветах».
Для капкейков:
• количество;
• вкус;
• цвет оформления;
• начинка;
• надпись;
• оформление.
7. Корзина
Пользователь может добавить несколько товаров в корзину.
В корзине отображаются:
Информация Пример
Товар Торт «Красный бархат»
Количество 1
Цена 1800 ₽
Доп. оформление +300 ₽
Итог 2100 ₽
Пользователь может:
• изменить количество;
• удалить товар;
• изменить параметры;
• добавить промокод;
• увидеть итоговую стоимость.
8. Оформление заказа
При оформлении заказа пользователь указывает:
Контактные данные
• имя;
• телефон;
• электронную почту.
Данные о получении
• способ получения;
• дату;
• время.
Возможные способы:
Самовывоз
• выбрать пункт выдачи.
Доставка
• город;
• улица;
• дом;
• квартира;
• комментарий курьеру.
9. Оплата
Пользователь выбирает способ оплаты:
• банковская карта;
• онлайн-оплата;
• оплата при получении — если такая возможность предусмотрена.
После оплаты в системе сохраняется информация:
• сумма;
• дата оплаты;
• способ оплаты;
• статус оплаты;
• номер транзакции.
10. Статусы заказа
Заказ может иметь следующие статусы:
1. Новый — заказ только что создан.
2. Принят — сотрудник подтвердил заказ.
3. В изготовлении — кондитер начал изготовление.
4. Готов — заказ изготовлен.
5. Передан курьеру — заказ отправлен на доставку.
6. Доставлен — клиент получил заказ.
7. Завершён — заказ полностью выполнен.
8. Отменён — заказ отменён.
Клиент может видеть текущий статус в личном кабинете.
11. Личный кабинет клиента
В личном кабинете пользователь может:
• посмотреть личные данные;
• изменить имя;
• изменить телефон;
• изменить email;
• посмотреть историю заказов;
• посмотреть текущие заказы;
• посмотреть статус заказа;
• повторить предыдущий заказ;
• оставить отзыв;
• посмотреть свои отзывы.
12. Отзывы
После получения заказа клиент может оставить отзыв.
Отзыв содержит:
• пользователя;
• товар;
• оценку от 1 до 5;
• текст отзыва;
• дату;
• фотографию — опционально.
Например:
⭐⭐⭐⭐⭐
«Очень вкусный торт, оформление получилось именно таким, как я хотела».
Администратор может модерировать отзывы.
13. Избранное
Пользователь может добавлять понравившиеся товары в избранное.
Например:
❤️ Торт «Медовик»
❤️ Набор капкейков «Клубника»
❤️ Торт «Красный бархат»
Это позволяет быстро вернуться к понравившемуся товару.
14. Промокоды и скидки
Администратор может создавать промокоды.
Например:
CAKE10
Скидка — 10%.
Промокод может иметь:
• название;
• размер скидки;
• срок действия;
• минимальную сумму заказа;
• количество использований;
• статус активности.
При оформлении заказа пользователь вводит промокод, а система автоматически пересчитывает стоимость.
15. Функционал сотрудника
Сотрудник кондитерской работает с поступающими заказами.
Он может:
• просматривать новые заказы;
• открывать подробности заказа;
• видеть данные клиента;
• видеть состав заказа;
• видеть дату и время изготовления;
• изменять статус заказа;
• подтверждать заказ;
• отмечать заказ как готовый;
• передавать заказ курьеру;
• отменять заказ;
• добавлять комментарий к заказу.
Например:
Заказ №154
Клиент: Анна
Торт: «Красный бархат»
Вес: 2 кг
Надпись: «С днём рождения!»
Дата: 15.09.2026
Время: 18:00
Статус: В изготовлении
16. Функционал администратора
Администратор имеет максимальный уровень доступа.
Он может:
Управлять товарами
• добавлять товар;
• редактировать товар;
• удалять товар;
• менять цену;
• добавлять фотографии;
• изменять описание;
• изменять состав;
• менять доступность товара.
Управлять категориями
Например:
• Торты;
• Капкейки;
• Наборы;
• Праздничные торты;
• Торты на заказ.
Управлять заказами
• просматривать все заказы;
• изменять статус;
• отменять заказ;
• просматривать информацию о клиенте;
• просматривать оплату и доставку.
Управлять пользователями
• просматривать пользователей;
• блокировать пользователей;
• изменять роль.
Управлять отзывами
• просматривать отзывы;
• удалять нарушающие правила отзывы;
• публиковать/скрывать отзывы.
Управлять промокодами
• создавать;
• изменять;
• удалять;
• отключать промокоды.
17. Роли пользователей
В системе можно сделать три основные роли.
1. Клиент
Имеет возможность:
• зарегистрироваться;
• просматривать каталог;
• искать товары;
• добавлять товары в корзину;
• оформлять заказ;
• оплачивать заказ;
• отслеживать заказ;
• просматривать историю заказов;
• оставлять отзывы;
• добавлять товары в избранное.
2. Сотрудник
Имеет возможность:
• просматривать заказы;
• обрабатывать заказы;
• изменять статусы;
• просматривать информацию о клиентах;
• контролировать процесс изготовления;
• отмечать заказ готовым.
3. Администратор
Имеет полный доступ:
• управление пользователями;
• управление товарами;
• управление категориями;
• управление заказами;
• управление отзывами;
• управление промокодами;
• управление сотрудниками;
• просмотр статистики.
18. База данных
Для сайта можно использовать реляционную базу данных, например MySQL или PostgreSQL.
Я бы предложил следующую структуру.
Таблица users — пользователи
Поле Тип Описание
id INT ID пользователя
name VARCHAR Имя
email VARCHAR Email
phone VARCHAR Телефон
password VARCHAR Пароль/хеш пароля
role_id INT Роль пользователя
created_at DATETIME Дата регистрации
status VARCHAR Статус аккаунта
Таблица roles — роли
Поле Тип Описание
id INT ID роли
name VARCHAR Название роли
Пример:
id name
1 Клиент
2 Сотрудник
3 Администратор
19. Таблица categories — категории
Поле Тип Описание
id INT ID категории
name VARCHAR Название
description TEXT Описание
Примеры:
• Торты
• Капкейки
• Наборы капкейков
• Праздничные торты
20. Таблица products — товары
Поле Тип Описание
id INT ID товара
category_id INT Категория
name VARCHAR Название
description TEXT Описание
price DECIMAL Цена
weight DECIMAL Вес
servings INT Количество порций
image VARCHAR Изображение
available BOOLEAN Доступность
21. Таблица ingredients — ингредиенты
Поле Тип Описание
id INT ID ингредиента
name VARCHAR Название
description TEXT Описание
allergen BOOLEAN Является ли аллергеном
Например:
• мука;
• сахар;
• яйца;
• молоко;
• сливки;
• шоколад;
• клубника;
• орехи.
22. Таблица product_ingredients
Она нужна, чтобы связать товары и ингредиенты.
Поле Тип
product_id INT
ingredient_id INT
amount DECIMAL
Например:
Торт «Красный бархат»:
• мука — 300 г;
• сахар — 200 г;
• яйца — 4 шт.;
• сливочный сыр — 400 г.
Связь здесь многие-ко-многим: один товар содержит много ингредиентов, а один ингредиент может входить в состав разных товаров.
23. Таблица orders — заказы
Поле Тип Описание
id INT Номер заказа
user_id INT Клиент
status_id INT Статус
total_price DECIMAL Итоговая стоимость
order_date DATETIME Дата оформления
pickup_date DATE Дата получения
pickup_time TIME Время получения
comment TEXT Комментарий клиента
24. Таблица order_items — состав заказа
Поле Тип Описание
id INT ID позиции
order_id INT Заказ
product_id INT Товар
quantity INT Количество
price DECIMAL Цена на момент заказа
customization TEXT Индивидуальные параметры
Например:
order_id product_id quantity customization
125 4 1 «Надпись: С днём рождения Аня»
125 8 6 «Розовое оформление»
25. Таблица order_statuses
id name
1 Новый
2 Принят
3 В изготовлении
4 Готов
5 Передан курьеру
6 Доставлен
7 Завершён
8 Отменён
26. Таблица payments — оплаты
Поле Тип Описание
id INT ID оплаты
order_id INT Заказ
amount DECIMAL Сумма
method VARCHAR Способ оплаты
status VARCHAR Статус
transaction_id VARCHAR Номер транзакции
paid_at DATETIME Дата оплаты
27. Таблица delivery — доставка
Поле Тип Описание
id INT ID доставки
order_id INT Заказ
type VARCHAR Доставка/самовывоз
address TEXT Адрес
delivery_price DECIMAL Стоимость доставки
courier_id INT Курьер
status VARCHAR Статус доставки
28. Таблица reviews — отзывы
Поле Тип Описание
id INT ID отзыва
user_id INT Автор
product_id INT Товар
rating INT Оценка 1–5
text TEXT Текст
created_at DATETIME Дата
status VARCHAR Статус модерации
29. Таблица favorites — избранное
Поле Тип
id INT
user_id INT
product_id INT
created_at DATETIME
30. Таблица promo_codes
Поле Тип Описание
id INT ID
code VARCHAR Промокод
discount DECIMAL Размер скидки
discount_type VARCHAR Процент/фиксированная сумма
min_order_price DECIMAL Минимальная сумма заказа
valid_from DATETIME Начало действия
valid_until DATETIME Конец действия
usage_limit INT Лимит использований
active BOOLEAN Активен ли
31. Связи между таблицами
Основные связи будут выглядеть примерно так:
ROLES
│
└──── USERS
│
├──── ORDERS
│ │
│ ├──── ORDER_ITEMS ──── PRODUCTS
│ │ │
│ │ ├──── CATEGORIES
│ │ │
│ │ └──── PRODUCT_INGREDIENTS ──── INGREDIENTS
│ │
│ ├──── PAYMENTS
│ │
│ └──── DELIVERY
│
├──── REVIEWS ───── PRODUCTS
│
└──── FAVORITES ─── PRODUCTS
32. Основные связи в БД
Один пользователь → много заказов
users 1 : N orders
Один заказ → много товаров
Через order_items:
orders 1 : N order_items
products 1 : N order_items
Получается:
orders N : M products
Один товар → одна категория
categories 1 : N products
Один товар → много ингредиентов
products N : M ingredients
через product_ingredients.
Один пользователь → много отзывов
users 1 : N reviews
Один товар → много отзывов
products 1 : N reviews
Один заказ → одна оплата
orders 1 : 1 payments
Один заказ → одна доставка
orders 1 : 1 delivery
33. Итоговая структура системы
В итоге сайт можно разделить на несколько основных частей:
САЙТ КОНДИТЕРСКОЙ
│
┌─────────────────┼─────────────────┐
│ │ │
Клиент Сотрудник Администратор
│ │ │
▼ ▼ ▼
Каталог Заказы Товары
Корзина Статусы Категории
Заказ Изготовление Пользователи
Оплата Доставка Отзывы
Доставка Промокоды
Отзывы Статистика
Личный кабинет
│
▼
БАЗА ДАННЫХ
│
┌───────────────┼────────────────┐
▼ ▼ ▼
USERS PRODUCTS ORDERS
│ │ │
│ │ ├── ORDER_ITEMS
│ │ ├── PAYMENTS
│ │ └── DELIVERY
│ │
├── REVIEWS ├── CATEGORIES
│ └── INGREDIENTS
│
└── FAVORITES
Если это нужно именно для учебного проекта
Я бы не усложнял систему реальным складским учётом ингредиентов, если преподаватель не требует именно производственную систему. Для сайта заказа тортов достаточно примерно 13 таблиц:
1. users
2. roles
3. categories
4. products
5. ingredients
6. product_ingredients
7. orders
8. order_items
9. order_statuses
10. payments
11. delivery
12. reviews
13. favorites
14. promo_codes
То есть получится вполне полноценная информационная система, а не просто интернет-магазин: клиент → выбор торта → индивидуализация → корзина → заказ → оплата → изготовление → доставка → отзыв.