Разработка онлайн-сервиса для подбора спортивного снаряжения

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,41 Мб
  • Опубликовано:
    2016-09-30
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка онлайн-сервиса для подбора спортивного снаряжения

Введение

Экстремальные виды спорта с каждым годом приобретают всё больше и больше приверженцев по всему миру. Особенно это касается так называемых «досочных» видов, которые включают в себя сноубординг, скейтбординг, вейкбординг и прочие виды спорта, где главным снарядом является специально изготовленная и оборудованная доска. Широкое распространение досочной культуры в Интернете и других СМИ, вкупе с массовым воздействием соревнований X-games и включением сноубординга в Олимпийские игры, доказывают растущую популярность упомянутых видов спорта.

Оборудование, используемое при занятиях тем или иным экстремальным спортом, обладает рядом параметров, которые непосредственно влияют на исполнение и впечатления спортсмена. Большинство досочных видов спорта включают в себя различные стили катания, каждый из которых требует определенных характеристик от используемого снаряжения для достижения наилучшего результата. Производители спортивного оборудования тратят огромное количество ресурсов на разработку новых дизайнов досок, внедрение различных технологий и расширение линеек своих продуктов. Другими словами, соответствующий рынок растет и развивается: к примеру, исследование мирового рынка досочных видов спорта, проведенное Global Industry Analysts, предсказывает его расширение до $19,6 млрд. к 2017 году[1].

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

Следующей предпосылкой для выбора темы данной работы является развитие Интернет-торговли: по данным зарубежных экспертов агентства eMarketer’s, общий объем продаж интернет-магазинов мира в период с 2012 по 2016 вырос практически в два раза (с $1,06 трлн. до $2,05 трлн.) и будет расти и дальше, к 2017 году составив $2,36 трлн. В России на долю Интернет-торговли в общем объеме ритейла пока приходится 2-5%, но при этом она увеличивается на 25-30% ежегодно[2]. Большинство крупных магазинов, не говоря уже о торговых сетях, имеют свой сайт, где покупатель может заказать любой товар из каталога, и специализированные магазины спортивного оборудования не являются исключением.

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

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

Предметом исследования является подбор досок и сопутствующего оборудования в зависимости от параметров и предпочтений спортсмена.

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

Для достижения цели выдвинуты следующие основные задачи:

1.      Исследовать рынок оборудования и выявить значимые параметры снаряжения, на которых будет основываться подбор

.        Разработать дружественный интерфейс веб-приложения

.        Разработать алгоритм интеллектуального подбора оборудования

.        Имплементировать в сервис модель сотрудничества с магазинами

Методы и технологии, которые будут использованы в процессе разработки сервиса, включают в себя:

·        Архитектура реализации веб-приложения типа «клиент-сервер»

·        Моделирование базы данных с реализацией в СУБД MySQL

·        Язык веб-программирования PHP

·        Средства описания разметки веб-страниц: HTML и CSS

Новизна разрабатываемого сервиса заключается в клиент-ориентированном подходе к подбору снаряжения. К аналогам подобного сервиса можно отнести сайты некоторых производителей сноубордов[3], на которых пользователь может ввести свои антропометрические данные и предпочитаемый стиль катания, и получить список подходящих досок. Данные сайты нельзя назвать полноценным сервисом подбора потому, что они предлагают только доски без креплений и ботинок; отбор ведется исключительно по каталогу данного производителя, а также потому, что данные сайты не делают конкретного розничного предложения. Таким образом, можно сказать, что разрабатываемое веб-приложение обладает новизной.

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

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

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

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

1. Теоретические предпосылки исследования


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

1.1 Предметная область

 

.1.1 Оборудование для сноубординга

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

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

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

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

В одном из немногих существующих научных трудов, связанных со сноубордингом[4] были выведены субъективные показатели ощущений райдера, описывающие поведение доски. Учитывая некоторые изменения в технологиях со времен упомянутого исследования, и соответствующе дополнив ряд показателей, получим следующий список:

·        Стабильность

·        Маневренность

·        Отзывчивость (насколько точно доска реагирует на движения райдера)

·        Снисходительность (насколько доска способна прощать ошибки райдера)

·        Щелчок (степень упругости доски, дающей импульс при выполнении различных элементов)

·        Удержание канта (насколько хорошо доска держит кант при резаных поворотах, на твердом снегу или льду)

·        Плавучесть (насколько легко доска всплывает в глубоком снегу)

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

Субъективные показатели поведения доски напрямую зависят от объективных характеристик, обусловленных её конструкцией и заложенных производителем. У каждого производителя есть свой набор технологий, используемых в его продукции, но, тем не менее, любой сноуборд имеет ряд параметров, являющийся общим для любых фирм:

Ростовку сноуборда принято определять двумя измерениями: продольной длиной доски и шириной талии (измеряется поперек доски в её самой узкой части). Длина сноуборда положительно значимо коррелирует с показателями стабильности[4], при меньшей длине доска теряет в стабильности, но становится более маневренной. Подбирать ростовку следует, в первую очередь[5], с ширины талии, так как именно она определяет, насколько размер ноги спортсмена сопоставим с данной доской.

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

Жесткость доски определяет её сопротивление к сгибанию и скручиванию. Высокая жесткость положительно влияет на стабильность, отзывчивость и удержание канта доски. Шкалы жесткости у разных фирм варьируются, но жесткость любой доски можно отнести к одной из пяти категорий: мягкая, средне-мягкая, средняя, средне-жесткая, жесткая. Упомянутые показатели снижаются при уменьшении жесткости сноуборда. При этом, более мягкие сноуборды отличаются высокой маневренностью и снисходительностью к ошибкам.

