Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал:
https://er.chdtu.edu.ua/handle/ChSTU/6906| Назва: | WEB-ОРІЄНТОВАНА ІНФОРМАЦІЙНА СИСТЕМА СЕРВІСУ З АВТОРОЗБОРКИ |
| Автори: | Рудницький , Сергій Володимирович Довгань, Андрій Сергійович |
| Ключові слова: | інформаційна система;WordPress;Squarespace;Joomla;web-орієнтована система |
| Дата публікації: | 16-чер-2021 |
| Короткий огляд (реферат): | Продажі нових автомобілів у всьому світі в 2020 році впали до 64 мільйонів одиниць порівняно з піком майже 80 мільйонів одиниць у 2017 році. Пандемія вплинула на рівень попиту на нові автомобілі, що призвело до збільшення життєвого циклу вживаних автомобілів. У 2019 році по всьому світу було виготовлено майже 92 мільйони автомобілів. Цей показник на 5 відсотків нижче порівняно з попереднім роком. Тому сьогодні все більше користуються попитом станції технічного обслуговування та магазини автозапчастин. Онлайн-продажі автозапчастин та аксесуарів за останні кілька років стрімко зросли (коли роздрібні торговці під час пандемії вийшли в інтернет-простір). Прогнозується, що ріст ринку продовжиться на рівні CAGR (Compound annual growth rate – сукупний середньорічний темп зростання; показує, на скільки відсотків за рік приростає досліджуваний параметр) до 3% до 2030 року. Але через брак навичок, стратегічну спрямованість та ресурси для оцифрування деталей більшість продавців у цій галузі погано підготовлені. Середній вік автомобілів в розвинених країнах становить 11,8 років. Цифра почала відстежуватися рівно 20 років тому, і сьогодні середній вік автомобілів є найвищим. Водії тримають свої транспортні засоби в дорозі довше, ніж будь-коли раніше, і в міру старіння попит на запасні частини значно зростає. Споживачі мають два варіанти придбання автозапчастин – виробники запасних частин та авторозборка (продаж б/в автозапчастин). Для багатьох власників автомобілів ціна питання запчастин постає гостро, і тому вибір запчастин нових чи вживаних стає очевидним. В даний час розробка веб-сайту сервісу авторозборки з подальшим продажем запчастин є актуальним питанням з двох основних причин: великий попит на вживані автозапчастини та перехід офлайнових магазинів на терени інтернету в умовах світової пандемії. |
| URI (Уніфікований ідентифікатор ресурсу): | https://er.chdtu.edu.ua/handle/ChSTU/6906 |
| Розташовується у зібраннях: | 126 Інформаційні системи та технології (Web-технології, web-дизайн) |
Файли цього матеріалу:
| Файл | Опис | Розмір | Формат | |
|---|---|---|---|---|
| РЕП_БАК_Довгань_WebC-1911.pdf Restricted Access | 3.99 MB | Adobe PDF | Переглянути/Відкрити Запит копії |
Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет інформаційних технологій і систем
Кафедра інформаційних технологій проектування
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему:
«WEB-ОРІЄНТОВАНА ІНФОРМАЦІЙНА СИСТЕМА
СЕРВІСУ З АВТОРОЗБОРКИ»
Виконав студент групи WebC – 1911,
спеціальності 126 –
Інформаційні системи та
технології,
освітня програма – Web-
технології Web-дизайн,
Довгань А.С.
Керівник к.т.н. Рудницький С.В.
Рецензент
Черкаси – 2021 року
ЗМІСТ
ВСТУП ......................................................................................................................... 3
1 ПОСТАНОВКА ЗАДАЧІ. ОГЛЯД ІСНУЮЧИХ АНАЛОГІВ ........................... 5
1.1 Аналіз предметної області ......................................................................... 5
1.2 Постановка задачі ....................................................................................... 6
1.3 Огляд існуючих аналогів ........................................................................... 6
1.4 Висновки до розділу 1 ............................................................................... 9
2 ПРОЕКТУВАННЯ WEB-ОРІЄНТОВАНОЇ ІНФОРМАЦІЙНОЇ СИСТЕМИ
СЕРВІСУ З АВТОРОЗБОРКИ ................................................................................ 10
2.1 Фактори створення web-орієнтованих систем сервісу авторозборки 10
2.2 Проектування бази даних запчастин ...................................................... 14
2.3 Висновки до розділу 2 ............................................................................. 18
3 РОЗРОБКА ПРОГРАМНОЇ ЧАСТИНИ ............................................................. 19
3.1 Вибір засобів розробки ............................................................................ 19
3.1.1 CMS Wordpress ............................................................................ 19
3.1.2 CMS Squarespace ......................................................................... 20
3.1.3 CMS Joomla .................................................................................. 21
3.3 Оптимізація веб-сайтів WordPress .......................................................... 22
3.4 Огляд дизайну web-орієнтованої інформаційної системи сервісу
авторозборки ................................................................................................... 26
3.5 Висновки до розділу 3 ............................................................................. 49
ВИСНОВКИ .............................................................................................................. 50
ДОДАТОК A 482 ЧДТУ 21981-01 Web-орієнтована інформаційна система
сервісу з авторозробки. Специфікація ................................................................... 51
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ................................................................ 72
ЧДТУ 211981.004 ПЗ
Зм. Лист № докумемента Підпис Дата
Розроб. Бабенко С.М. Літ. Лист Листів
Перев. Карапетян А.Р. Web-орієнтована інформаційна
система сервісу з авторозробки Н 2
. 74
Реценз
ФІТІС,
Н. .контр. Колесніков К.В Пояснювальна записка
Прокопенко Т.О кафедра ІТП, WebC-1911
Затв. .
ВСТУП
Продажі нових автомобілів у всьому світі в 2020 році впали до 64
мільйонів одиниць порівняно з піком майже 80 мільйонів одиниць у 2017 році.
Пандемія вплинула на рівень попиту на нові автомобілі, що призвело до
збільшення життєвого циклу вживаних автомобілів. У 2019 році по всьому
світу було виготовлено майже 92 мільйони автомобілів. Цей показник на 5
відсотків нижче порівняно з попереднім роком. Тому сьогодні все більше
користуються попитом станції технічного обслуговування та магазини
автозапчастин.
Онлайн-продажі автозапчастин та аксесуарів за останні кілька років
стрімко зросли (коли роздрібні торговці під час пандемії вийшли в інтернет-
простір). Прогнозується, що ріст ринку продовжиться на рівні CAGR
(Compound annual growth rate – сукупний середньорічний темп зростання;
показує, на скільки відсотків за рік приростає досліджуваний параметр) до 3%
до 2030 року. Але через брак навичок, стратегічну спрямованість та ресурси
для оцифрування деталей більшість продавців у цій галузі погано підготовлені.
Середній вік автомобілів в розвинених країнах становить 11,8 років.
Цифра почала відстежуватися рівно 20 років тому, і сьогодні середній вік
автомобілів є найвищим. Водії тримають свої транспортні засоби в дорозі
довше, ніж будь-коли раніше, і в міру старіння попит на запасні частини
значно зростає. Споживачі мають два варіанти придбання автозапчастин –
виробники запасних частин та авторозборка (продаж б/в автозапчастин). Для
багатьох власників автомобілів ціна питання запчастин постає гостро, і тому
вибір запчастин нових чи вживаних стає очевидним. В даний час розробка веб-
сайту сервісу авторозборки з подальшим продажем запчастин є актуальним
питанням з двох основних причин: великий попит на вживані автозапчастини
та перехід офлайнових магазинів на терени інтернету в умовах світової
пандемії.
Арк.
ЧДТУ 211981.004 ПЗ 3
Зм н . Арк. № докум. Підпис Дата
Метою кваліфікаційної роботи бакалавра є розробка web-орієнтованої
системи сервісу авторозборки, яка забезпечить автоматизацію процесу
продажу вживаних автозапчастин в Інтернеті.
Ефективна робота системи є передумовою успішної роботи сервісу
авторозборки та отримання прибутку від продажу запчастин.
Для досягнення поставленої мети кваліфікаційної роботи необхідно
розв’язати наступні задачі:
здійснити постановку задачі;
провести аналіз предметної області;
проаналізувати аналоги даної системи;
описати вимоги до розробки web-орієнтованої системи сервісу
авторозборки;
спроектувати базу даних;
здійснити програмну реалізацію розробленої системи.
Предметом дослідження є методи розробки веб-сайтів магазинів.
Об’єктом дослідження є технології створення веб-сайтів магазинів.
Обсяг кваліфікаційної роботи бакалавра складає 74 сторінки, у тому
числі вступ, три розділи, висновки, додаток та список використаних джерел.
Робота містить 38 рисунків та 25 найменувань літературних джерел.
Арк.
ЧДТУ 211981.004 ПЗ 4
Зм н . Арк. № докум. Підпис Дата
1 ПОСТАНОВКА ЗАДАЧІ. ОГЛЯД ІСНУЮЧИХ АНАЛОГІВ
1.1 Аналіз предметної області
Дослідження в області авторозборки показали, що галузь знаходиться
на неабиякому підйомі в зв’язку зі спрощеною системою завозу автомобілів із
США та Європи. Значна частина автомобілів, завезених зі Сполучених Штатів
приходять одразу на розборку, запчастини таких автомобілів користуються
великим попитом серед українських власників авто. По-перше, вживані
запчастини в гарному стані коштують значно дешевше, за нові. По-друге,
оригінальні запчастини до «американських» авто не завжди є в наявності в
автодилерів і тому часто замовлення потрібно чекати інколи до 2-3х тижнів.
З кожним роком кількість клієнтів, які хочуть робити покупки в
Інтернеті, збільшується. Зрештою, це легко, зручно і часто дешевше, ніж
покупки в магазині. Покупці автозапчастин не є винятком. Продаж
автозапчастин в Інтернеті – це тенденція майбутнього та ринкова можливість,
яка розширюється великими темпами.
Експерти кажуть, що майбутнє автомобільної електронної комерції має
великий потенціал, і тисячі клієнтів зараз купують автозапчастини цифровим
способом. Маючи такий шалений потенціал збільшити прибуток все більше
автомагазинів серйозно думають про розширення, щоб охопити інтернет-
спільноту.
Статистика продажу автозапчастин в Інтернеті:
- Інтернет-продажі автозапчастин та аксесуарів в 2020 році
склали понад 148 мільярдів доларів.
- Продаж нових автомобілів у США в 2020 році впав до 17
мільйонів автомобілів вперше з 2014 року.
- Продаж автозапчастин в Інтернеті перевищить $150 млрд у
2021 році.
Арк.
ЧДТУ 211981.004 ПЗ 5
Зм н . Арк. № докум. Підпис Дата
Дана статистика вказує про актуальність розробки веб-орієнтованої
інформаційної системи сервісу авторозборки з можливість організації
інтернет-магазину запчастин.
1.2 Постановка задачі
Предметна область автоматизації – це інтернет-магазини з продажу
вживаних автозапчастин. Розроблювана web-орієнтована інформаційна система
призначена для структурованого зберігання даних і виведення інформації про
наявні автозапчастини і їх технічні характеристики, їх вартість, ступінь
зношення, їх зображення тощо. Дана система повинна виконувати наступні
функції:
виведення каталогу автозапчастин;
детальний опис кожної запчастини;
пошук запчастин за різними критеріями;
оформлення замовлення безпосередньо на сайті;
можливість оплати замовлення онлайн.
1.3 Огляд існуючих аналогів
Перед проектуванням web-орієнтованої системи здійснено
інформаційний пошук та огляд деяких популярних аналогів сервісів
авторозборки. Далі представлено їх опис з визначенням переваг та недоліків
існуючих систем.
Інтернет-магазин автозапчастин Euromotors.com.ua – українська
компанія, заснована в 2012 році [23]. Основним видом діяльності є продаж і
постачання якісних і оригінальних б/в запчастин для автомобілів
європейського, японського та корейського виробництв (рис. 1.1).
Арк.
ЧДТУ 211981.004 ПЗ 6
Зм н . Арк. № докум. Підпис Дата
Рисунок 1.1 – Головна сторінка сайту EuroMotors
Аналіз дизайну інтернет-магазину виявив ряд переваг та недоліків
сайту. До переваг можна віднести зручний пошук за різними категоріями
запчастин, світлу кольорову гамму, наявність фото до усіх товарів, онлайн-
консультування клієнтів. В якості недоліків є наступне: відсутність мовної
панелі, онлайн-оплати, фото може не відповідати за кольором, комплектації
або станом, про що вказано на сайті.
Наступний сайт магазину Автоліга (рис. 1.2). Основною діяльністю
компанії є розбір авто на запчастини, а також доставка і продаж оригінальних
б/в запчастин провідних світових автовиробників із-за кордону [24].
Рисунок 1.2 – Головна сторінка сайту Автоліга
Арк.
ЧДТУ 211981.004 ПЗ 7
Зм н . Арк. № докум. Підпис Дата
Дизайн магазину виконаний в світлій кольоровій гаммі, що відповідає
загальним правилам ергономіки сайтів. Сайт містить простий пошук за
маркою авто та за категоріями запчастин. Цікавою відмінністю від інших
сайтів є наявність голосового пошуку. До недоліків варто віднести відсутність
онлайн оплати, онлайн-консультації та мовної панелі.
Сайт магазину razborka-ua (рис. 1.3) [25].
Рисунок 1.3 – Головна сторінка сайту razborka-ua
Сайт має зручний інтерфейс та пошук необхідних запчастин за маркою
та моделлю авто або за назвою/номером деталі. До позитивних сторін сайту
можна віднести наявність онлайн-консультування та зручний пошук. Недоліки
сайту – відсутність мовної панелі, онлайн-оплати, детального опису товарів та
інформації про фірму.
На усіх сайтах відсутні відгуки від клієнтів, що є недоліком, адже
наявність позитивних відгуків якнайкращим чином впливає на рішення
покупця зробити замовлення.
Арк.
ЧДТУ 211981.004 ПЗ 8
Зм н . Арк. № докум. Підпис Дата
Аналітичний огляд існуючих аналогів веб-сайтів сервісу авторозборки
показав переваги і недоліки досліджуваних систем, які враховані в розробленій
web-орієнтованій системі сервісу авторозборки.
1.4 Висновки до розділу 1
У першому розділі здійснено опис предметної області і постановку
задачі. Проаналізовано існуючі аналоги розроблюваної системи. За
результатами вивчення та дослідження існуючих аналогів web-орієнтованих
систем сервісу авторозборки, представлених на українському ринку, можна
зробити висновок, що вони містять ряд недоліків, що значно скорочують
кількість потенційних клієнтів. Тому доцільно розробити власну web-
орієнтовану систему, що буде враховувати переваги і недоліки.
Арк.
ЧДТУ 211981.004 ПЗ 9
Зм н . Арк. № докум. Підпис Дата
2 ПРОЕКТУВАННЯ WEB-ОРІЄНТОВАНОЇ ІНФОРМАЦІЙНОЇ
СИСТЕМИ СЕРВІСУ З АВТОРОЗБОРКИ
2.1 Фактори створення web-орієнтованих систем сервісу
авторозборки
Backend. Тут відбувається багато фактичної побудови сайту, оскільки
розробка бекенда передбачає написання коду, який в основному служить
цеглинками, які визначатимуть структуру веб-додатку. Нижче наведено
звичайні фактори, які підпадають під внутрішню розробку інтернет-магазину
автозапчастин, оскільки вони безпосередньо пов’язані з базою даних веб-
сайту. Для цього розробники, зазвичай, покладаються на системи управління
вмістом, такі як WordPress, Magento тощо, але також можна створити їх з нуля
або зробити більш адаптованими до конкретних вимог. Інтернет-магазин
повинен мати надійну та ефективну архітектуру баз даних, що
характеризується такими деталями:
a) Інформація про товар та замовника.
Будь-яка веб-програма, яка має на увазі комерцію, повинна мати повну
базу даних, яка збирає всі теперішні та майбутні деталі продуктів та клієнтів.
Зазвичай кожен продукт (будь то шини, бампери, кришки сальників, деталі
підвіски тощо) буде включений до бази даних, і будь-які майбутні включення
можуть бути зроблені з боку інтерфейсу. У свою чергу, кожен продукт буде
викладений через свій власний модуль, який включатиме фотографії та
відеозаписи високої чіткості, технічну інформацію, короткий опис його
особливостей, запитання та відповіді тощо.
b) Ціни та знижки.
Ціни та знижки нічим не відрізняються від інформації про опис товару.
В базі даних має міститись інформація про знижки і ця інформація повинна
надсилатись клієнтам за запитом адміністратора про актуальність зміни цін та
знижок. Також в базі даних повинні бути враховані різні типи знижок
Арк.
ЧДТУ 211981.004 ПЗ 10
Зм н . Арк. № докум. Підпис Дата
одночасно. Для цього можна створити розділені категорії, які призначені для
знижок на основі продуктів та знижок на основі замовлень. Використовуючи
динамічну модульну розробку на веб-сайті автозапчастин, можна оновлювати
сторінку товару в режимі реального часу та відображати ціну зі знижкою для
клієнта. Цей тип налаштування модуля ціни та знижки економить час для
клієнта і, безумовно, допомагає збільшити кількість конверсій.
c) Замовлення та деталі доставки.
Завдяки динамічній базі даних у розробці власних веб-сайтів зможна
плавно вести облік усіх замовлень, виконаних користувачами, а також
надавати точну інформацію про доставку. На сайті необхідно представити
інформацію про деталі різних способів доставки, наприклад:
- Швидка доставка – налаштувати це відповідно до поштового індексу.
- Безкоштовна доставка – використовувати певні налаштовані цінові
модулі, щоб встановити інформацію про те, що товар доступний для
безкоштовної доставки, поряд із загальною ціною, що відображається
на сторінці товару.
- Міжнародна доставка тощо.
d) Забезпечення безпеки інформації про кредитну картку та пароль.
Ролі розробників бекендів поширюються на шифрування
конфіденційної інформації, такої як дані кредитної картки та паролі. Часто це
робиться за допомогою стандартного способу хешування зазначених даних.
Веб-сайт магазину автозапчастин. Веб-сайт електронної комерції
автомобільних запчастин – це те, що надає клієнтам інформацію, отриману у
серверній системі, тому потрібно зробити її якомога більш презентабельною та
детальною.
a) Деталі, класифіковані на основі назви моделі, марки та року
виробництва.
Це забезпечує опис кожного товару, який продається на сайті. Кожен з
них може відображатися з його назвою, маркою та роком. Необхідно
Арк.
ЧДТУ 211981.004 ПЗ 11
Зм н . Арк. № докум. Підпис Дата
спроектувати веб-сайт таким чином, щоб користувач міг уточнити свій пошук
на основі зазначених категорій, щоб швидше знайти конкретну деталь, яка
йому потрібна. Не менш важливим є те, щоб зробити весь веб-сайт
орієнтованим на SEO та зручним для користувача, впровадивши оптимізовану
структуру URL-адрес та структуру на основі CRO (conversion rate optimization
або оптимізація коефіцієнта конверсії).
b) Товарний банер та банер зі знижками.
Візуальні банери, що містять або пропоновані товари, або знижки
можуть відразу привернути увагу відвідувачів, тому краще їх
використовувати.
c) Підтримка клієнтів.
Тут варто додати на сайт цілодобову онлай-підтримку у вигляді
виринаючого віконця онлайн-підтримки.
Сторінка товару. Сторінка товару вимагає не менше, ніж ретельну та
точну інформацію. Ось фактори, які більш-менш відіграють важливу роль у
цьому аспекті.
a) Деталі автозапчастин.
Коли користувач натискає певний товар, він повинен мати змогу
дізнатись більше про нього. Тут потрібна точність і правдивість. Про кожен
товар повинна відображатися лише достовірна та повна інформація.
b) Запитання та відповіді.
Сторінка товару повинна також містити розділ поширених запитань, де
всі основні запити (та відповідні відповіді) будуть зібрані та легко доступні
для користувачів. Необхідно скласти список цих питань і обов’язково надати
стислі, але повні відповіді на них.
c) Відгуки.
Заохочення користувачів залишати рейтинги чи відгуки в Інтернет-
магазині автозапчастин буде корисним для формування репутації магазину та
довіри клієнтів.
Арк.
ЧДТУ 211981.004 ПЗ 12
Зм н . Арк. № докум. Підпис Дата
d) Політика повернення товару.
Все, що організація окреслила в розділі політики повернення товару,
має бути виконано; інакше її в найкоротші терміни «завалять» скаргами. Для
цього створюється спеціальна сторінка, доступ до якої клієнти зможуть
отримати одним кліком і можна розробити зручну форму повернення з
найбільш відповідними полями, яку вони зможуть заповнити за лічені секунди,
щоб заощадити час та сили.
e) Фільтрувати та уточнювати параметри пошуку.
Зручною є можливість фільтрувати товари, коли користувач здійснює
пошук. Користувачі можуть додатково уточнювати свої пошуки, виходячи з
того, що доступне для цього конкретного пошуку стосовно марки, категорії
(наприклад, повітряний фільтр, генератор змінного струму, кондиціонер,
вугільний повітряний фільтр тощо), діапазон цін, рік) – кількість
представлених товарів (якщо відвідувач позначить відповідне поле) може
розглядатися як попередній перегляд.
f) Сторінка платежу.
Сторінку оплати можна налаштувати за допомогою API. Можна
використовувати спеціальні модулі для платіжних шлюзів, щоб пришвидшити
процес транзакції та надати більше можливостей для оплати.
g) Зображення товарів.
На сайті варто використовувати справжні зображення високої чіткості,
що відображають деталі з різних сторін, щоб забезпечити найкращу
інформативність.
Загалом, дизайн веб-сайту розробляється з однією метою: зручність.
Все стає впорядкованим, як бізнес-процес, так і транзакції. Чи варто
дивуватися тому, що тенденції електронної комерції в автомобільній галузі
завжди вказували на постійно зростаючу індустрію інтернет-покупок? Це
тому, що це легко та дуже вигідно для обох сторін, і автомобільна
промисловість електронної комерції нічим не відрізняється.
Арк.
ЧДТУ 211981.004 ПЗ 13
Зм н . Арк. № докум. Підпис Дата
2.2 Проектування бази даних запчастин
Великий обсяг даних та унікальні маркетингові вимоги зробили
післяпродажний бізнес з електронної комерції дуже складною галуззю. Як
наслідок, все більше і більше власників магазинів автозапчастин шукають
інтегровані рішення, які допоможуть їм збільшити продажі, збільшити
можливості, впорядкувати комунікації, покращити взаємодію з клієнтами та
випередити конкуренцію.
Добре відомо, що покупки через Інтернет стали звичним явищем у
сьогоднішньому все більш технологічному та оцифрованому світі. І з
настанням пандемії COVID-19 ця тенденція лише пришвидшилася. Цей спосіб
покупок не тільки простіший і менш трудомісткий, але також дозволяє
споживачам краще порівнювати ціни, встановлені діючими компаніями. Це
допомагає їм розглянути ширший вибір товарів, знайти найкращі пропозиції та
прочитати відгуки інших клієнтів.
Сьогодні понад 2,14 мільярда людей у всьому світі здійснюють
принаймні одну покупку в Інтернеті. Інтернет-продажі до кінця 2020 року
галузь післяпродажного обслуговування досягла цифри 722,8 мільярда
доларів. Статистика також показує, що до 2022 року обсяги продажів
автозапчастин в інтернеті сягнуть 162,4 мільярда доларів. Тому в інтересах
будь-якого продавця автозапчастин зосередити свої зусилля на електронній
комерції, платформах онлайн-продажів та програмному забезпеченні баз даних
відповідно до їх потреб. Однак просто продавати автозапчастини в Інтернеті та
брати участь у післяпродажній електронній комерції не гарантуватиме успіху.
Потрібно використовувати програмне рішення бази даних автозапчастин для
управління інформацією про них в каталогах.
Для створення і управління базою даних в кваліфікаційній роботі
бакалавра використовувалась вільна реляційна система управління базами
даних MySQL.
Арк.
ЧДТУ 211981.004 ПЗ 14
Зм н . Арк. № докум. Підпис Дата
База даних rdive складається з 48 таблиць плагінів та таблиць самого
проекту (рис. 2.1).
Рисунок 2.1 – База даних rdive.
Розглянемо декілька з них. Таблиця автозапчастин (рис. 2.2) містить
інформацію про артикул, опис, кількість, наявність, ціну тощо.
Арк.
ЧДТУ 211981.004 ПЗ
15
Зм н . Арк. № докум. Підпис Дата
Рисунок 2.2 – Таблиця автозапчастин.
Таблиця замовлень (рис. 2.3) містить інформацію про клієнта, дату
продажу, адресу, найменування замовленого товару тощо.
Рисунок 2.3 – Таблиця замовлень.
Таблиця «Застосовані купони» (рис. 2.4) містить повну інформацію про
застосований в замовленні купон – номер замовлення, код купону, дату та
сумму знижки.
Рисунок 2.4 – Таблиця «Застосовані купони».
Арк.
ЧДТУ 211981.004 ПЗ 16
Зм н . Арк. № докум. Підпис Дата
Редагування записів в таблиці здійснюється в спеціальному вікні (рис.
2.5).
Рисунок 2.4 – Редагування запису в таблиці використаних купонів на знижку.
Навчитися користуватися конструктором веб-сайтів (або залучити
експерта для створення сайту автозапчастин), запустити магазин, провести
маркетингові дослідження, знайти шляхи виходу на ринок магазину
автозапчастин, відстежувати активність користувачів, дізнатись про онлайн-
маркетинг автозапчастин та навчитися запускати успішну рекламу на Facebook
буде безрезультатно, якщо база даних не створена належним чином та не
підтримується належним чином.
Всі зусилля будуть марними, тому що в інтернет-продажах
автозапчастин дані про товари є складними, вони постійно змінюються і
вимагають великого досвіду. Існує думка, що створення та управління базами
даних товарів є найскладнішою частиною продажу автозапчастин в Інтернеті.
Без цього елемента оптимізовані цільові сторінки та ефективне програмне
забезпечення кошика для покупок не допоможуть максимізувати онлайн-
продажі. Крім того, вибір платформи створення електронної комерції
обов’язково повинен корелюватися з програмним забезпеченням бази даних
автозапчастин, щоб забезпечити якісне керування усіма складовими інтернет-
магазину.
Використовуючи точні та повні дані про автозапчастини, можна
зменшити загальну кількість втрачених продажів та дорогих повернень,
Арк.
ЧДТУ 211981.004 ПЗ 17
Зм н . Арк. № докум. Підпис Дата
надаючи більше часу та ресурсів для зосередження на маркетингу, бізнес-
аналітиці, задоволеності клієнтів та продажах.
2.3 Висновки до розділу 2
В другому розділі описано фактори створення web-орієнтованих
інформаційних систем та описано принципи проектування бази даних
автозапчастин.
Арк.
ЧДТУ 211981.004 ПЗ 18
Зм н . Арк. № докум. Підпис Дата
3 РОЗРОБКА ПРОГРАМНОЇ ЧАСТИНИ
3.1 Вибір засобів розробки
Продаж автозапчастин в Інтернеті насправді не може порівнятися з
продажем одягу, книг чи ювелірних виробів. Інтернет-індустрія автомобілів
має дуже специфічні потреби, тому потрібно конкретне рішення електронної
комерції, орієнтоване на автомобільну галузь. Більшість платформ просто не
охоплять специфіку електронної комерції запчастин.
Щоб зрозуміти, яка система найкраща для успіху сервісу авторозборки,
розглянемо та порівняємо найпопулярніші системи керування вмістом, щоб
знайти правильне рішення електронної комерції для продажу автозапчастин в
Інтернеті.
3.1.1 CMS Wordpress
WordPress продовжує лідирувати на ринку з великим відривом. Що
стосується всього Інтернету (веб-сайти, створені із системою управління
вмістом або без неї), 35,6% – це веб-сайти? Написані на WordPress.
WordPress – це програмне забезпечення з відкритим кодом, тобто його
можна безкоштовно завантажувати та використовувати. Однак створення та
завантаження веб-сайту WordPress вимагає придбання власного домену та
хостингу.
Система управління вмістом WordPress пропонує безліч переваг прямо
з віртуального вікна. Нижче описані основні переваги CMS Wordpress.
1) CMS Wordpress безкоштовна.
Є багато причин, щоб вибрати для розробки сайту саме WordPress, але
той факт, що він безкоштовний, є досить вагомою причиною використовувати
його як систему управління вмістом самостійно.
Нормально задаватися питанням, чи «отримуєте розробник те, за що
платить», але навіть такі великі компанії, як Дісней та такі великі ЗМІ, як Time
та TechCrunch, використовують WordPress як свою систему управління
Арк.
ЧДТУ 211981.004 ПЗ 19
Зм н . Арк. № докум. Підпис Дата
контентом. Багато плагінів для WordPress, які розширюють функції, також є
безкоштовними.
Використання WordPress та безкоштовних плагінів залишає у бюджеті
більше грошей на виробництво та просування вмісту.
2) Можливість подати вміст так, як заманеться розробнику.
Оскільки для WordPress існує тисячі тем та понад 55 000 плагінів, будь-
який блог, магазин чи діловий сайт можуть мати свій унікальний вигляд.
Наприклад, офіційні веб-сайти Швеції, Бейонсе та BBC Америки
використовують WordPress, але мають кардинально різний вигляд та функції.
Переваги:
- Зручні SEO-функції.
- Функції, зручні для мобільних пристроїв.
- Зручний для користувача.
- Функціональність ведення блогу (для блогів створено
програмне забезпечення WordPress).
- Функціональність електронної комерції.
Недоліки:
- WordPress зручний для користувачів, але навчитися та керувати
ним новачку може бути складно.
3.1.2 CMS Squarespace
Заснована більше 10 років тому, Squarespace є однією з
найпопулярніших CMS. Хоча кількість користувачів не розголошується
публічно, за оцінками, близько 1000 нових людей щодня підписуються на неї.
Squarespace – це платформа для створення веб-сайтів, яка не вимагає
інсталяції на хостинговому сервері, оскільки вона не є відкритою. Squarespace
має вбудовані в платформу хостинг, сертифікати SSL, підтримку та інші
функції. Все це включено до ціни плати, яка коливається від 12 до 40 доларів
на місяць.
Арк.
ЧДТУ 211981.004 ПЗ 20
Зм н . Арк. № докум. Підпис Дата
Squarespace відомий своїми сучасними шаблонами. Його естетика
схиляється до простоти та елегантності, а шаблони містять багато вільного
місця.
Переваги:
- Функції, зручні для мобільних пристроїв.
- Зручний для користувача.
- Функціональність ведення блогу (не така надійна, як
WordPress).
- функціональність електронної комерції (не така надійна, як
Shopify).
Недоліки:
- Дуже обмежена настройка.
- Вартість – щомісячна плата за користування платформою.
- Немає інструментів маркетингу та продажів.
- Обмежені можливості інтеграції.
- Великі обмеження SEO.
3.1.3 CMS Joomla
Joomla здобула величезну популярність за останнє десятиліття і
успішно переросла в одну з найбільш широко використовуваних систем
управління контентом у всьому світі. З моменту свого створення в 2005 році
вона успішно захопила величезну кількість прихильників і, безумовно, має
понад 99 + мільйонів завантажень на сьогодні.
Хоча Joomla є однією з найпопулярніших систем управління вмістом,
вона все ще далека від лідера, WordPress. Тим не менш, Joomla є життєздатною
системою управління вмістом для багатьох типів веб-сайтів. Вона безкоштовна
і з відкритим кодом, як WordPress, а також вимагає придбання власного
домену та хостингу для налаштування. Встановлення в один клік доступне для
більшості провайдерів хостингу.
Арк.
ЧДТУ 211981.004 ПЗ 21
Зм н . Арк. № докум. Підпис Дата
Joomla написана на PHP і використовує базу даних MySQL для
зберігання даних при використанні об'єктно-орієнтованих методів
програмування. Її можна встановити за допомогою одного кліку через панель
управління веб-хостингу. У Інтернеті існують сотні статей, які допоможуть
встановити Joomla. Доступні різні послуги хостингу Jooomla. Подібно до
плагінів WordPress, Joomla! пропонує розширення, що дозволяють
налаштувати функції веб-сайту.
Переваги:
- Зручні SEO-функції.
- Функції, зручні для мобільних пристроїв.
- Функціональність створення блогу.
- Функціональність електронної комерції.
Мінуси:
- Не дуже зручна для новачків.
Враховуючи описані вище переваги та недоліки популярних CMS, в
роботі прийнято рішення використовувати WordPress.
3.3 Оптимізація веб-сайтів WordPress
Швидкість завантаження веб-сайту відіграє важливу роль у взаємодії з
користувачем. Веб-сайт з найвищою швидкістю завантаження створює
позитивне перше враження для користувачів. Враження, набуте відвідувачем
сайту, призводить до певного судження про бізнес власника веб-сайту. Тому
власникам веб-сайтів WordPress важливо зосередитись на швидкості свого веб-
сайту, щоб досягти запланованої мети. Рівень відмов веб-сайту залежить від
швидкості завантаження сторінки, оскільки більшість відвідувачів
утримуються від натискання внутрішніх посилань під час взаємодії з веб-
сайтами, які мають низьку швидкість завантаження сторінки.
Оптимізація зображень. Оптимізація веб-зображень передбачає
завантаження зображень відповідного розміру, формату, роздільної здатності.
Арк.
ЧДТУ 211981.004 ПЗ 22
Зм н . Арк. № докум. Підпис Дата
Це важливий процес, оскільки 90% більшості веб-сайтів залежать від графіки.
Зображення не тільки покращують привабливість веб-сайту, але й
допомагають покращити передані повідомлення. За допомогою редактора
фотографій можна змінити розмір зображення і роздільну здатність 72 dpi. Ці
два компоненти зменшують розмір файлу. Потім зображення стискається
перед завантаженням на веб-сайт. Якщо зображення стиснуті та неправильно
відформатовані, час завантаження веб-сторінки різко зростає.
Поради щодо оптимізації веб-зображень:
- Запуск аудиту стиснення зображень.
- Вибір найбільш відповідного варіанту хостингу, який найкраще
відповідає потребам сайту.
- Мінімізація запитів HTTP.
- Вибір асинхронного завантаження для файлів Javascript та CSS.
«Ледаче» завантаження зображень та відео. Середня вага веб-
сторінок становить 3719 кБ, де відео та зображення становлять приблизно 78%
від загальної ваги. WordPress є провідним з точки зору включення та обміну
медіафайлами в дизайні сайту. Для прискорення WordPress використовується
технологія оптимізації «ледачого» завантаження. Це тягне за собою
завантаження видимого вмісту під час затримки рендерингу та завантаження
вмісту, що з’являється внизу сторінки. Це кращий прийом, якщо сторінки та
публікації вбудовані в численні зображення та відео з високою роздільною
здатністю.
Використання плагіну кешу. Плагін кеш-пам'яті збільшує швидкість
веб-сайту. Зазвичай у каталозі WordPress є безліч варіантів. Плагін кеш-пам'яті
дозволяє людині дублювати вміст на декількох серверах, що забезпечує
доставку даних кожного разу, коли інші користувачі отримують доступ до
сервера. В якості запобіжного заходу важливо завжди проводити базові тести,
щоб переконатися, що вміст відображається правильно.
Арк.
ЧДТУ 211981.004 ПЗ 23
Зм н . Арк. № докум. Підпис Дата
Для поліпшення взаємодії з користувачем та загальної швидкості
роботи веб-сайту важливо прийняти мінімалістичний підхід. Це досягається
шляхом видалення непотрібних речей, таких як віджети, плагіни та кнопки.
Швидкості веб-сайту можна також досягти, зменшивши кількість записів на
домашній сторінці.
Використання кешування браузера. Щоразу, коли браузер завантажує
веб-сторінку, для ефективного відображення сторінки завантажуються
численні веб-файли. Завантажені файли варіюються від малого до великого;
тому кешування браузера відіграє важливу роль у локальному зберіганні
файлів у браузері користувача. Початкове відвідування сайту займає
еквівалентний час для завантаження, але коли користувач оновлює сторінку,
переходить на іншу сторінку або переглядає веб-сайт, потрібні їм файли
доступні в локальній мережі. Таким чином, скорочується час завантаження
сторінки, оскільки обсяг даних, завантажених браузером користувача, менший
із меншою кількістю запитів від сервера.
Кешування браузера відповідає за позначення зазначених сторінок, а
потім за оновлення з різними інтервалами. Наприклад, логотип веб-сайту
залишається незмінним. Таким чином, можна вказувати браузеру користувача,
коли завантажувати зображення, на відміну від завантаження зображення в
будь-який час, коли здійснюється доступ до браузера. Використання
кешування браузера допомагає встановити час закінчення терміну дії для
вибраних типів файлів.
Стиснення Gzip. Gzip – це процес стиснення файлів для посилення
швидшої передачі мережі. Стиснення дозволяє веб-серверу створювати файли
меншого розміру, які мають високу швидкість завантаження. Стиснення Gzip
не застосовується до зображень. Gzip знаходить подібні рядки в текстовому
файлі, тоді він тимчасово замінює рядки, зменшуючи загальний розмір файлу.
У веб-середовищі gzip добре працює, оскільки файли CSS використовують
Арк.
ЧДТУ 211981.004 ПЗ 24
Зм н . Арк. № докум. Підпис Дата
багато повторюваних текстів і мають численні пробіли. Як тільки загальні
рядки стискаються gzip, таблиці стилів і сторінки зменшуються до 70%.
Мініфікація CSS та Javascript. Мініфікація є важливим фактором,
оскільки вона сприяє збільшенню швидкості сторінки. Процес передбачає
зменшення вмісту CSS та JavaScript веб-сайту до оптимального розміру, а
також зменшення кількості запитів, таких як символи нового рядка, коментарі
та пробіли. Для того, щоб мати хороший SEO для веб-сайту, швидкість
завантаження сторінки відіграє вирішальну роль у збільшенні трафіку на
сторінці. Збільшена швидкість завантаження сторінки покращує ефективний
користувальницький досвід.
Використання CDN (географічно розподілена мережева
інфраструктура, що дозволяє оптимізувати доправлення та розповсюдження
контенту кінцевим користувачам в мережі Інтернет) [21]. CDN є важливим
параметром для підвищення продуктивності та швидкості веб-сайту. Це
мережа віддалених серверів, що містить копію сайту, доступну всім
відвідувачам. CDN не тільки збільшує швидкість сайту, але й захищає.
CDN складається з декількох серверів, розміщених у різних місцях по
всьому світу. Як тільки CDN включений на сайт, інші сервіси автоматично
завантажуються на сайт у своїх статичних версіях. Сюди входять коди
JavaScript та CSS, відео, зображення та документи. Незважаючи на те, що CDN
та веб-хост можуть здатися схожими, веб-хост – це місце, де сайт «живе», тоді
як сервер CDN копіює статичні файли з веб-хосту, перш ніж доставити їх
відвідувачам.
Однією з головних переваг використання CDN є те, що у випадках,
коли численні користувачі з різних місцевостей можуть захотіти завантажити
файли з сайту, CDN дозволяє їм підключатися до веб-сайту через сервери, які
розташовані ближче до них.
CDN оптимізує швидкість сайту за допомогою наступного:
Арк.
ЧДТУ 211981.004 ПЗ 25
Зм н . Арк. № докум. Підпис Дата
Зменшує збій сайту.
Підвищує рейтинг SEO.
Захищає сайт від основних атак.
3.4 Огляд дизайну web-орієнтованої інформаційної системи сервісу
авторозборки
Web-орієнтовану інформаційну систему сервісу авторозборки створено
на популярній безкоштовній CMS WordPress з відкритим вихідним кодом
OpenSource. WordPress – це краща платформа для розробки сайтів як для тих,
хто готовий використовувати закладену структуру цієї CMS, так і для тих, хто
вважає за краще headless рішення, що і зумовило мій вибір. Основною
перевагою WordPress є простота та гнучкість у налаштуваннях, а завдяки
плагінам – повна свобода та широта у рішенні будь-якої задачі. WordPress – це
найшвидше ядро, що дозволяє підключати до нього додаткові плагіни залежно
від того, якою функціональністю повинен володіти сайт. Ця CMS дозволяє
підключати будь-яку їх кількість.
Основна задача в розробці інформаційної системи авто розборки –
створення легкого та зрозумілого інтернет-магазину вживаних автозапчастин з
широким функціоналом і достатньою кількістю фільтрів по товарам, що і було
досягнуто на прикладі сайту http://rdrive.com.
Для досягнення цих цілей мною було обрано тему WordPress Сhromium
з широким функціоналом. Інтерфейс сайту http://rdrive.com зроблено у
контрастній біло-чорно-жовтих тонах, що повинно сподобатись основній
цільовій аудиторії користувачів сайту – чоловікам. Тему мною повністю
адаптовано українською (Рисунок 3.1).
Арк.
ЧДТУ 211981.004 ПЗ 26
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.1 – Тема WordPress Сhromium та її налаштування в Консолі.
Після введення адреси сайту в рядку браузера, користувачу
відкривається головна сторінка http://rdrive.com, розроблена як популярна нині
LandingPage, на якій фактично присутня вся інформація про сайт. Одразу
користувач бачить великий банер з фільтрацією по основним ознакам, по яким
можна знайти потрібну запчастину. Ліворуч розташований логотип RDrive,
який створено в Photoshop у вигляді лаконічного шрифту з м’якими лініями в
корпоративних чорно-жовтих кольорах. Користувач, клікнувши по ньому з
будь-якої сторінки сайту, переходить на Головну сторінку.
Головне меню сайту традиційно знаходиться зверху сторінки і описує
каталог товарів магазину, де покупець одразу може обрати потрібний товар, а
також кілька інших важливих розділів сайту. Вище логотипу – коротке меню з
посиланнями на списки порівнянь та бажаних товарів, створених
користувачами в процесі вибору автозапчастин, а праворуч – посилання на
профіль покупця. Також нижче додаткового меню розташовано поле для
пошуку по сайту, номер телефону та іконка кошика (Рисунок 3.2):
Рисунок 3.2 – Меню сайту.
Арк.
ЧДТУ 211981.004 ПЗ 27
Зм н . Арк. № докум. Підпис Дата
Меню створено в Головній Консолі в пункті Вигляд – Меню (Рисунок
3.3):
Рисунок 3.3 – Головне меню в Консолі.
Головне меню інтернет-магазину RDrive складається зі сторінок,
описаних нижче.
«Головна». На головній сторінці покупці знайомляться з магазином,
його перевагами, асортиментом товарів. На верхньому великому банері
розміщено створений фільтр по запчастинам, а саме коли користувач в
спадаючому меню в кожному віконці ффодить потрібні йому дані і натискає
«Знайти», то він опиняється власне на сторінці магазину і може обирати
запчастини з-поміж вже відібраних. Нижче – логотипи марки авто, запчастини
яких є в продажі магазину, і натиснувши на будь-який з них, покупець теж
відфільтрує запчастини по даній марці авто в магазині. Далі йде перелік
чотирьох найпопулярніших категорій магазину. Нижче розташований
створений з трьох банерів про знижку слайдер з посиланнями на конкретний,
вказаний на банері товар зі знижкою. Далі розташовано посилання на певні
рекомендовані товари (новинки, товари зі знижкою). Ще нижче пару банерів
для миттєвої покупки, створені в Photoshop. Також на сторінці розташувались
Арк.
ЧДТУ 211981.004 ПЗ 28
Зм н . Арк. № докум. Підпис Дата
дописи з блогу автолюбителів, відфільтрованих по даті опублікування і
невеликі іконки з перевагами магазину. Внизу сторінки на чорному тлі
розміщено корисну інформацію для покупців, як то контактні дані магазину,
сервісні сторінки, типи платіжних карток, посилання на соціальні мережі та
дані про розробника сайту та банер для онлайн спілкування з оператором
магазину (Рисунок 3.4). Слайдер з трьома банерами налаштовано за
допомогою віджету TZ Sale Carousel (Рисунок 3.5).
Арк.
ЧДТУ 211981.004 ПЗ 29
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.4 – Головна сторінка.
Рисунок 3.5 – Налаштування віджету TZ Sale Carousel на Головній.
«Каталог запчастин». Натиснувши на цей пункт меню, покупець одразу
переходить у власне магазин з вживаними запчастинами після розборки авто.
Також користувач може обрати категорію магазину, натиснувши на потрібний
рядок в спадаючому меню. На більшій частині сторінки – перелік товарів з
назвою, ціною і можливістю порівняти товари або додати до списку бажань.
На фото деяких товарів прикріплено мітку контрастного жовтого кольору про
те, що товар продається за зниженою ціною. На цій сторінці товари можна
сортувати: за популярністю, за оцінками товару, за новинками та за ціною.
Ліворуч – бокова панель з категоріями інших товарів магазину та фільтри за
ціною та за маркою авто. Вгорі сайту – меню для швидкого переходу на інші
сторінки, форма пошуку, посилання на профіль зареєстрованого користувача.
В підвалі сайту – традиційно контактна інформація, посилання на інші
сторінки сайту та посилання на соцмережі та розробника сайту. Збоку
праворуч - банер онлайн чату (Рисунок 3.6).
Арк.
ЧДТУ 211981.004 ПЗ 30
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.6 – Сторінка «Каталог запчастин».
Переглянути повну інформацію про товар користувач може,
натиснувши власне на товар в магазині. На сторінці з детальною інформацією
покупцям представлена додаткова інформація про товар, марку авто, ціну,
знижки, наявність, додаткові фото, розміри. Посилання на товар можна
Арк.
ЧДТУ 211981.004 ПЗ 31
Зм н . Арк. № докум. Підпис Дата
поширити в соцмережі, натиснувши на певну іконку соцмережі. Також є
посилання на схожі товари даної категорії (Рисунок 3.7).
Рисунок 3.7 – Сторінка детальної інформації про товар.
На закладці Відгуки під фото товару покупці можуть прочитати відгуки
про товар або залишити свій коментар, заповнивши поля стандартної форми
(Рисунок 3.8).
Арк.
ЧДТУ 211981.004 ПЗ 32
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.8 – Відгуки про товар на сторінці товару.
Цікава і потрібна особливість сайту – можливість додати товар в список
бажань (значок сердечко) (Рисунок 3.9) та в список порівнянь (значок дві
стрілки) (Рисунок 3.10). Список бажань та список доданих для порівняння
товарів можна оглянути, натиснувши на відповідні пункти меню над
логотипом вгорі сайту.
Рисунок 3.9 – Сторінка «Список бажань».
Арк.
ЧДТУ 211981.004 ПЗ 33
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.10 – Сторінка «Порівняти».
Адміністратор сайту редагує або додає нові товари нові в Консолі
(Рисунок 3.11).
Рисунок 3.11 – Редагування товарів в Консолі.
Редагувати категорії товарів та марки авто адміністратор має в Консолі
(Рисунок 3.12 та Рисунок 3.13).
Арк.
ЧДТУ 211981.004 ПЗ 34
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.12 – Редагування категорій товарів в Консолі.
Рисунок 3.13 – Редагування марки авто в Консолі.
Всі атрибути товарів, зокрема марку авто, дати початку та закінчення
розпродажів, адміністратор редагує в Консолі (Рисунок 3.14).
Арк.
ЧДТУ 211981.004 ПЗ 35
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.14 – Редагування атрибутів товару в Консолі.
Обравши потрібний товар та його кількість розмір, користувач натискає
«Додати у кошик», отримує на екрані інформацію про те, що товар додано у
Кошик і пропозицію перейти у Кошик (Рисунок 3.15).
Рисунок 3.15 – Товар додано у Кошик.
Арк.
ЧДТУ 211981.004 ПЗ 36
Зм н . Арк. № докум. Підпис Дата
Після того, як користувач натиснув на кнопку «Переглянути кошик»,
він переходить на сторінку власне Кошика, де може ще раз оглянути обраний
товар, змінити його кількість, застосувати купон на знижку. Якщо вся
інформація щодо обраного товару влаштовує покупця, то він натискає кнопку
«Перейти до оформлення» (Рисунок 3.16).
Рисунок 3.16 – Сторінка «Кошик».
Потім користувач на сторінці «Оформлення замовлення» повинен
заповнити платіжні дані (адресу, телефон, ім’я, електронну пошту, обрати
спосіб оплати) та розмістити замовлення. Також на цій сторінці покупцю
надається ще одна можливість ввести купон на знижку за наявності або
повернутися в Кошик і щось змінити в замовленні (Рисунок 3.17).
Арк.
ЧДТУ 211981.004 ПЗ 37
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.17 – Сторінка «Оформлення замовлення».
Після підтвердження замовлення користувач переходить на наступну
сторінку, де може ознайомитись з деталями замовлення. Також ця інформація
Арк.
ЧДТУ 211981.004 ПЗ 38
Зм н . Арк. № докум. Підпис Дата
буде направлена користувачеві на електронну пошту, вказану при оформленні
замовлення (Рисунок 3.18).
Рисунок 3.18 – Сторінка «Подробиці замовлення».
Всі замовлення адміністратор редагує через Консоль Wordpress. Він
може змінити статус замовлення, додати примітки або видалити замовлення
(Рисунок 3.19).
Рисунок 3.19 – Редагування замовлення через Консоль.
Арк.
ЧДТУ 211981.004 ПЗ 39
Зм н . Арк. № докум. Підпис Дата
Також адміністратор може проглянути всю аналітику Консолі в плагіні
WooCommerce (валові продажі за певний період, продажі в розрізі покупців,
статуси замовлень тощо) (Рисунок 3.20).
Рисунок 3.20 – Аналітика замовлень через Консоль.
Сторінка «Про нас». Ознайомитись з основними історією та
особливостями магазину, його перевагами та відгуками задоволених клієнтів,
віртуально познайомитись з працівниками магазину, користувач може
перейшовши на цю сторінку з головного меню, а також за посиланням в
підвалі сайту (Рисунок 3.21).
Арк.
ЧДТУ 211981.004 ПЗ 40
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.21 – Сторінка «Про нас».
Сторінка «Блог». На цій сторінці користувачі можуть прочитати статті
по темі автомобілів і всього, що з ними пов’язано. Дописи можеть містити як
фото контент, так і відео контент, наприклад з відеохостингу YouTube. На
правій боковій панелі – вікно пошуку, теми статей, за якими можна
фільтрувати дописи, посилання на останні новини в блозі, популярні статті за
Арк.
ЧДТУ 211981.004 ПЗ 41
Зм н . Арк. № докум. Підпис Дата
кількістю переглядів. Нижче – архів статей, категорії магазину запчастин та
посилання на соцмережі (Рисунок 3.22).
Рисунок 3.22 – Сторінка «Блог».
Адміністратор сайту додає або редагує статті в Консолі (Рисунок 3.23).
Арк.
ЧДТУ 211981.004 ПЗ 42
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.23 – Записи сайту в Консолі.
Також адміністратор сайту має можливість редагувати медіа файли
(зображення, аудіо файли, відео файли тощо), які потрібні для сайту через
Консоль (Рисунок 3.24).
Рисунок 3.24 – Медіафайли сайту в Консолі.
Сторінка «Подати на комісію». На сторінці розміщено форму,
заповнивши поля в якій, користувачі можуть відправити свої автозапчастини
для продажу на сайті http://rdrive.com. Файл формату *.jpg з фото запчастин
теж є можливість прикріпити. Після натискання кнопки «Надіслати», ця
інформація направляється на електронну адресу адміністратора сайту (Рисунок
3.25).
Арк.
ЧДТУ 211981.004 ПЗ 43
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.25 – Сторінка «Подати на комісію».
Сторінка «Контакти». На сторінці розміщено інформацію про контактні
дані магазину, робочі години, карта з відміткою місцезнаходження магазину, а
також форма зворотнього зв'язку. Користувач має змогу надіслати свої
питання чи попозиції, заповнивши поля форми та клікнувши на кнопку
«Надіслати». Ця інформація направляється на електронну адресу
адміністратора сайту (Рисунок 3.26).
Арк.
ЧДТУ 211981.004 ПЗ 44
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.26 – Сторінка «Контакти».
Арк.
ЧДТУ 211981.004 ПЗ 45
Зм н . Арк. № докум. Підпис Дата
Форма зворотнього зв’язку на сторінці «Контакти» та форма на сторінці
«Подати на комісію» були створена завдяки плагіну ContactForms7, в якому
можна редагувати всі поля, їх тип, значення (Рисунок 3.27).
Рисунок 3.27 – Редагування форми зі сторінки «Подати на комісію» в Консолі.
Сторінка «Мій профіль». Тут користувач може зареєструватись на сайті
для зручного перегляду замовлень, зроблених на сайті, а також для написання
відгуків на товари та коментарів в дописах. Також він може редагувати
інформацію про себе (ім’я, адресу, телефон, електронну пошту, аватар, пароль)
(Рисунок 3.28).
Арк.
ЧДТУ 211981.004 ПЗ 46
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.28 – Сторінка «Мій профіль».
Сторінки «Політика конфіденційності», «Повернення товару», «Оплата
і доставка». На ці сторінки можна перейти за посиланнями в підвалі сайту. Їх
дизайн ідентичний, на них розміщено інформацію відповідно до їх назв
(Рисунок 3.29).
Арк.
ЧДТУ 211981.004 ПЗ 47
Зм н . Арк. № докум. Підпис Дата
Рисунок 3.29 – Сторінка «Повернення товару».
На кожній сторінці сайту, окрім Блогу, праворуч розміщено банер з
онлайн чатом, яким можуть скористатися відвідувачі сайти для онлайн
спілкування з оператором сайту. Його налаштовано за допомогою плагіну
Арк.
ЧДТУ 211981.004 ПЗ
48
Зм н . Арк. № докум. Підпис Дата
Awesome Live Chat. Відомо, що такі чати надайте величезну підтримку
користувачам сайту і збільшують кількість потенційних клієнтів. Оператор
магазину може відповідати на запити відвідувачів якнайшвидше за допомогою
інтуїтивно зрозумілого чату. Кількість операторів не обмежена. В неробочі дні
чи години відвідувачі відправляють офлайн-повідомлення. Адміністратор
може дізнатися, звідки приходять клієнти, включаючи країну і ip адресу
(Рисунок 3.30).
Рисунок 3.30 – Онлайн чат на сайті.
3.5 Висновки до розділу 3
В розділі детально обґрунтовано вибір засобу розробки та описано процес
створення WEB-орієнтованої системи сервісу авторозборки.
Арк.
ЧДТУ 211981.004 ПЗ 49
Зм н . Арк. № докум. Підпис Дата
ВИСНОВКИ
Ще десять років тому запуск інтернет-магазину з продажу автомобільних
деталей був би трудомістким і дорогим випробуванням. Сьогодні до
електронної комерції звертаються навіть такі галузі людської діяльності, як
продаж вживаних автозапчастин. Організації, що пропонують сервіс
розборки авто, виходять за рамки місцевого бізнесу, розширюючи його
кордони завдяки електронній комерції.
При розробці веб-дизайну веб-орієнтованої інформаційної системи
сервісу з авторозробки був врахований досвід вже існуючих систем, а саме:
- Великі, чіткі, виразні банери на домашній сторінці.
- Якісна фотографія.
- Фільтрований пошук та інтуїтивна навігація.
- Інструменти візуалізації.
- Детальні технічні характеристики товару.
- Показ супутніх товарів для заохочення продажів.
- Онлайн-підримка.
- Блоги.
- Варіанти оплати.
У кваліфікаційній роботі бакалавра створено WEB-орієнтовану
інформаційну систему сервісу з авторозборки засобами системи керування
вмістом сайту з відкритим вихідним кодом – Wordpress. Система працює як
повноцінний інтернет-магазин вживаних автозапчастин. Крім того в системі
передбачена така функція, як надсилання фото та інформації про авто клієнта,
який хоче подати своє авто на розборку.
Таким чином, можна стверджувати, що мета роботи досягнута і всі
вимоги технічного завдання виконані у повному обсязі.
Арк.
ЧДТУ 211981.004 ПЗ 50
Зм н . Арк. № докум. Підпис Дата
ДОДАТОК A
ЗАТВЕРДЖЕНО
Зав. кафедри ІТП, проф.
_________________ Прокопенко Т.О.
«____» ________________ 2021 р.
WEB-ОРІЄНТОВАНА ІНФОРМАЦІЙНА СИСТЕМА СЕРВІСУ З АВТОРОЗБОРКИ
Специфікація
482 ЧДТУ 21981-01
Листів 2
Розробник _______________ Довгань А.С.
Керівник _______________ Рудницький С.В.
Н. Контроль _______________ Колесніков К.В.
Черкаси, 2021
2
482 ЧДТУ 21981-01
Позначення Найменування Примітка
Документація
482 ЧДТУ 21981-01 12 01 Текст програми
WEB-ОРІЄНТОВАНА ІНФОРМАЦІЙНА СИСТЕМА СЕРВІСУ З АВТОРОЗБОРКИ
482 ЧДТУ 21981-01 12 01
Текст програми
Листів 19
Розробник _____________ Довгань А.С.
Н
Черкаси, 2021
2
482 ЧДТУ 21981-01 12 01
Лістинг програмного коду файлу index.php плагіну Awesome Live Chat для
онлайн чату на сайті.
<?php
/*
Plugin Name: Awesome Live Chat
Plugin URI: http://awe5o.me/live-chat
Description: Make your customers feel awesome by providing live chat support.
Version: 1.4.2
Author: Kamal Khan
Author URI: http://bhittani.com
Text Domain: awesome-live-chat
*/
if(!defined('ABSPATH')) die('-1');
require_once dirname(__FILE__) . '/boots/api.php';
require_once dirname(__FILE__) . '/utility.php';
/**
* AwesomeLiveChat startup
*
* @package AwesomeLiveChat
* @since 1.0.0
*/
class AwesomeLiveChat
{
/**
* Boots object
*
* @since 1.0.0
* @access private
* @static object
*/
static private $Boots;
/**
* Settings/Options
*
* @since 1.0.0
* @access private
* @static array
*/
static private $Options;
/**
* Load the Boots framework.
3
482 ЧДТУ 21981-01 12 01
* Update and save settings.
*
* @since 1.0.0
* @uses Boots
* @uses $wpdb WordPress global $wpdb to access prefix
* @access public
* @param array Plugin base arguments/options
* @return bool Exit
*/
public function __construct($Args = false)
{
if(!$Args) return false;
self::$Boots = new Boots('plugin', $Args);
global $wpdb;
$db_prefix = $wpdb->prefix;
$Args['ALC_TABLE_DEPARTMENTS']
= $db_prefix . $Args['ALC_TABLE_DEPARTMENTS'];
$Args['ALC_TABLE_USERS']
= $db_prefix . $Args['ALC_TABLE_USERS'];
$Args['ALC_TABLE_CHAT']
= $db_prefix . $Args['ALC_TABLE_CHAT'];
$apiurl = $Args['APP_URL'] . '/api/v' . $Args['ALC_API_VERSION'];
$Args['ALC_API_URL_VISITOR'] = $apiurl . '/u.php';
$Args['ALC_API_URL_OPERATOR'] = $apiurl . '/o.php';
self::$Options = $Args;
// Let operators access the dashboard if blocked by woocommerce
add_filter(
'woocommerce_prevent_admin_access',
array($this, 'woocommerceAllowOperatorAccess'),
10,
1
);
add_action('plugins_loaded', array($this, 'i18n'));
add_action('plugins_loaded', array($this, 'install'));
register_activation_hook(__FILE__, array($this, 'install'));
register_deactivation_hook(__FILE__, array($this, 'uninstall'));
}
/**
* Get Boots object.
*
* @since 1.0.0
* @access protected
* @param void
* @return object Boots object
*/
protected function boots()
4
482 ЧДТУ 21981-01 12 01
{
return self::$Boots;
}
/**
* Get options.
*
* @since 1.0.0
* @access protected
* @param string Option term
* @return mixed Options array or term value
*/
protected function options($term = '')
{
return $term ? self::$Options[$term] : self::$Options;
}
/**
* SQL for departments table.
*
* @since 1.3.8
* Add wpdb charset collate
* @uses $wpdb WordPress global $wpdb to access prefix
*
* @since 1.0.0
* @uses AwesomeLiveChat::$Options['ALC_TABLE_DEPARTMENTS']
* Departments table name
* @access private
* @param void
* @return string Departments table sql
*/
private function sqlTableDepartments()
{
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$table_departments = self::$Options['ALC_TABLE_DEPARTMENTS'];
return "CREATE TABLE $table_departments (
id int(11) unsigned NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
description VARCHAR(255) DEFAULT '' NOT NULL,
disabled tinyint(1) DEFAULT 0,
created_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
updated_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY name (name)
) $charset_collate;";
}
/**
5
482 ЧДТУ 21981-01 12 01
* SQL for users table.
*
* @since 1.3.8
* Add wpdb charset collate
* @uses $wpdb WordPress global $wpdb to access prefix
*
* @since 1.0.0
* @uses AwesomeLiveChat::$Options['ALC_TABLE_USERS']
* Users table name
* @access private
* @param void
* @return string Users table sql
*/
private function sqlTableUsers()
{
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$table_users = self::$Options['ALC_TABLE_USERS'];
return "CREATE TABLE $table_users (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
operator_id bigint(20) unsigned DEFAULT 0 NOT NULL,
department int(11) unsigned NOT NULL,
token VARCHAR(100) NOT NULL,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
website VARCHAR(255) DEFAULT '' NOT NULL,
gravatar VARCHAR(255) DEFAULT '' NOT NULL,
status VARCHAR(20) DEFAULT 'waiting' NOT NULL,
ip VARCHAR(255) NOT NULL,
uri VARCHAR(255) DEFAULT '' NOT NULL,
country VARCHAR(255) DEFAULT '' NOT NULL,
city VARCHAR(255) DEFAULT '' NOT NULL,
cc VARCHAR(2) DEFAULT '' NOT NULL,
ping_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
created_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY token (token)
) $charset_collate;";
}
/**
* SQL for chat table.
*
* @since 1.3.8
* Add wpdb charset collate
* @uses $wpdb WordPress global $wpdb to access prefix
*
* @since 1.0.0
* @uses AwesomeLiveChat::$Options['ALC_TABLE_CHAT']
6
482 ЧДТУ 21981-01 12 01
* Chat table name
* @access private
* @param void
* @return string Chat table sql
*/
private function sqlTableChat()
{
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$table_chat = self::$Options['ALC_TABLE_CHAT'];
return "CREATE TABLE $table_chat (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
guid varchar(16) DEFAULT '',
user_id bigint(20) unsigned NOT NULL,
operator_id bigint(20) unsigned NOT NULL,
message text NOT NULL,
seen tinyint(1) DEFAULT 0,
operator tinyint(1) DEFAULT 0,
created_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
}
/**
* Create departments, users and chat tables
* in the WordPress database.
*
* @since 1.0.0
* @uses dbDelta() WordPress function to save sql table
* @uses AwesomeLiveChat::sqlTableDepartments()
* Receive SQL for departments table
* @uses AwesomeLiveChat::sqlTableUsers()
* Receive SQL for users table
* @uses AwesomeLiveChat::sqlTableChat()
* Receive SQL for chat table
* @access private
* @param void
* @return void
*/
private function createTables()
{
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
dbDelta($this->sqlTableDepartments());
dbDelta($this->sqlTableUsers());
dbDelta($this->sqlTableChat());
}
/**
* Add operator role as 'alc_operator'.
7
482 ЧДТУ 21981-01 12 01
* Set permission to 'read' and 'operate_alc'.
*
* @since 1.0.0
* @uses add_role() WordPress function to add a role
* @access private
* @param void
* @return void
*/
private function addOperatorRole()
{
add_role(
'alc_operator',
__('Chat Operator', 'awesome-live-chat'),
array(
'read' => true,
'operate_alc' => true
)
);
}
public function woocommerceAllowOperatorAccess($redirect)
{
if (current_user_can('operate_alc')) {
return false;
}
return $redirect;
}
/**
* Internationalization.
*
* @since 1.0.0
* @uses load_plugin_textdomain()
* WordPress function to load plugin locale (.mo) file
* @access public
* @param void
* @return void
*/
public function i18n()
{
load_plugin_textdomain(
'awesome-live-chat',
false,
dirname( plugin_basename( __FILE__ ) ) . '/languages'
);
}
/**
* Setup tables, operator role and
8
482 ЧДТУ 21981-01 12 01
* version information if new.
*
* @action awesome_live_chat_install
*
* @since 1.0.0
* @uses delete_transient()
* Delete a transient
* @uses Boots::Database
* @uses AwesomeLiveChat::createTables()
* Creates tables
* @uses AwesomeLiveChat::addOperatorRole()
* Adds operator role
* @access public
* @param void
* @return bool
*/
public function install()
{
$version = self::$Boots->Database
->term('awesome_live_chat')
->get();
if($version && version_compare(
self::$Options['APP_VERSION'],
$version,
'<='
)) return false;
$this->createTables();
$this->addOperatorRole();
delete_transient('awesome_live_chat_about');
do_action('awesome_live_chat_install', $version);
self::$Boots->Database
->term('awesome_live_chat')
->update(self::$Options['APP_VERSION']);
}
/**
* Uninstallation.
*
* @action awesome_live_chat_uninstall
*
* @since 1.2.7
* @access public
* @param void
* @return bool
*/
public function uninstall()
{
$version = self::$Options['APP_VERSION'];
do_action('awesome_live_chat_uninstall', $version);
9
482 ЧДТУ 21981-01 12 01
}
}
new AwesomeLiveChat(array(
'ABSPATH' => __FILE__,
'APP_ID' => 'awesome_live_chat',
'APP_NICK' => 'Awesome Live Chat',
'APP_VERSION' => '1.4.2',
'APP_ICON' => 'images/icon.png',
'APP_LOGO' => 'images/logo.png',
// plugin specific
'NOTIFIER_URL' => 'http://api.awe5o.me/v1/packages/live-chat',
'IP2COUNTRY_URL' => 'http://freegeoip.net/json',
'ALC_API_VERSION' => '1',
'ALC_TABLE_DEPARTMENTS' => 'alc_departments',
'ALC_TABLE_USERS' => 'alc_users',
'ALC_TABLE_CHAT' => 'alc_chat'
));
require_once dirname(__FILE__) . '/library.php';
require_once dirname(__FILE__) . '/updater.php';
require_once dirname(__FILE__) . '/profile.php';
require_once dirname(__FILE__) . '/metabox.php';
require_once dirname(__FILE__) . '/admin/index.php';
require_once dirname(__FILE__) . '/backend/index.php';
require_once dirname(__FILE__) . '/frontend/index.php';
Лістинг програмного коду файлу profile.php плагіну Awesome Live Chat
<?php
if(!defined('ABSPATH')) die('-1');
class AwesomeLiveChat_Profile extends AwesomeLiveChat
{
/**
* Boots object
*
* @since 1.0.0
* @access private
* @var object
*/
private $Boots;
/**
* Settings/Options
*
* @since 1.0.0
* @access private
* @var array
10
482 ЧДТУ 21981-01 12 01
*/
private $Options;
/**
* Library
*
* @since 1.0.0
* @access private
* @var object
*/
private $_;
/**
* Get the Boots framework object.
* Get the plugin settings.
* Get the plugin library.
*
* @since 1.0.0
* @uses AwesomeLiveChat::boots()
* return boots object
* @uses AwesomeLiveChat::options()
* return options
* @uses AwesomeLiveChat_Library
* plugin library class
* @access public
* @param void
* @return void
*/
public function __construct()
{
$this->Boots = $this->boots();
//$this->Options = $this->options();
$this->_ = new AwesomeLiveChat_Library();
add_action(
'awesome_live_chat_operator_disabled_departments',
array($this, 'disableDepartments')
);
add_action('admin_enqueue_scripts', array($this, 'enqueue'));
add_action('admin_init', array($this, 'hideOperatorDashboard'));
add_action('edit_user_profile', array($this, 'departmentsField'));
add_action('show_user_profile', array($this, 'departmentsField'));
add_action('edit_user_profile_update', array($this, 'updateDepartmentsField'));
add_action('personal_options_update', array($this, 'updateDepartmentsField'));
}
/**
* Parse/Cast a value to an integer.
11
482 ЧДТУ 21981-01 12 01
*
* @since 1.0.0
* @access private
* @param mixed Value to parse
* @return int Integer value
*/
private function toInteger($value)
{
return (int) $value;
}
/**
* Disable/Remove operator departments.
* Fired using action hook when
* departments disabled in settings.
*
* @since 1.0.0
* @uses AwesomeLiveChat_Library::getDepartment()
* get a department's term
* @uses AwesomeLiveChat_Library::getAllOperators()
* get all operator ids
* @uses AwesomeLiveChat_Library::getOperator()
* get operator term
* @uses AwesomeLiveChat_Library::setOperator()
* set operator term
* @access private
* @param array Department names
* @return void
*/
public function disableDepartments($Departments)
{
foreach($Departments as $dept)
{
$did = $this->_->getDepartment('id', 'name', $dept);
$Disabled[] = $did;
}
$Operators = $this->_->getAllOperators();
if(!$Operators) return false;
foreach($Operators as $oid)
{
$Odids = $this->_->getOperator($oid, 'alc_departments');
if($Odids && is_array($Odids))
{
$this->_->setOperator(
$oid,
'alc_departments',
array_diff($Odids, $Disabled)
);
}
12
482 ЧДТУ 21981-01 12 01
}
}
/**
* Echo out the departments field
* in the profile page.
*
* @since 1.0.0
* @uses current_user_can()
* user permission
* @uses get_current_user_id()
* get the current user id
* @uses AwesomeLiveChat_Library::getOperator()
* get operator term
* @uses AwesomeLiveChat_Library::getDepartment()
* get department term
* @uses AwesomeLiveChat_Library::getAllDepartments()
* get all departments
* @uses Boots::Form
* Boots form extension
* @access public
* @param object User object
* @return void
*/
public function departmentsField($User)
{
if(current_user_can('create_users') || current_user_can('add_users'))
{
echo '<div class="boots-form">';
echo '<hr /><h3>Awesome Live Chat <small>' . __('Options', 'awesome-live-chat') . '</small></h3>';
$Departments = $this->_->getAllDepartments(true);
$Data = array();
foreach($Departments as $Dept)
{
$Data[$Dept->id] = $Dept->name;
}
if(!count($Data))
{
echo '<label>' . __('Departments', 'awesome-live-chat') . '</label>';
_e('There are no departments to select from. If you want to assign a chat department to this user, you first need to create a department.',
'awesome-live-chat');
echo '<hr /></div>';
return false;
}
$Current = $this->_->getOperator($User->ID, 'alc_departments');
echo $this->Boots->Form->generate('multiple', array(
'title' => __('Departments', 'awesome-live-chat'),
'name' => 'alc_departments',
'data' => $Data,
13
482 ЧДТУ 21981-01 12 01
'value' => is_array($Current) ? $Current : array(),
'style' => 'width: 350px;'
));
echo '<hr /></div>';
}
else if($User->ID == get_current_user_id() && current_user_can('operate_alc'))
{
echo '<hr /><h3>Awesome Live Chat <small>' . __('Departments', 'awesome-live-chat') . '</small></h3>';
_e('You are an operator for the following departments:', 'awesome-live-chat');
echo '<p><strong>';
$Departments = $this->_->getOperator($User->ID, 'alc_departments');
if(is_array($Departments))
{
$comma = '';
foreach($Departments as $did)
{
$dept = $this->_->getDepartment('name', 'id', $did);
if($dept)
{
echo $comma . $dept;
$comma = ', ';
}
}
}
echo '</strong></p><hr />';
}
}
/**
* Update the departments field
* for the operator based on
* form submission
*
* @since 1.0.0
* @uses current_user_can()
* user permission
* @uses delete_user_meta()
* delete a user's meta
* @uses AwesomeLiveChat_Library::getOperator()
* get operator term
* @uses AwesomeLiveChat_Library::setOperator()
* set operator term
* @uses AwesomeLiveChat_Library::getDepartment()
* get department term
* @access public
* @param int User id
* @return bool Exit
*/
public function updateDepartmentsField($user_id)
14
482 ЧДТУ 21981-01 12 01
{
if(current_user_can('create_users') || current_user_can('add_users'))
{
$User = new WP_User($user_id);
if(!isset($_POST['alc_departments']) || !is_array($_POST['alc_departments']))
{
// remove capability
$User->remove_cap('operate_alc');
delete_user_meta($user_id, 'alc_departments');
delete_user_meta($user_id, 'alc_token');
return false;
}
// add capability
$User->add_cap('operate_alc');
$Departments = array_filter(array_map(
array($this, 'toInteger'), $_POST['alc_departments']),
'is_int'
);
$this->_->setOperator($user_id, 'alc_departments', $Departments);
if(!$this->_->getOperator($user_id, 'alc_token'))
{
$this->_->setOperator($user_id, 'alc_token', $this->_->generateOperatorToken());
}
}
}
/**
* Hide dashboard menu item
* and area if admin doesn't allow.
*
* @since 1.0.0
* @uses $current_user
* WordPress global
* @uses $pagenow
* WordPress global
* @uses remove_menu_page()
* remove a menu item and page
* @uses wp_redirect()
* redirect to a url
* @uses Boots::Database
* Boots database extension
* @access public
* @param void
* @return bool Exit
*/
public function hideOperatorDashboard()
{
if($this->_->settings('general', 'restrict_op') == 'no')
15
482 ЧДТУ 21981-01 12 01
return false;
global $current_user, $pagenow;
if(array_shift($current_user->roles) == 'alc_operator')
{
remove_menu_page('index.php');
if($pagenow == 'index.php')
{
$home = $this->Boots->Database->term('siteurl')->get();
wp_redirect($home . '/wp-admin/profile.php');
}
}
}
/**
* Enqueue Boots form
* styles and scripts
* in the profile page.
*
* @since 1.0.0
* @uses $pagenow
* WordPress global
* @uses Boots::Form
* Boots form extension
* @access public
* @param void
* @return void
*/
public function enqueue()
{
global $pagenow;
if(in_array($pagenow, array('profile.php','user-edit.php')))
{
$this->Boots->Form->styles();
$this->Boots->Form->scripts();
}
}
}
new AwesomeLiveChat_Profile();
Лістинг програмного коду файлу general.php плагіну Awesome Live Chat
<?php
$Posttypes = get_post_types(array(
'public' => true,
'_builtin' => false
), 'objects');
$Placement = array();
foreach($Posttypes as $Type)
16
482 ЧДТУ 21981-01 12 01
{
$Placement[$Type->name] = $Type->labels->name;
}
$this->Admin->section(__('General', 'awesome-live-chat'))
->add('select', array(
'title' => __('Chat Mode', 'awesome-live-chat'),
'id' => 'alc_settings_general_mode',
'name' => 'alc_settings[general][mode]',
'help' => __('Enable/disable live chat.', 'awesome-live-chat'),
'data' => array(
'online' => __('Online', 'awesome-live-chat'),
'offline' => __('Offline', 'awesome-live-chat')
), 'value' => $Settings['mode']
))->add('select', array(
'title' => __('Message Sound', 'awesome-live-chat'),
'id' => 'alc_settings_general_sound',
'name' => 'alc_settings[general][sound]',
'help' => __('Enable/disable sound on new message.', 'awesome-live-chat'),
'data' => array(
'yes' => __('Yes', 'awesome-live-chat'),
'no' => __('No', 'awesome-live-chat')
), 'value' => $Settings['sound']
))->add('multiple', array(
'title' => __('Placement', 'awesome-live-chat'),
'id' => 'alc_settings_general_placement',
'name' => 'alc_settings[general][placement]',
'help' => __('Where should the chat appear.', 'awesome-live-chat'),
'data' => array_merge($Placement, array(
'post' => __('Posts'),
'page' => __('Pages'),
'archive' => __('Archives'),
'home' => __('Home', 'awesome-live-chat')
)), 'value' => $Settings['placement']
))
->add('select', array(
'title' => __('Position', 'awesome-live-chat'),
'id' => 'alc_settings_general_position',
'name' => 'alc_settings[general][position]',
'help' => __('Position the chat panel on the left or right side of a page.', 'awesome-live-chat'),
'data' => array(
'right' => __('Right', 'awesome-live-chat'),
'left' => __('Left', 'awesome-live-chat')
), 'value' => $Settings['position']
))->add('select', array(
'title' => __('Responsive', 'awesome-live-chat'),
'id' => 'alc_settings_general_responsive',
'name' => 'alc_settings[general][responsive]',
'help' => __('Allow the chat panel to integrate well under handheld devices.', 'awesome-live-chat'),
17
482 ЧДТУ 21981-01 12 01
'data' => array(
'yes' => __('Yes', 'awesome-live-chat'),
'no' => __('No', 'awesome-live-chat')
), 'value' => $Settings['responsive']
))->add('textbox', array(
'title' => __('Chat Width', 'awesome-live-chat'),
'id' => 'alc_settings_general_width',
'name' => 'alc_settings[general][width]',
'help' => __('Width of the chat panel (in pixels).', 'awesome-live-chat'),
'value' => $Settings['width']
))->add('textbox', array(
'title' => __('Chat Height', 'awesome-live-chat'),
'id' => 'alc_settings_general_height',
'name' => 'alc_settings[general][height]',
'help' => __('Height of the chat panel (in pixels).', 'awesome-live-chat'),
'value' => $Settings['height']
))->add('image', array(
'title' => __('Chat Avatar', 'awesome-live-chat'),
'id' => 'alc_settings_general_avatar',
'name' => 'alc_settings[general][avatar]',
'button' => __('Select Avatar', 'awesome-live-chat'),
'help' => sprintf(__('%s pixel avatar. Leave blank to use operator gravatars.', 'awesome-live-chat'), '45x45'),
'value' => $Settings['avatar']
))->add('image', array(
'title' => __('Chat Icon', 'awesome-live-chat'),
'id' => 'alc_settings_general_icon',
'name' => 'alc_settings[general][icon]',
'button' => __('Select Icon', 'awesome-live-chat'),
'help' => sprintf(__('%s pixel chat icon.', 'awesome-live-chat'), '28x28'),
'value' => $Settings['icon']
))->add('range', array(
'title' => __('Timeout', 'awesome-live-chat'),
'id' => 'alc_settings_general_timeout',
'name' => 'alc_settings[general][timeout]',
'help' => __('Ajax long polling timeout. Adjust this if encountering 500 Internal Server Error.', 'awesome-live-chat'),
'value' => $Settings['timeout']
))->add('select', array(
'title' => __('Show Offline', 'awesome-live-chat'),
'id' => 'alc_settings_general_show_offline',
'name' => 'alc_settings[general][show_offline]',
'help' => __('Show offline form when offline.', 'awesome-live-chat'),
'data' => array(
'no' => __('No', 'awesome-live-chat'),
'yes' => __('Yes', 'awesome-live-chat')
), 'value' => $Settings['show_offline']
))->add('select', array(
'title' => __('Email Field - when online', 'awesome-live-chat'),
'id' => 'alc_settings_general_email_field',
'name' => 'alc_settings[general][email_field]',
18
482 ЧДТУ 21981-01 12 01
'help' => __('What would you like to do with the email field.', 'awesome-live-chat'),
'data' => array(
'required' => __('Required', 'awesome-live-chat'),
'optional' => __('Optional', 'awesome-live-chat'),
'hide' => __('Hide', 'awesome-live-chat')
), 'value' => $Settings['email_field']
))->add('textbox', array(
'title' => __('Border Width', 'awesome-live-chat'),
'id' => 'alc_settings_general_width_border',
'name' => 'alc_settings[general][width_border]',
'help' => __('Width of the border (in pixels).', 'awesome-live-chat'),
'value' => $Settings['width_border']
))->add('select', array(
'title' => __('Hide Border', 'awesome-live-chat'),
'id' => 'alc_settings_general_hide_border',
'name' => 'alc_settings[general][hide_border]',
'help' => __('Hide transparent border around chat panel.', 'awesome-live-chat'),
'data' => array(
'no' => __('No', 'awesome-live-chat'),
'yes' => __('Yes', 'awesome-live-chat')
), 'value' => $Settings['hide_border']
))->add('multiple', array(
'title' => __('Hide Status', 'awesome-live-chat'),
'id' => 'alc_settings_general_hide_status',
'name' => 'alc_settings[general][hide_status]',
'help' => __('Hide the status bar when online/offline.', 'awesome-live-chat'),
'data' => array(
'online' => __('Online', 'awesome-live-chat'),
'offline' => __('Offline', 'awesome-live-chat')
), 'value' => $Settings['hide_status']
))->add('multiple', array(
'title' => __('Hide Website Field', 'awesome-live-chat'),
'id' => 'alc_settings_general_hide_website',
'name' => 'alc_settings[general][hide_website]',
'help' => __('Hide the website field when online/offline.', 'awesome-live-chat'),
'data' => array(
'online' => __('Online', 'awesome-live-chat'),
'offline' => __('Offline', 'awesome-live-chat')
), 'value' => $Settings['hide_website']
))->add('select', array(
'title' => __('Hide Department', 'awesome-live-chat'),
'id' => 'alc_settings_general_hide_dept',
'name' => 'alc_settings[general][hide_dept]',
'help' => __('Hide department field when there is a single department.', 'awesome-live-chat'),
'data' => array(
'no' => __('No', 'awesome-live-chat'),
'yes' => __('Yes', 'awesome-live-chat')
), 'value' => $Settings['hide_dept']
))->add('select', array(
19
482 ЧДТУ 21981-01 12 01
'title' => __('Glass Effect', 'awesome-live-chat'),
'id' => 'alc_settings_general_glass',
'name' => 'alc_settings[general][glass]',
'help' => __('Display a see through effect during chat (will not show for iframe).', 'awesome-live-chat'),
'data' => array(
'no' => __('No', 'awesome-live-chat'),
'yes' => __('Yes', 'awesome-live-chat')
), 'value' => $Settings['glass']
))->add('select', array(
'title' => __('Transparent Modal', 'awesome-live-chat'),
'id' => 'alc_settings_general_bg',
'name' => 'alc_settings[general][bg]',
'help' => __('Display transparent modal (will not show for iframe).', 'awesome-live-chat'),
'data' => array(
'no' => __('No', 'awesome-live-chat'),
'yes' => __('Yes', 'awesome-live-chat')
), 'value' => $Settings['bg']
))->add('select', array(
'title' => __('Restrict Operators', 'awesome-live-chat'),
'id' => 'alc_settings_general_restrict_op',
'name' => 'alc_settings[general][restrict_op]',
'help' => __('Restrict operators to their profile and chat screen only.', 'awesome-live-chat'),
'data' => array(
'no' => __('No', 'awesome-live-chat'),
'yes' => __('Yes', 'awesome-live-chat')
), 'value' => $Settings['restrict_op']
))->add('select', array(
'title' => __('Use iFrame', 'awesome-live-chat'),
'id' => 'alc_settings_general_iframe',
'name' => 'alc_settings[general][iframe]',
'help' => __('Render chat panel in an iframe. Useful, if encountering layout issues.', 'awesome-live-chat'),
'data' => array(
'no' => __('No', 'awesome-live-chat'),
'yes' => __('Yes', 'awesome-live-chat')
), 'value' => $Settings['iframe']
));
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Волкова В.Н. Информационные системы в экономике: учебник для
академического бакалавриата [Текст] / В. Н. Волкова, В. Н. Юрьев, С. В.
Широкова, А. В. Логинова ; под редакцией В. Н. Волковой, В. Н. Юрьева. —
Москва: Издательство Юрайт, 2019. — 402 с.
2. Агальцов В.П., Локальные базы данных [Текст] – М.:Изд-во ООО
НВП "ИНЭК", 2016. – 52с.;
3. Агальцов В.П., Распределенные и удаленные базы даннях [Текст]
– М.:Изд-во ООО НВП "ИНЭК", 2016. – 83с.;
4. Кожевникова, Г. П. Информационные системы и технологии в
маркетинге: учебное пособие [Текст] / Г. П. Кожевникова, Б. Е. Одинцов. —
Москва : Издательство Юрайт, 2019. — 444 с.
5. Агальцов В.П., Базы данных. Локальные базы данных. Книга 1
[Текст] – М.:Форум, 2010. – 352с.
6. Шпак Ю.А. Проектирование баз данных. Просто как дважды два
[Текст] / М.: Эксмо, 2018. – 304с.;
7. Одинцов Б.Е. Информационные системы управления
эффективностью бизнеса: учебник и практикум для бакалавриата и
магистратуры [Текст] / Б. Е. Одинцов. — Москва : Издательство Юрайт, 2015.
— 206 с.
8. Басюк Т.М. Методи та засоби мультимедійних інформаційних
систем : навч. посіб. [Текст] / Т.М. Басюк, П. І. Жежнич; Нац. ун-т "Львів.
політехніка". - Львів : Вид-во Львів. політехніки, 2015. – 426 c. – Бібліогр.: с.
413-416.
9. Одинцов, Б. Е. Информационные системы управления
эффективностью бизнеса: учебник и практикум для бакалавриата и
магистратуры [Текст] / Б. Е. Одинцов. — Москва: Издательство Юрайт, 2019.
— 206 с.
Арк.
ЧДТУ 211981.004 ПЗ 72
Зм н. Арк. № докум. Підпис Дата
10. Сусіденко В.Т. Інформаційні системи і технології в обліку [Текст]
/ В-во: ЦНЛ – 2016. – 224 с.
11. Буйницька О.П. Інформаційні технології та технічні засоби
навчання. Навчальний посібник рекомендовано МОН України [Текст] / В-во:
ЦНЛ. – 2018. – 240 с.
12. Гайдамакин Н.А. Автоматизированные информационные системы,
базы и банки даннях [Текст] / М.: Гелиос АРВ, 2018. – 368 с.
13. Бутинець Ф.Ф., Івахненков С.В., Давидюк Т.В., Шахрайчук Т.В.
Інформаційні системи бухгалтерського обліку. Підручник. [Текст] / Житомир.:
Изд. ПП „Рута”. – 2016. – 544 с.
14. Информационные системы и технологии в экономике [Текст]:учеб./
Лойко В.И., Семенов М.И., Трубилин А.И., под. ред. проф. Лойко В.И.; 2-е из-
е М.: Изд. «Финансы и статистика». – 2015. – 416с. ISBN 5-279-02605-0
15. Автоматизированные информационные технологи в экономике
[Текст]: Учебник.\\ Под общ. ред. Трубилина И.Т. – М: «Финансы и
статистика», 2015.–453с.
16. Гудвин Г.К. «Проектирование систем управления» [Текст] /
Г.К.Гудвин, С.Ф. Гребе, М.Э. Сальдаго //пер. с англ. – М.:БИНОМ,
Лаборатория знаний, 2016. – 911 с.
17. Чистов Д.В., Харитонов С.А. «Хозяйственные операции в
«1С:Бухгалтерии 8». Задачи, решения, результаты. 2_е издание» [Текст] / М.:
Изд. 1С. – 2016. – 320с.
18. Избачков Ю.С. Информационные системы: ученик [Текст] – 2-е
изд. — СПб: Питер, 2018. — 656 с.
19. Павлиш В.А. Основи інформаційних технологій і систем.
Підручник [Текст] / В.А. Павлиш, Л.К. Гліненко, Н.Б. Шаховська. Львів:
Видавництво Львівської політехніки, – 2018. – 620 с.
Арк.
ЧДТУ 211981.004 ПЗ 73
Зм н. Арк. № докум. Підпис Дата
20. Козловський А.В. Комп’ютерна техніка та інформаційні
технології: Навч. посіб. Рекомендовано МОН [Текст] / Козловський А.В.,
Паночишин Ю.М., Погріщук Б.В. – В-во: Знання. – 2017. – 463 с.
21. Гайдамакин Н. А. Автоматизированные системы, базы и банки
данных. Вводный курс: Учебное пособие [Текст]. – М.: Гелиос АРВ. – 2015. –
368 с.
22. Колесніков К.В., Карапетян А.Р. Методичні вказівки до виконання
кваліфікаційних робіт бакалаврів з напрямку підготовки 122 «Комп’ютерні
науки» (Computer Science) для студентів денної та заочної форми навчання
[Текст] / Укл. К.В.Колесніков, А.Р. Карапетян – Черкаси: ЧДТУ, 2020 – 30 с.
ІНТЕРНЕТ ДЖЕРЕЛА
23. Інтернет-магазин автозапчастин Euromotors.com.ua [Електронний
ресурс]. – Режим доступу: https://euromotors.com.ua/page/about-shop/. Дата
звернення – 24.04.2021.
24. Інтернет-магазин автозапчастин Автоліга [Електронний ресурс]. –
Режим доступу: https://autoliga.net.ua/about/. Дата звернення – 24.04.2021.
25. Інтернет-магазин автозапчастин razborka-ua [Електронний ресурс]. –
Режим доступу: https://razborka-ua.com/. Дата звернення – 24.04.2021.
ПРОГРАМНІ ЗАСОБИ
1. Office 365 © Корпорація Майкрософт, 2021.
2. phpMyAdmin 7.2 © phpMyAdmin devel team, 2021.
3. Open Server 5.3.8 © Maksim Arhipov, 2021.
4. WordPress 3.8 © The WordPress Project Team, 2021.
5. MySql 5.6 © MySQL, 2021.
Арк.
ЧДТУ 211981.004 ПЗ 74
Зм н. Арк. № докум. Підпис Дата