Самостоятельная работа

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

Поэтому, необходимо разработать базу данных для компании и так же создать веб-приложение для работы с данной БД.

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

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

Доставка разных товаров может производиться разными способами, различными по цене и скорости. Нужно хранить информацию по тому, какой вид доставки (а, соответственно, и какую стоимость доставки) выбрал клиент при заключении сделки.

Список компаний

Для каждой из тем, самостоятельно продумать и выбрать список категорий товаров, а также список свойств для каждого товара.

Выбор компании производится в соответствии с Ваши номер по списку в журнале

  1. Магазин «Мир книг»
  2. Магазин компьютерных комплектующих «Новый компьютер»
  3. Магазин велосипедов «Велоспорт»
  4. Магазин мотозапчастей «Мотоспорт»
  5. Магазин мобильных телефонов «Yota»
  6. Сеть аптек «ГосАптека»
  7. Магазин видеоигр «TeamPlay»
  8. Турфирма «Эльдорадо»
  9. Кафе быстрого питания «Шире Хари»
  10. Мебельный Магазин «HomOFF»
  11. Строительный Магазин «Строй-Сам»
  12. Магазин автозапчастей «Автомиг»
  13. Зоомагазин «Питомец»
  14. Магазин посуды и кухонной утвари «Fizman»
  15. Магазин хозяйственных товаров «Хозяин»
  16. Магазин туристического снаряжения «Экспедиция»

Описание базы данных

Продумать структуру базы данных. Таблицы в БД должны дополнять друг друга. Тип данных выбирать исходя из хранимого содержимого.

Структура базы данных должна содержать не менее 4 таблиц. В каждой таблице обязательное наличие первичного ключа(PRIMARY KEY). Названия столбцов таблиц должны быть написаны на английском языке(допускается использование «транслитерация»).

В каждой таблице(кроме таблицы login) должно быть не менее 10 обязательных не повторяющихся записей.

Обязательное присутствие в БД таблицы login, которая должна хранить учетные записи пользователей. Пароли пользователей хранятся в зашифрованном виде с использованием соли.

Как минимум у Вас должны быть таблицы, хранящие следующую информацию:

Перечень товаров

Каждый товар обладает следующими характеристиками

  • наименование товара
  • категория товара или подкатегория
  • цена
  • краткое описание товара
  • изображение товара(минимум одно) или картинка заглушка
  • список характеристик товара
  • признак наличия товара
Внимание!! Товар может относится к определенной категории или только к подкатегории определенной категории товаров. Учтите это при разработке БД. Возможно стоит создать отдельную таблицу хранящую категории и их подкатегории товаров.

https://habr.com/post/101346/
https://dummyimage.com/
https://placeholder.com/

Внимание!! Список характеристик может отличать в зависимости от товара. Это стоит учесть при разработке БД и формы добавления товара.

Признак наличия товара. Вместе с характеристиками товара необходимо отображать количество оставшегося товара на складе в следующем виде

[N] шт. , где N – это количество товара на складе.

Если товар отсутствует на складе, то не обходимо указать на странице следующую надпись: «Товар отсутствует». И выделить её из общего потока информации.

Тип доставки. Для товара могут быть доступны следующие типы доставки:

  • самовывоз со склада – скидка 5% от стоимости заказа
  • доставка курьером – плюс 13% к стоимости заказа

Список заказчиков

Каждый заказчик обладает следующими характеристиками

  • тип заказчика – физическое или юридическое лицо
  • наименование
    • физ. лицо
      • ФИО
    • юр. лицо
      • полное наименование организации
  • адрес нахождения(проживания)
  • телефон
Внимание!! Заказчиком может быть как физическое, так и юридическое лицо. Учтите это при разработке БД и сопутствующих форм веб-интерфейса.

Сделки

Необходимо хранить следующую информацию по сделкам

  • наименование заказчика
  • товар
  • количество товара
  • дата создание документа
  • тип доставки
  • стоимость сделки

Таблица login

Таблица для хранения учётных записей. Пароли необходимо хранить в зашифрованном виде. Для шифрования разрешено использовать любую хэш-функцию. Так же использовать при шифровании паролей «соль», как дополнительное средство защиты от взлома учетной записи. Выбор «соли» и способ её создания остаётся за Вами.

Таблица пользователей должна хранить три вида учётных записей: root, администратор и пользователь. По умолчанию должны быть три учётные записи(пара логин/пароль плюс описание):

  • root – root – полный доступ из веб-приложения к БД
  • admin – admin – доступ ко всем возможностям веб-приложения, кроме создания нового пользователя и удаления информации из БД
  • user – user – только возможность поиска информации в БД(не затрагивая таблицу login)
Выше изложенные рекомендации к структуре базы данных являются обязательными к выполнению.

Веб-приложение

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

Дополнительно обеспечить удобство пользователя при просмотре информации(не в табличном виде).

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

Внимание!! Не авторизованный пользователь имеет доступ только к форме авторизации.

При успешной авторизации, а так же в зависимости от типа учётной записи, обеспечить пользователю следующие возможности

Поиск

Поиск осуществляется минимум по трём символам. Обеспечить возможность использования фильтров, например

  • по дате
  • по имени
  • по цене
  • по категории или подкатегории
  • по алфавиту
  • и т.д.

Предоставить пользователю возможность выбора таблицы, при осуществлении поиска.

Сообщения об ошибках заполнения формы или отсутствие информации в БД выводить на страницу. Использование всплывающих сообщений типа alert() запрещено, но разрешено использование модальных окон.

Добавление

При добавлении нового товара иметь возможность добавления новой категории товара или добавления подкатегории в выбранной категории товаров.

Внимание!! Стоит подумать над тем как и где хранить список категорий/подкатегорий. Возможно понадобится для этих целей ещё одна таблица.

Редактирование

На форме редактирования поля должны заполняться данными из БД автоматически.

Удаление

Удаление производится только после подтверждения пользователем. К примеру, это может быть модальное окно или отдельная страница с информацией о том что хотят удалить и кнопками подтверждения/отмены действия.

Выводить на страницу информацию о результатах работы в виде сообщений.

Заключение сделок

При заключении сделки стоит учитывать стоимость доставки

  • самовывоз со склада – скидка 5% от стоимости заказа
  • доставка курьером – плюс 13% к стоимости заказа



При разработки веб-приложения, на стороне клиента(frontend) использовать связку HTML5/CSS3/JS(AJAX). Серверная часть(backend) приложения должна использовать связку PHP/MySQL.

Для создания структуры БД использовать готовое веб-приложение phpMyAdmin из состава программного комплекса платформы Open Server.

Допускается использование стороних библиотек при разработке