Прогиб сноуборда - форма продольного изгиба доски. Названия прогибов у каждого производителя свои, но на самом деле, основных видов прогиба, на рынке всего четыре: camber, rocker, flat и гибрид (Рисунок 1). Традиционный прогиб кэмбер (camber) представляет собой изгиб, при котором доска становится выпуклой по отношению к ровной поверхности под ней.

Обратный прогиб (rocker), напротив имеет выпуклость в сторону скользяка, и, следовательно, имеет более приподнятые над снегом нос и хвост доски. Нулевой прогиб (flat) представляет собой совершенно плоскую доску от носа и до хвоста. Гибридные прогибы представляют собой всевозможные сочетания первых трех прогибов в одной доске.

Рисунок 1

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

Форму сноуборда принято описывать следующими категориями: симметричная доска (или т.н. «твин-тип»), направленный твин, направленная доска и тэйперд (от англ. Tapered - конусообразный). Симметричные доски отличаются одинаковым поведением при езде спортсмена как в своей стойке, так и в обратной. Направленные доски плохо показывают себя при езде в обратной стойке, зато в стилях, требующих скорости и стабильности, показываю лучший результат. Доски же с зауженным хвостом показывают самый лучший результат в глубоком снегу. Кроме самого сноуборда, на исполнение и ощущения райдера влияют его крепления и ботинки, так как именно они передают усилие спортсмена на доску. Как правило, основной характеристикой креплений и ботинок, влияющей на впечатления от катания, является жесткость этих комплектующих. Жесткие крепления, в сочетании с жесткими ботинками увеличивают отзывчивость доски и точность управления, следовательно, такие крепления и ботинки больше подходят для фрирайда. С другой стороны, более мягкие ботинки и крепления дают райдеру немного больше свободы в движениях, что облегчит выполнение трюков во фристайле.

Учитывая влияние перечисленных параметров сноуборда и комплектующих на ощущения спортсмена, можно вывести следующие сопоставления:

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

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

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

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

1.1.2 Оборудование для лонгбординга

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

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

·        Колесная база - расстояние между осями колёс. Как правило, каждая дека имеет несколько вариантов колесной базы. Чем выше данный показатель, тем стабильнее доска ведет себя на скорости, но тем менее маневренной она становится.

·        Конкейв - прогиб деки по ширине. Влияет на передачу энергии от ног райдера на подвески, а также сцепление райдера с доской.

·        Флекс (или упругость) - степень продольной жесткости деки. Мягкие доски занижают центр тяжести райдера и поглощают воздействие неровной поверхности. Жесткие же деки отличаются стабильностью и ведут себя более отзывчиво в поворотах. При выборе нежесткой доски следует учитывать вес спортсмена.

·        Прогиб (продольный) - аналогичный сноуборду параметр. В лонгбординге три вида прогиба: кэмбер, рокер и нулевой прогиб. Кэмбер обычно встречается на мягких и средних досках и добавляет отдачи в поворотах. Рокер занижает центр тяжести и, таким образом, способствует увеличению стабильности.

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

·        Способ крепления подвесок может быть классическим (т.н. top-mount) или дроп-тру (англ. drop-through). Во втором случае, доска имеет заниженный центр тяжести, что делает её более устойчивой. Также снижается нагрузка на ноги во время отталкивания и торможения. При этом, такие сильно теряют в маневренности, по сравнению с топ-маунт.

Подвески - специальная конструкция, соединяющая колёса с доской и позволяющая поворачивать колёса наклоном деки. Имеет следующие параметры:

·        Тип подвески - архитектура подвески, определяющая расположение её центрального болта.

·        Ширина должна подбираться в соответствии с шириной деки.

·        Угол наклона подвески определяет её способность к поворотам. Чем больше угол, тем маневреннее подвеска, но тем менее стабильно доска будет вести себя на скорости.

Колеса являются важной составляющей комплекта и сильно сказываются на исполнении спортсмена, в зависимости от следующих параметров:

·        Диаметр влияет на ускорение и накат доски. Также чем больше диаметр колёс, тем меньше райдер чувствует неровности асфальта.

·        Пятно контакта определяет степень сцепления с асфальтом - чем больше пятно (ширина колеса), тем больше сцепление.

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

·        Форма краёв колеса также влияет на его сцепление с асфальтом. Колёса со скошенными или скругленными краями проще сорвать в скольжение, чем колеса с прямоугольными краями.

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

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

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

Фрирайд - агрессивный вид катания, основанный на спусках с холмов и выполнении слайдов (скольжений на доске, при её развороте перпендикулярно движению). Для этого стиля важна стабильность и маневренность, а также способность доски к скольжению. Для такого стиля подходят жесткие топ-маунт деки в сочетании со скругленными жесткими колесами со смещенным сердечником.

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

1.1.3 Оборудование для вейкбординга

Комплект для вейкбординга включает в себя две составляющие: доску и крепления.

При выборе вейкборда необходимо руководствоваться следующими характеристиками:

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

·        Ширина: чем уже нос и хвост доски, тем выше маневренность и контроль. Чем шире нос и хвост, тем проще спортсмену вращаться на воде.

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

·        Расположение плавников ближе к центру доски способствует быстрой перекантовке и эффективному отталкиванию райдера с волны. Расположение килей по краям делает доску более устойчивой.

·        Жесткость. Более жесткие доски дают максимальный вылет с волны при езде за катером. На мягких досках проще выполнять трюки на перилах и боксах.

Подбор креплений зависит от следующих показателей:

·        Жесткость. Чем жестче ботинок, тем лучше он фиксирует ногу и передает энергию доске.

·        Размер зависит от размера ноги спортсмена.

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

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

 

1.2 Постановка задач


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

Для достижения поставленной цели нам необходимо решить следующие задачи:

·        Проанализировать полученные результаты исследования рынка и соответствующей литературы

·        Разработать функциональные и технические требования к веб-приложению

·        Смоделировать базу данных веб-приложения

·        Разработать алгоритм подбора, предоставляющий выборки с различной релевантностью, в зависимости от персональных характеристик пользователя

·        Разработать веб-сайт, отвечающий требованиям

·        Имплементировать бизнес-модель взаимодействия со специализированными магазинами

1.3 Бизнес-модель

К бизнес-модели предполагаемого веб-сервиса были выдвинуты следующие требования:

·        Модель сотрудничества должна быть привлекательна для магазинов инвентаря

·        Должна обеспечивать привлекательность сервиса для потребителя

·        Должна обеспечивать доход владельцу сервиса

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

Всем этим требованиям удовлетворяет бизнес-модель так называемых кэшбэк-сайтов (от англ. cashback), популярных за рубежом [6]. Термин «кэшбэк» в данном случае обозначает отсроченную скидку, предоставляемую потребителю в виде возврата части стоимости купленного товара. Схема взаимодействия участников модели (Рисунок 2) состоит в следующем: потребитель посещает кэшбэк-сайт, на котором размещены ссылки на профильные интернет-магазины, осуществляет переход на сайт магазина и совершает покупку. Клиент оплачивает продавцу розничную цену, а через некоторое время получает возврат части стоимости покупки, но уже не от продавца, а от кэшбэк-сайта (т.н. аффилиата). Источник кэшбэка - комиссионные, выплачиваемые торговцем аффилиату за каждого клиента, перешедшего по реферальной ссылке и совершившего покупку. Другими словами, владелец кэшбэк-сайта делится частью комиссионных с потребителями, стимулируя их покупать товары или услугу через свой сайт.

Рисунок 2

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

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

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

·        Приобретение магазинов-партнеров

·        Привлечение клиентов на сайт

·        Увеличение полезности сервиса для клиентов, ввиду наличия у портала не только целевого функционала, но и финансового бонуса

·        Окупаемость издержек на разработку и последующее получение прибыли

2. Технологии и подходы практической реализации

 

.1 Клиент-серверная архитектура реализации веб-приложения

онлайн сервис спортивный снаряжение

Термин "клиент-сервер" означает такую архитектуру программного комплекса, в которой его функциональные части взаимодействуют по схеме "запрос-ответ". Если рассмотреть две взаимодействующие части этого комплекса, то одна из них (клиент) выполняет активную функцию, т. е. инициирует запросы, а другая (сервер) пассивно на них отвечает.[7]

Важно отметить, что любая информационная система должна обладать тремя базовыми функциональными компонентами, которые могут быть реализованы независимо друг от друга и должны отвечать за:

1)      Представление данных (интерфейс)

)        Прикладную логику (алгоритм решения требуемой задачи)

)        Управление ресурсами

В современных сетевых технологиях распространена двухзвенная архитектура. В рамках такой архитектуры существует ряд моделей взаимодействия между клиентом и сервером, различающихся распределением трёх основных компонентов между двумя этими узлами. Перечень этих моделей представлен на рисунке 3. [8]

Рисунок 3

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

В настоящее время самой удобной является трехзвенная клиент-серверная архитектура. Её схема изображена на рисунке 4.

Рисунок 4

В такой системе компоненты распределяются следующим образом:

)        Представление данных - на стороне клиента.

)        Прикладная логика - на сервере приложений.

)        Управление ресурсами - на сервере баз данных

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

2.2 Проектирование базы данных


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

1)      Этап инфологического проектирования. Модель предметной области выражается в терминах ER-модели, где сущность определяется как дискретный объект, а связь описывает отношение между двумя сущностями.

)        Даталогический этап. Модель данных представляется в виде двухмерных таблиц и описывается в терминах конкретной системы управления базами данных.

Типы отношений между таблицами:

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

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

·        «многие-ко-многим» - любому экземпляру первой таблицы соответствует несколько экземпляров второй таблицы, и любому экземпляру второй таблицы соответствует несколько экземпляров первой таблицы.

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

2.3 Технические и функциональные требования


Для достижения цели исследования, к веб-приложению были выдвинуты следующие требования.

Функциональные требования:

·        Интуитивно понятный интерфейс приложения

·        На главной странице должны присутствовать ссылки на сайты партнёров

·        На портале должны присутствовать описания стилей катания и демонстрационные видео

·        Поля форм должны быть защищены от ввода некорректных данных

·        Запрос серверу может отправляться только после заполнения всех параметров необходимых для подбора

·        У пользователя должна быть возможность установить фильтр по стоимости конечного комплекта

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

·        На странице результатов должны присутствовать характеристики и изображения предлагаемого оборудования

Технические требования:

·        Реализация трехзвенной архитектуры «клиент-сервер»

·        Результирующая выборка должна динамически подгружаться с сервера БД

·        Интеграция баз данных интернет-магазинов

·        Хранение правил подбора в БД

·        4 нормальная форма баз данных

Инструменты разработки:

·        ПО для проектирования БД - MySQL Workbench

·        СУБД MySQL

·        Cистема администрирования phpMyAdmin

·        Язык веб-программирования PHP

·        Средства описания разметки веб-страниц: HTML и CSS

·        Фреймворк Bootstrap

3. Практическая реализация

 

.1 Базы данных

 

.1.1 БД оборудования для сноубординга

Рисунок 5

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

AverageLength - таблица, содержащая соответствие возможных ростовок сноуборда весу и росту райдера. (см. Таблицу 1)

Таблица 1

Название атрибута

Тип данных

Описание

idLength (PK)

int(11)

Первичный ключ таблицы.

minWeight

int(11)

Нижняя граница веса райдера.

maxWeight

int(11)

Верхняя граница веса райдера.

minHeight

int(11)

Нижняя граница роста райдера.

maxHeight

int(11)

Верхняя граница роста райдера.

minLength

int(11)

Нижняя граница средней длины сноуборда

maxLength

int(11)

Верхняя граница средней длины сноуборда


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

Таблица 2

Название атрибута

Тип данных

Описание

idBinding (PK)

int(11)

Первичный ключ таблицы

BindingModel

varchar(45)

Название модели креплений

BindingGender

char(1)

Гендерное назначение креплений

idBrand (FK)

int(11)

Идентификатор производителя

idBindingFlex (FK)

int(11)

Идентификатор жесткости креплений

BindingPrice

double

Стоимость креплений, $

image

text()

Ссылка на изображение товара


BindingFlex - сущность, описывающая жесткость креплений. (см. Таблицу 3).

Таблица 3

Название атрибута

Тип данных

Описание

idBindingFlex (PK)

int(11)

Первичный ключ таблицы

BindingFlex

varchar(45)

Категория жесткости креплений


BindingSize - сущность, описывающая размер креплений. (см. Таблицу 4).

Таблица 4

Название атрибута

Тип данных

Описание

idBindingSize (PK)

int(11)

Первичный ключ таблицы

Size

varchar(4)

Размер крепления

idBinding (FK)

int(11)

Идентификатор модели крепления

- сущность, описывающая модель сноуборда. (см. Таблицу 5).

Таблица 5

Название атрибута

Тип данных

Описание

idBoard (PK)

int(11)

Идентификатор модели

BoardModel

varchar(45)

Название модели сноуборда

BoardGender

char(1)

Гендерная принадлежность модели

idBoardProfile (FK)

int(11)

Идентификатор прогиба сноуборда

idBoardShape (FK)

int(11)

Идентификатор формы сноуборда

idBrand(FK)

int(11)

Идентификатор производителя

idBoardFlex (FK)

int(11)

Идентификатор жесткости сноуборда

idHolePattern (FK)

int(11)

Идентификатор типа закладных

BoardPrice

double

Стоимость модели, $

image

text()

Ссылка на изображение товара

- сущность, описывающая жесткость сноуборда. (см. Таблицу 6).

Таблица 6

Название атрибута

Тип данных

Описание

idBoardFlex (PK)

int(11)

Первичный ключ таблицы

BoardFlex

varchar(45)

Категория жесткости сноуборда


BoardProfile - сущность, описывающая прогиб сноуборда. (см. Таблицу 7).

Таблица 7

Название атрибута

Тип данных

Описание

idBoardProfile (PK)

int(11)

Первичный ключ таблицы

Profile

varchar(45)

Категория прогиба сноуборда


BoardShape - сущность, описывающая форму сноуборда. (см. Таблицу 8).

Таблица 8

Название атрибута

Тип данных

Описание

idBoardShape(PK)

int(11)

Первичный ключ таблицы

Shape

varchar(45)

Категория геометрии сноуборда


BoardSize - таблица, хранящая возможные ростовки модели сноуборда. (см. Таблицу 9).

Таблица 9

Название атрибута

Тип данных

Описание

idBoardSize (PK)

int(11)

Идентификатор ростовки модели

Length

int(11)

Длина доски, см

Width

int(11)

Ширина талии сноуборда, мм

idBoard (FK)

int(11)

Идентификатор модели сноуборда



Boot - сущность, описывающая модель сноубордических ботинок. (см. Таблицу 10)

Таблица 10

Название атрибута

Тип данных

Описание

idBoot

int(11)

Идентификатор модели ботинок

BootModel

varchar(45)

Название модели

Lacing

varchar(45)

Тип шнуровки

image

text()

Ссылка на изображение товара

BootGender

char(1)

Гендерная принадлежность ботинок

idBrand (FK)

int(11)

Идентификатор производителя

BootPrice

Стоимость пары ботинок, $

idBootFlex (FK)

int(11)

Идентификатор жесткости ботинок


BootFlex - сущность, описывающая жесткость ботинок. (Таблица 11)

Таблица 11

Название атрибута

Тип данных

Описание

idBootFlex (PK)

int(11)

Первичный ключ таблицы

BootFlex

varchar(45)

Степень жесткости ботинок


BootSize - таблица, содержащая возможные размеры модели ботинок. (см. Таблицу 12)

Таблица 12

Название атрибута

Тип данных

Описание

idBootSize (PK)

int(11)

Первичный ключ таблицы

BootSize

decimal(11,1)

Размер ботинка

idBoot (FK)

int(11)

Идентификатор модели ботинка


Brand - сущность, описывающая производителя оборудования. (см. Таблицу 13)

Таблица 13

Название атрибута

Тип данных

Описание

idBrand (PK)

int(11)

Первичный ключ таблицы

BrandName

varchar(45)

Торговая марка производителя


HolePattern - сущность, описывающая тип закладных. (см. Таблицу 14)

Таблица 14

Название атрибута

Тип данных

Описание

idHolePattern (PK)

int(11)

Первичный ключ таблицы

HolePattern

varchar(45)

Тип закладных


Style - таблица, хранящая стили катания. (см. Таблицу 15)

Таблица 15

Название атрибута

Тип данных

Описание

idStyle (PK)

int(11)

Первичный ключ таблицы

StyleName

varchar(45)

Название стиля катания

 - таблица содержащая соответствие возможных ростовок сноуборда весу и росту райдера. (см. Таблицу 16)

Таблица 16

Название атрибута

Тип данных

Описание

idWidth (PK)

int(11)

Идентификатор диапазона ширины

FootSize

decimal(11,1)

Размер ботинка, US

minWidth

int(11)

Минимальная ширина талии сноуборда, мм

maxWidth

int(11)

Максимальная ширина талии сноуборда, мм


Style_has_BindingFlex- промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и жесткости креплений. (см. Таблицу 17)

Таблица 17

Название атрибута

Тип данных

Описание

idStyle

int(11)

Идентификатор стиля катания

idBindingFlex

int(11)

Идентификатор жесткости крепления

Relevance

int(11)

Балл совместимости жесткости и стиля


Style_has_BoardFlex- промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и жесткости сноуборда. (см. Таблицу 18)

Таблица 18

Название атрибута

Тип данных

Описание

idStyle

int(11)

Идентификатор стиля катания

idBoardFlex

int(11)

Идентификатор жесткости доски

Relevance

int(11)

Балл совместимости жесткости и стиля


Style_has_BoardProfile- промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и прогиба доски. (см. Таблицу 19)

Таблица 19

Название атрибута

Тип данных

Описание

idStyle

int(11)

Идентификатор стиля катания

idBoardProfile

int(11)

Идентификатор прогиба доски

Relevance

int(11)

Балл совместимости прогиба и стиля

_has_BoardShape- промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и формы доски. (см. Таблицу 20)

Таблица 20

Название атрибута

Тип данных

Описание

idStyle

int(11)

Идентификатор стиля катания

idBoardShape

int(11)

Идентификатор формы доски

Relevance

int(11)

Балл совместимости формы и стиля

_has_BootFlex - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания.

Таблица 21

Название атрибута

Тип данных

Описание

idStyle

int(11)

Идентификатор стиля катания

idBootFlex

int(11)

Идентификатор жесткости ботинка

Relevance

int(11)

Балл совместимости жесткости и стиля


Binding_has_HolePattern- промежуточная таблица связи многие-ко-многим содержащая список поддерживаемых закладных для каждой модели креплений. (см. Таблицу 22)

Таблица 22

Название атрибута

Тип данных

Описание

idBinding

int(11)

Идентификатор модели крепления

idHolePattern

int(11)

Идентификатор типа закладных


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

Рисунок 6

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

Рисунок 7

Представление BindRel, отображает совместимость модели креплений с каждым стилем катания, а также различные характеристики модели (пример на рисунке 8).

Рисунок 8

Представление BootRel, отображает совместимость модели ботинок с каждым стилем катания, а также различные характеристики модели, такие как тип шнуровки и цена (пример на рисунке 9).

Рисунок 9

3.1.2 БД оборудования для лонгбординга


Рисунок 10

Схема модели реляционной базы данных, смоделированной для веб-приложения, изображена на рисунке 10. При анализе предметной области были выделены следующие сущности и атрибуты:- сущность, описывающая производителя оборудования. (см. Таблицу 23)

Таблица 23

Атрибут

Тип данных

Описание

idBrand (PK)

int(11)

Идентификатор производителя

BrandName

varchar(45)

Наименование бренда

- сущность, описывающая конкейв деки. (см. Таблицу 24)

Таблица 24

Атрибут

Тип данных

Описание

idConcave (PK)

int(11)

Идентификатор конкейва

Concave

varchar(45)

Тип конкейва


Deck - сущность, описывающая деку лонгборда.(см. Таблицу 25)

Таблица 25

Атрибут

Тип данных

Описание

idDeck (PK)

int(11)

Идентификатор деки

DeckModel

varchar(45)

Модель деки

DeckLength

int(11)

Длина деки, дюймы

WheelbaseMin

int(11)

Минимальная колесная база, дюймы

WheelbaseMax

int(11)

Максимальная колесная база, дюймы

DeckWidth

int(11)

Ширина деки, дюймы

Material

varchar(45)

Материал деки

DeckShape_idDeckShape

int(11)

Идентификатор формы деки

Concave_idConcave

int(11)

Идентификатор конкейва

DeckProfile_idDeckProfile

int(11)

Идентификатр прогиба деки

Brand_idBrand

int(11)

Идентификатор бренда



DeckMount - сущность, описывающая тип крепления подвесок к деке. (см. Таблицу 26)

Таблица 26

Атрибут

Тип данных

Описание

idDeckMount (PK)

int(11)

Идентификатор типа крепления

DeckMount

varchar(45)

Наименование типа крепления

 - сущность, описывающая форму деки лонгборда. (см. Таблицу 27)

Таблица 27

Атрибут

Тип данных

Описание

idDeckShape (PK)

int(11)

Идентификатор формы деки

Shape

varchar(45)

Описание формы

Kicktail

char(1)

Наличие киктейла(Y/N)

_has_DeckMount - промежуточная таблица связи многие-ко-многим содержащая набор типов крепежа для каждой деки.(см. Таблицу 28)

Таблица 28

Атрибут

Тип данных

Описание

Deck_idDeck

int(11)

Идентификатор деки

DeckMount_idDeckMount

int(11)

Идентификатор типа крепления

 - сущность, описывающая стиль катания.(см. Таблицу 29)

Таблица 29

Атрибут

Тип данных

Описание

idStyle (PK)

int(11)

Первичный ключ таблицы

StyleName

varchar(45)

Наименование стиля катания


Style_has_Concave - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания.

Таблица 30

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

Concave_idConcave

int(11)

Идентификатор конкейва

Relevance

int(11)

Балл совместимости стиля и конкейва

_has_DeckMount - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и типа крепления подвески. (см. Таблицу 31)

Таблица 31

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

DeckMount_idDeckMount

int(11)

Идентификатор типа крепежа

Relevance

int(11)

Балл совместимости стиля и типа крепления

_has_DeckProfile - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и прогибом доски. (см. Таблицу 32)

Таблица 32

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

DeckProfile_idDeckProfile

int(11)

Идентификатор прогиба доски

Relevance

int(11)

Балл совместимости стиля и прогиба

_has_DeckShape - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и формой доски. (см. Таблицу 33)

Таблица 33

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

DeckShape_idDeckShape

int(11)

Идентификатор формы деки

Relevance

int(11)

Балл совместимости стиля и формы

_has_TruckAngle - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и угла наклона подвесок. (см. Таблицу 34)

Таблица 34

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

TruckAngle_idTruckAngle

int(11)

Идентификатор угла наклона подвесок

Relevance

int(11)

_has_TruckType - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и типом подвесок. (см. Таблицу 35)

Таблица 35

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

TruckType_idTruckType

int(11)

Идентификатор типа подвесок

Relevance

int(11)

Балл совместимости стиля и типа подвесок

_has_WheelCore - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и вида сердечника колеса. (см. Таблицу 36)

Таблица 36

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

WheelCore_idWheelCore

int(11)

Идентификатор типа сердечника колеса

Relevance

int(11)

Балл совместимости стиля и типа сердечника

_has_WheelDurometer - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и жесткости колес. (см. Таблицу 37)

Таблица 37

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

WheelDurometer_idWheelDurometer

int(11)

Идентификатор степени жесткости колес

Relevance

int(11)

Балл совместимости стиля и жесткости колес

_has_WheelEdge - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и типом подвесок. (см. Таблицу 38)

Таблица 38

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

WheelEdge_idWheelEdge

int(11)

Идентификатор формы колеса

Relevance

int(11)

Балл совместимости стиля и формы колеса


Truck - сущность, описывающая подвеску лонгборда. (см. Таблицу 39)

Таблица 39

Атрибут

Тип данных

Описание

idTruck (PK)

int(11)

Первичный ключ таблицы

TruckModel

varchar(45)

Модель подвески

TruckWidth

int(11)

Ширина вешалки подвески

TruckType_idTruckType

int(11)

Идентификатор типа подвески

Brand_idBrand

int(11)

Идентификатор производителя

 - сущность, описывающая угол наклона подвески.

Таблица 40

Атрибут

Тип данных

Описание

idTruckAngle (PK)

int(11)

Первичный ключ таблицы

Angle

int(11)

Угол наклона болта подвески

 - сущность, описывающая тип подвески. (см. Таблицу 41)

Таблица 41

Атрибут

Тип данных

Описание

idTruckType (PK)

int(11)

Первичный ключ таблицы

TruckType

varchar(45)

Тип подвески

_has_TruckAngle - промежуточная таблица связи многие-ко-многим содержащая список поддерживаемых углов наклона для каждой модели подвесок. (см. Таблицу 42)

Таблица 42

Атрибут

Тип данных

Описание

Truck_idTruck

int(11)

Идентификатор модели подвески

TruckAngle_idTruckAngle

int(11)

Идентификатор угла наклона

 - сущность, описывающая расположение сердечника колеса. (см. Таблицу 43)

Таблица 43

Атрибут

Тип данных

Описание

idWheelCore (PK)

int(11)

Первичный ключ таблицы

WheelCore

varchar(45)

Тип сердечника колеса

 - сущность, описывающая жесткость колеса. (см. Таблицу 44)

Таблица 44

Атрибут

Тип данных

Описание

idWheelDurometer (PK)

int(11)

Первичный ключ таблицы

Durometer

int(11)

Жесткость колеса

- сущность, описывающая форму краев колеса. (см. Таблицу 45)

Таблица 45

Атрибут

Тип данных

Описание

idWheelEdge (PK)

int(11)

Первичный ключ таблицы

Edge

varchar(45)

Название форма краев колеса

 - сущность, описывающая колесо. (см. Таблицу 46)

Таблица 46

Атрибут

Тип данных

Описание

idWheel (PK)

int(11)

Первичный ключ таблицы

WheelModel

varchar(45)

Модель колёс

Diameter

int(11)

Диаметр колеса

ContactPatch

int(11)

Пятно контакта колеса

Brand_idBrand

int(11)

Идентификатор производителя

WheelEdge_idWheelEdge

int(11)

Идентификатор формы колес

WheelCore_idWheelCore

int(11)

Идентификатор типа сердечника



Wheels_has_WheelDurometer - промежуточная таблица связи многие-ко-многим содержащая список возможных жесткостей для каждой модели колеса. (см. Таблицу 47)

Таблица 47

Атрибут

Тип данных

Описание

Wheels_idWheels

int(11)

Идентификатор модели колеса

WheelDurometer_idWheelDurometer

int(11)

Идентификатор жесткости колеса


3.1.3 БД оборудования для вейкбординга


Рисунок 11

На рисунке 11 изображена схема модели реляционной базы данных, разработанной для данного веб-приложения. При анализе предметной области были выделены следующие сущности и атрибуты:x - сущность, описывающая жесткость креплений. (см. Таблицу 48).

Таблица 48

Атрибут

Тип данных

Описание

idBindFlex (PK)

int(11)

Первичный ключ таблицы

Flex

varchar(45)

Степень жесткости креплений

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

Таблица 49

Атрибут

Тип данных

Описание

idBinding (PK)

int(11)

Первичный ключ таблицы

BindingModel

varchar(45)

Модель креплений

BindType

varchar(45)

Тип креплений

Lacing

varchar(45)

Тип шнуровки

BindFlex_idBindFlex

int(11)

Идентификатор жесткости креплений

Brand_idBrand

int(11)

Идентификатор производителя

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

Таблица 50

Атрибут

Тип данных

Описание

idBindingSize (PK)

int(11)

Первичный ключ таблицы

Size

int(11)

Размер крепления

Binding_idBinding

int(11)

Идентификатор крепления



Brand - сущность, описывающая производителя оборудования. (см. Таблицу 51)

Таблица 51

Атрибут

Тип данных

Описание

idBrand (PK)

int(11)

Первичный ключ таблицы

BrandName

varchar(45)

Наименование производителя оборудования

- сущность, описывающая стиль катания. (см. Таблицу 52)

Таблица 52

Атрибут

Тип данных

Описание

idStyle (PK)

int(11)

Первичный ключ таблицы

StyleName

varchar(45)

Наименование стиля катания

_has_BindFlex - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и жесткости подвесок. (см. Таблицу 53)

Таблица 53

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля

BindFlex_idBindFlex

int(11)

Идентификатор жесткости крепления

Relevance

int(11)

Балл совместимости стиля и жесткости креплений

_has_WakeFins - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и типа плавников доски. (см. Таблицу 54)

Таблица 54

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

WakeFins_idWakeFins

int(11)

Идентификатор типа плавников доски

Relevance

int(11)

Балл совместимости стиля и типа плавников

_has_WakeFlex - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и степени жесткости доски. (см. Таблицу 55)

Таблица 55

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

WakeFlex_idWakeFlex

int(11)

Идентификатор жесткости доски

Relevance

int(11)

Балл совместимости стиля и жесткости доски

_has_WakeProfile - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и прогиба вейкборда. (см. Таблицу 56)

Таблица 56

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

WakeProfile_idWakeProfile

int(11)

Идентификатор прогиба доски

Relevance

int(11)

Балл совместимости стиля и прогиба

_has_WakeShape - промежуточная таблица связи многие-ко-многим содержащая релевантность для каждого сочетания вида катания и формы вейкборда. (см. Таблицу 38)

Таблица 57

Атрибут

Тип данных

Описание

Style_idStyle

int(11)

Идентификатор стиля катания

WakeShape_idWakeShape

int(11)

Идентификатор формы вейкборда

Relevance

int(11)

Балл совместимости стиля и формы

сущность, описывающая модель вейкборда.(см. Таблицу 58)

Таблица 58

Атрибут

Тип данных

Описание

idWakeboard (PK)

int(11)

Первичный ключ таблицы

WakeModel

varchar(45)

Модель вейкборда

WakeProfile_idWakeProfile

int(11)

Идентификатор прогиба доски

WakeFins_idWakeFins

int(11)

Идентификатор типа плавников доски

WakeFlex_idWakeFlex

int(11)

Идентификатор жесткости доски

WakeShape_idWakeShape

int(11)

Идентификатор формы вейкборда

Brand_idBrand

int(11)

Наименование производителя оборудования

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

Таблица 59

Атрибут

Описание

idWakeFins (PK)

int(11)

Первичный ключ таблицы

Fins

varchar(45)

Тип плавников вейкборда

сущность, описывающая жесткость вейкборда.(см. Таблицу 60)

Таблица 60

Атрибут

Тип данных

Описание

idWakeFlex (PK)

int(11)

Первичный ключ таблицы

Flex

varchar(45)

Степень жесткости доски

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

Таблица 61

Атрибут

Тип данных

Описание

idWakeProfile (PK)

int(11)

Первичный ключ таблицы

Profile

varchar(45)

Название прогиба доски

- сущность, описывающая форму вейкборда. (см. Таблицу 62)

Таблица 62

Атрибут

Тип данных

Описание

idWakeShape (PK)

int(11)

Первичный ключ таблицы

WakeShape

varchar(45)

Название формы вейкборда

Concave

char(1)

Наличие конкейва (Y/N)

Vshape

char(1)

Наличие v-образного изгиба (Y/N)

Chanell

char(1)

Наличие каналов (Y/N)

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

Таблица 63

Атрибут

Тип данных

Описание

idWakeSize (PK)

int(11)

Первичный ключ таблицы

Length

int(11)

Длина доски

Width

int(11)

Ширина доски

Wakeboard_idWakeboard

int(11)

Идентификатор модели доски


3.2 Карта сайта


Рисунок 12

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

 

3.3 Алгоритм подбора


На примере подбора снаряжения для сноубординга разберем алгоритм подбора, реализованный в веб-приложении. Правила подбора хранятся в базе данных в таблицах, связывающих стили с каждым значимым параметром оборудования (таблицы Style_has_BindingFlex, Style_has_BoardFlex, Style_has_BoardProfile, Style_has_BoardShape, Style_has_BootFlex). Такой подход дает возможность изменять и совершенствовать прикладную логику без изменений общей структуры приложения. На основе введенных параметров, приложение определяет диапазоны возможных ростовки и ширины доски, формирует отсортированную выборку моделей под выбранный стиль, отфильтровывает выборку по полу и бюджету, и затем оставляет только модели, имеющие подходящие размеры. Это достигается посредством следующих PHP функций (PHP код каждой из функций можно найти в Приложении).

Функция get_size() посредством SQL запросов обращается к справочным таблицам AverageLength и AverageWidth, и записывает диапазоны возможных значений для длины и ширины сноуборда в массив. Функция изменяет эти диапазоны, в зависимости от выбранного пользователем стиля, а также определяет размер креплений в зависимости от размера ноги пользователя. Возвращает массив $size, хранящий в себе все необходимые размеры оборудования.

Функция findboards() посредством SQL запроса формирует отсортированную выборку моделей досок, отфильтровывает ее по размерам и сохраняет три доски с высшей релевантностью в массив для формирования комплектов.

Функция findboot() посредством SQL запроса формирует отсортированную выборку моделей ботинок, отфильтровывает ее по размерам и сохраняет три модели с высшей релевантностью в массив для формирования комплектов.

Функция findbind() посредством SQL запроса формирует отсортированную выборку моделей креплений, отфильтровывает ее по размерам и сохраняет три модели с высшей релевантностью в массив для формирования комплектов.

3.3 Пример использования сайта


Рисунок 13

Вид стартовой страницы портала изображен на рисунке 13. По нажатию пользователем кнопки «Начать», веб-браузер пролистывает страницу вниз, открывая пользователю информацию о партнерах и ссылки на страницы подбора оборудования. (см. Рисунок 14).

Рисунок 14

Кликнув на одну из этих ссылок, пользователь перейдет на страницу подбора оборудования для того или иного вида спорта. Пример страницы подбора сноуборда приведен на рисунке 15.

Рисунок 15

Данная страница содержит видеоролики и описания основных видов катания, которые должны помочь несведущему пользователю определиться со стилем. Выбор стиля производится при помощи переключателей. Чуть ниже пользователю предлагается заполнить форму, введя данные, на основе которых будет осуществлен выбор. Если пользователь нажмет на кнопку «Подобрать», не заполнив обязательные поля, появится сообщение, изображенное на рисунке 16.

Рисунок 16

Заполнив все обязательные поля и кликнув на «Подобрать», пользователь отправит запрос на сервер и перейдет на страницу отображения результатов (рисунок 17), где система предложит ему три подходящих комплекта инвентаря.

Рисунок 17

По нажатию кнопки «Купить» под выбранным комплектом, пользователь перейдет по реферальной ссылке в сформированную корзину на сайте партнерского магазина.

Если по запросу пользователя, в базе не нашлось подходящих данных, пользователь увидит следующую страницу. (см. рисунок 18)

Рисунок 18

3.4 Апробация


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

·        Руководитель проекта

·        Аналитик

·        Специалист по спортивному оборудованию

·        Веб-дизайнер

·        Backend- разработчика

·        Магазины - партнеры

Таблица 64 представляет матрицу ответственности участников проекта.


Для оценки перспективности проекта был также проведен SWOT-анализ (см. Таблицу 65).

Таблица 65

Сильные стороны. • Уникальность оказываемой услуги • Популярность экстремальных видов спорта • Клиент-ориентированность

Возможности. • Расширение предметной области • Усовершенствов. алгоритма подбора

Слабые стороны. • Зависимость от магазинов-партнеров • Малое количество возможных партнеров в РФ

Угрозы. • Возм. нежелание бордшопов сотруд. • Слабая\неэффективная реклама


Для анализа стоимости выполнения работ проекта было составлено дерево предполагаемых работ (см. Рисунок 19), а также предполагаемые ресурсы и затраты (см. Рисунок 20).

Рисунок 19

Рисунок 20

Посредством инструментария MS Project был посчитан примерный бюджет проекта. Исходя из предположенных ресурсов, бюджет проекта составляет 1124950 руб. Предположим, что партнеры будут выплачивать комиссионные в размере 20% от стоимости комплекта оборудования, а покупатели, получать 8% кэшбэка. Примем среднюю стоимость комплекта за 40000 руб. и допустим, что посредством нашего сервиса будет производиться хотя бы 20 продаж в месяц. Таким образом, наш ежемесячный доход составит 40000*20*0,12=96000 руб. При таких цифрах, данный проект окупится примерно через год и начнет приносить прибыль.

Заключение


Итак, в ходе данной работы были решены следующие задачи:

·        Проведено исследование рынка досочных видов спорта и соответствующей литературы

·        Выявлены значимые параметры оборудования, влияющие на исполнение спортсмена.

·        Разработан алгоритм интеллектуального подбора снаряжения

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

·        Имплементирована бизнес-модель, удовлетворяющая требованиям проектного решения, и доказана её целесообразность.

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

Список литературы

1.Global Industry Analysts, «Report Has Boardsports Market At $19 Billion By 2017,» 2014. [В Интернете]. Available: #"897426.files/image022.jpg">

Таблица 67. AverageWidth


Таблица 68. Binding


Таблица 69. BindingFlex


Таблица 70. BindingSize


Таблица 71. Board


Таблица 72. BoardFlex


Таблица 73. BoardProfile


Таблица 74. BoardShape


Талица 75. BootFlex



Таблица 76. Brand


Таблица 77. BoardSize



Таблица 78. Boot


Таблица 79. BootSize Style_has_BootFlex



Таблица 80. HolePattern


Таблица 81. Style


Таблица 82. Style_has_BindingFlex Style_has_BoardFlex


Таблица 83. Style_has_BoardProfile Style_has_BoardShape

онлайн сервис спортивный снаряжение

Похожие работы на - Разработка онлайн-сервиса для подбора спортивного снаряжения

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!