Please use this identifier to cite or link to this item:
https://er.chdtu.edu.ua/handle/ChSTU/6886| Title: | Інтернет - сервіс з продажу автомобілів |
| Authors: | Катаєв, Дмитро Сергійович Циб, Руслан Олександрович |
| Keywords: | бекенд;база даних;Java;Spring Boot;фреймворк |
| Issue Date: | 12-Jun-2024 |
| Abstract: | У сучасному світі електронна комерція займає все більш вагоме місце, надаючи людям можливість здійснювати покупки та продажі в Інтернеті зручно і швидко. Одним з найпопулярніших сегментів електронної комерції є продаж автомобілів. Ця робота бакалавра присвячена проектуванню та розробці веб-ресурсу «Car Sales Service» для продажу автомобілів. Мета роботи і задачі дослідження. Основною метою є проектування та розробка веб-ресурсу «Car Sales Service» для продажу автомобілів. Для досягнення цієї мети була використана технологія Spring Boot, яка надає потужні інструменти для розробки сучасних веб-додатків. Для досягнення поставленої мети в кваліфікаційній роботі бакалавра треба виконати наступні завдання: • Аналіз вимог: проаналізувати вимоги до веб-ресурсу "Car Sales Service". • Проектування серверу: розглянути процес проектування бекенду. Розглянути основні принципи розробки серверної частини, спроектувати базу даних. • Розробити проект серверної частини сайту з використанням Spring Boot. |
| URI: | https://er.chdtu.edu.ua/handle/ChSTU/6886 |
| Appears in Collections: | 126 Інформаційні системи та технології (Web-технології, web-дизайн) |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| РЕП_БАК_Циб_WEBC-2211.pdf Restricted Access | 1.58 MB | Adobe PDF | View/Open Request a copy |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.
Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
Кафедра інформаційних технологій проектування
Пояснювальна записка
до кваліфікаційної роботи
_______________________________бакалавра_____________________________
(освітньо-кваліфікаційний рівень)
на тему: “Інтернет - сервіс з продажу автомобілів”
Виконав: студент 2 курсу, групи WebC-2211
Спеціальність 126 “Інформаційні
системи та технології”
ОП “Web-технології, Web-дизайн”
Циб Р.О.
(прізвище та ініціали)
Керівник ______Катаєв Д.С._______
(прізвище та ініціали)
Рецензент ______._______
(прізвище та ініціали)
Черкаси – 2024 року
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
(назва вузу)
Факультет ФІТІС Кафедра Інформаційних технологій проєктування
Освітній рівень бакалавр
Спеціальність 126 “Інформаційні системи та технології”
Освітня програма “Web-технології Web-дизайн”
ЗАТВЕРДЖУЮ:
зав.Кафедри Прокопенко Т.О.
“______” __________________2024р.
ЗАВДАННЯ
На кваліфікаційну роботу студенту
Цибу Руслану Олександровичу
(прізвище, ім’я, по-батькові)
1. Тема проекту (роботи) Інтернет - сервіс з продажу автомобілів
Керівник проекту(роботи) КАТАЄВ Д., к.т.н., ст.в..
Затверджена наказом Черкаського державного технологічного університету №
60/04
від 24.02.24
2. Строк подання студентом роботи 5 червня 2023 р.
3. Вихідні дані до проекту (роботи) Середовище розробки IntelijIdea; XAMPP;
Мова програмування – JAVA, веб-інтерфейс для адміністрування баз даних MySql
– PhpMyAdmin.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить
розробити)
ВСТУП; 1.АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ; 1.1
Аналіз предметної області; 1.2 Основні гравці ринку та їх конкурентні переваги;
1.3 Аналіз попиту та пропозиції на ринку автомобілів; 1.4 Визначення ніші для
нового проекту; Висновки до розділу 1 2. АНАЛІЗ ВИМОГ ДО ВЕБ РЕСУРСУ;
2.1 Функціональні вимоги; 2.2 Нефункціональні вимоги; 2.3 Вимоги до безпеки та
захисту даних; 2.4 Вимоги до продуктивності та масштабованості; Висновки до
розділу 2 3. РОЗРОБКА ТЕСТУВАННЯ ТА ВИСНОВКИ 3.1 Розробка веб
ресурсу; 3.2 Реалізація клієнтської частини; 3.3 Інтеграція з базою даних My SQL
3.4 Реалізація функціональності безпеки за допомогою Spring Web Security; 3.5
Тестування та валідація веб-ресурсу; 3.6 Висновки та перспективи подальшого
розвитку; Висновки до розділу 3 ВИСНОВОК СПИСОК ВИКОРИСТАНИХ
ДЖЕРЕЛ; ДОДАТКИ.
6. Консультанти з проекту із зазначенням розділів проекту, що їх стосуються
Підпис, дата
Розділ Консультант
Завдання видав, завдання
прийняв
7. Дата видачі завдання 1 березня 2023 р.
Керівник Катаєв Д.С.
(підпис)
Завдання прийняв до виконання ________
(підпис)
Календарний план
Пор. № Назва етапів дипломного проекту Термін Примітка
виконання
етапів проекту
1 Підготовча стадія
1.1 Постановка задачі 14.02.2023 Виконано
1.2 Підготовка завдання 21.02.2023 Виконано
1.3 Погодження завдання 25.02.2023 Виконано
1.4 Затвердження завдання 10.03.2023 Виконано
2 Основна стадія
2.1 Підбір матеріалів 14.03.2023 Виконано
2.2 Аналіз шляхів рішення задачі 28.03.2023 Виконано
2.3 Розрахунок основних параметрів роботи 15.04.2023 Виконано
2.4 Вибір кінцевого варіанту проектного 28.04.2023 Виконано
рішення
2.5 Оформлення первісної редакції роботи 09.05.2023 Виконано
3 Заключна стадія
3.1 Узгодження проектних рішень з керівником 16.05.2023 Виконано
3.2 Оформлення пояснювальної записки 18.05.2023 Виконано
3.3 Попередній захист роботи 1.06.2023 Виконано
3.4 Затвердження роботи 6.06.2023 Виконано
3.5 Рецензування роботи 8.06.2023 Виконано
3.6 Захист роботи 13.06.2023
Студент-дипломник ______________________________________________
(підпис) (ПІБ)
Керівник проекту ______________________________________________
АНОТАЦІЯ
До кваліфікаційної роботи бакалавра на тему «Проектування та розробка
веб-ресурсу з продажу автомобілів». Виконав студент групи WebC-2211 Циб
Руслан Олександрович. Кваліфікаційна робота бакалавра містить: 50 сторінок, 24
рисунки, 1 таблицю, 25 використаних джерел.
Актуальність теми. У сучасному світі електронна комерція займає все
більш вагоме місце, надаючи людям можливість здійснювати покупки та продажі
в Інтернеті зручно і швидко. Одним з найпопулярніших сегментів електронної
комерції є продаж автомобілів. Ця робота бакалавра присвячена проектуванню та
розробці веб-ресурсу «Car Sales Service» для продажу автомобілів.
Мета роботи і задачі дослідження. Основною метою є проектування та
розробка веб-ресурсу «Car Sales Service» для продажу автомобілів. Для
досягнення цієї мети була використана технологія Spring Boot, яка надає потужні
інструменти для розробки сучасних веб-додатків.
Для досягнення поставленої мети в кваліфікаційній роботі бакалавра треба
виконати наступні завдання:
Аналіз вимог: проаналізувати вимоги до веб-ресурсу "Car Sales
Service".
Проектування серверу: розглянути процес проектування
бекенду. Розглянути основні принципи розробки серверної частини,
спроектувати базу даних.
Розробити проект серверної частини сайту з використанням
Spring Boot.
Об’єкт дослідження: створення серверної частини сайтів.
Предмет дослідження: серверна частина веб-ресурсу з продажу
автомобілів.
Методи дослідження: в роботі застосовувалися аналізи існуючих рішень,
методи проектування та створення програмних продуктів, патерни проектування
Ключові слова: бекенд, Java, Spring Boot, база даних, фреймворк
ANNOTATION
In the bachelor's qualification work, research in the field of technologies of the
server part of the web-resource for the sale of cars is considered. The purpose of the
work is to develop and implement the server part of the web resource for the sale of
cars. The object of the study is an Internet platform that provides users with the
opportunity to order and purchase cars. The subject of the study is the server part of the
web resource and all its aspects, which include the system architecture, the selection and
configuration of technologies and tools, the development of backend functions,
integration with the database, as well as aspects related to the effective functioning of
the server part of the web resource from the sale of cars. In the first section, the goals,
principles, advantages of using web resources, requirements for them and a review of
existing analogues are considered, important aspects related to the development and use
of web resources are clarified. In the second section, the key points of designing a web
resource for the sale of cars are completed. First, the statement of the problem. After
setting the task, the capabilities of the web resource are determined and the database is
designed. In the third section, a functioning database for the web resource was created
and implemented. Implemented backend of the user part of the web resource, which
includes the necessary functionality. At the end, the backend of the administrative part
of the web resource is implemented, which provides advanced capabilities for the
administrator. The qualification work consists of: 50 pages, 1 table, and 24 figures. It
includes the following parts: analytical part, web resource design, web resource
implementation, conclusions and a list of used sources.
ЗМІСТ
ВСТУП .................................................................................................................................................... 4
РОЗДІЛ 1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ ......................... 6
1.1. Аналіз предметної області ........................................................................................................ 6
1.2. Основні гравці ринку та їх конкурентні переваги .............................................................. 7
1.3. Аналіз попиту та пропозиції на ринку автомобілів ............................................................ 8
1.4. Визначення ніші для нового проекту .................................................................................... 9
1.5 Висновки до розділу 1 .............................................................................................................. 10
РОЗДІЛ 2. АНАЛІЗ ВИМОГ ТА ПРОЕКТУВАННЯ СИСТЕМИ ............................................ 12
2.1. Функціональні вимоги ........................................................................................................... 12
2.2. Нефункціональні вимоги ....................................................................................................... 16
2.3. Вимоги до безпеки та захисту даних .................................................................................... 19
2.4. Вимоги до продуктивності та масштабованості ................................................................ 22
Висновки до розділу 2 .................................................................................................................... 26
РОЗДІЛ 3. РОЗРОБКА, ТЕСТУВАННЯ ТА ВИСНОВКИ ......................................................... 28
3.1. Розробка веб-ресурсу "Car Sales Service" ........................................................................... 28
3.2. Реалізація клієнтської частини за допомогою Thymeleaf ................................................ 31
3.3. Інтеграція з базою даних MySQL ......................................................................................... 33
3.4. Реалізація функціональності безпеки за допомогою Spring Security ............................ 36
3.5. Тестування та валідація веб-ресурсу ................................................................................... 40
3.6. Висновки та перспективи подальшого розвитку .............................................................. 44
Висновки до розділу 3 .................................................................................................................... 48
ВИСНОВОК ........................................................................................................................................ 51
Список використаних джерел .......................................................................................................... 54
ДОДАТОК А .......................................................................................................................................... 2
ДОДАТОК Б .......................................................................................................................................... 4
ДОДАТОК В .......................................................................................................................................... 5
ДОДАТОК Г ........................................................................................................................................ 25
ДОДАТОК Д ........................................................................................................................................ 31
ЧДТУ 242230.001.ПЗ
Зм. Лист № докумемента Підпис Дата
Розроб. Циб Р.О.
Літ. Лист Листів
Перев. Катаєв Д.С. UX/UI дизайн Інтернет сервіс з продажу Н 2 56
Реценз.. автомобілів
озроб. ЧДТУ
ЛПітЗ. ФІТІС,
Н.контр. Катаєв Д.С. Лист Листів
Перев. ПІБ Пояснювальна записка
Затв. ПрокопенкоТ.О. кНафедра ІТП, WEB-2211
Перев.
Н контр. Літ. Лист Листів
Затв. ПрокопенкоТ.О.. Н
Реценз. Серверна частина WEBЧрДесТурУсу з продажу ПЗ
японського чаю Літ. ФЛиІсТтІС, Листів
кафедра ІТП
СПИСОК СКОРОЧЕНЬ ТА УМОВНИХ ПОЗНАЧЕНЬ
JAVA – Скриптова мова програмування на стороні вебсерверу.
URL – Унікальна адреса ресурсу.
MySQL – Система керування реляційними базами даних.
SQL - Мова запросів до бази данних.
PhpMyAdmin – Веб-інтерфейс для адміністрування баз даних MySQL.
ПЗ – Програмне забезпечення.
БД – База даних
HTML – Мова розмітки документів.
Лист
ЧДТУ 242282.003 ПЗ
3
Зм Арк. № докум. Пiдпис. Дата
нт
ВСТУП
У сучасному світі автомобільних продажів спостерігається значне зростання
попиту на онлайн сервіси, які дозволяють покупцям знайти, порівняти та
придбати автомобілі зручно та ефективно. Розвиток інтернет-технологій створив
потребу у платформах, що надають покупцям можливість здійснювати покупку
автомобілів онлайн, з усіма необхідними для цього функціями. Мій проект,
спрямований на створення сервісу з продажу автомобілів, є надзвичайно
актуальним, оскільки він вирішує проблему пошуку та придбання автомобілів,
підвищуючи зручність та задоволення від цього процесу[1].
Однією з ключових причин актуальності проекту є зростаюча кількість
користувачів інтернету та мобільних пристроїв, які використовують їх для
здійснення покупок. Потенційні покупці автомобілів все частіше шукають
інформацію про автомобілі онлайн, порівнюють ціни, перевіряють відгуки та
здійснюють покупки, не виходячи з дому. Мій сервіс пропонує зручну та
інтуїтивно зрозумілу платформу для пошуку та придбання автомобілів, що значно
полегшує процес вибору та купівлі.
Крім того, в умовах пандемії COVID-19 багато людей стали більше
використовувати онлайн сервіси для здійснення покупок, що зумовило зростання
попиту на такі платформи. Онлайн - покупки стали основним способом
придбання товарів, включаючи автомобілі. І навіть після закінчення пандемії,
більшість людей продовжують користуватися інтернет - ресурсами для покупок.
Це робить мій проект особливо важливим у контексті сучасних соціальних змін.
Забезпечення зручного та ефективного способу покупки автомобілів сприятиме
підвищенню якості обслуговування та задоволення клієнтів.
Таким чином, автомобільна індустрія є однією з найбільш конкурентних
галузей, і попит на високоякісні сервіси для покупців автомобілів постійно
зростає. Мій проект має потенціал задовольнити цей попит, запропонувавши
користувачам інтуїтивно зрозумілий, зручний і надійний інструмент для пошуку
Лист
ЧДТУ 242282.003 ПЗ
4
Зм Арк. № докум. Пiдпис. Дата
нт
та покупки автомобілів, що, в свою чергу, сприятиме подальшому розвитку
індустрії та підвищенню якості користувацького досвіду[2].
Мета та задачі
Метою мого проекту випускної роботи бакалавра є створення веб-сервісу
для продажу автомобілів, який спростить процес пошуку та купівлі автомобілів і
підвищить якість та задоволення від цього процесу.
Для досягнення поставленої мети треба виконати наступні задачі:
провести огляд аналогічних сервісів;
провести аналіз ринку та потреб користувачів;
розробити ефективний алгоритм пошуку автомобілів;
створити зручний інтерфейс користувача;
забезпечити інтеграцію з базою даних для зберігання інформації
про автомобілі;
реалізувати функціонал безпеки для захисту даних користувачів.
Об’єкт
Об'єктом роботи є процес розробки онлайн-сервісу для продажу
автомобілів, що надає користувачам можливість знаходити та купувати
автомобілі на основі їхніх уподобань, бюджету та інших важливих параметрів.
Лист
ЧДТУ 242282.003 ПЗ
5
Зм Арк. № докум. Пiдпис. Дата
нт
РОЗДІЛ 1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ
1.1. Аналіз предметної області
1.1.1. Вступ
З розвитком інформаційних технологій та глобальної мережі Інтернет,
автомобільна промисловість зазнала значних змін. Онлайн-сервіси стали
невід'ємною частиною процесу придбання автомобілів, надаючи споживачам
можливість зручно і ефективно купувати автомобілі без необхідності відвідувати
фізичні автосалони. В цьому розділі буде розглянуто основні аспекти розвитку
онлайн-продажу автомобілів, включаючи історію, переваги та ключові гравці
ринку.
1.1.2. Еволюція онлайн-продажів автомобілів
Перші спроби продажу автомобілів через Інтернет з'явилися на початку
2000-х років. Ці спроби включали прості веб-сайти, де продавці могли
розміщувати інформацію про свої автомобілі. З часом, завдяки розвитку інтернет-
технологій та збільшенню кількості користувачів Інтернету, онлайн-продажі
автомобілів стали популярнішими. Сьогодні багато автомобільних дилерів та
виробників використовують власні веб-платформи для продажу автомобілів, що
дозволяє залучити більше клієнтів і забезпечити їм зручний спосіб вибору та
придбання автомобіля. Це включає можливість перегляду фотографій,
відеооглядів, технічних характеристик та відгуків[1].
1.1.3. Переваги онлайн-продажів автомобілів
Онлайн-продажі автомобілів мають ряд переваг як для покупців, так і для
продавців:
Лист
ЧДТУ 242282.003 ПЗ
6
Зм Арк. № докум. Пiдпис. Дата
нт
Зручність: можливість перегляду та порівняння автомобілів з будь-
якого місця та в будь-який час. Користувачі можуть шукати автомобілі вдома, на
роботі або в дорозі.
Широкий вибір: доступ до великої кількості моделей та брендів, що
дозволяє споживачам знайти саме те, що їм потрібно, без обмежень, характерних
для фізичних автосалонів.
Економія часу: відсутність потреби відвідувати автосалони. Процес
купівлі автомобіля стає швидшим, оскільки всі необхідні дії можна виконати
онлайн.
Транспарентність: можливість ознайомлення з відгуками та
рейтингами автомобілів, що допомагає приймати обґрунтовані рішення.
Користувачі можуть бачити реальні оцінки інших покупців.
Гнучкість: можливість організації тест-драйвів та доставки
автомобілів додому. Деякі платформи навіть пропонують повернення автомобілів
у випадку, якщо покупець не задоволений.
1.2. Основні гравці ринку та їх конкурентні переваги
1.2.1. Вступ
Автомобільний ринок насичений різними гравцями, які пропонують
різноманітні сервіси з продажу автомобілів. У цьому підрозділі розглянемо
основних гравців ринку, їх стратегії та конкурентні переваги. Основні гравці
ринку включають великі онлайн-платформи та традиційних дилерів, які
адаптуються до змін ринку.
1.2.2. Великі онлайн-платформи
Carvana: Один з провідних гравців ринку онлайн-продажів автомобілів.
Компанія пропонує повний спектр послуг, включаючи фінансування, обмін
старих автомобілів та доставку нових автомобілів до дверей покупця. Carvana
також відома своїми автоматизованими вежами для видачі автомобілів.
Лист
ЧДТУ 242282.003 ПЗ
7
Зм Арк. № докум. Пiдпис. Дата
нт
AutoTrader: Великий портал, який об'єднує пропозиції від дилерів та
приватних продавців. Сайт пропонує широкий вибір автомобілів, інструменти для
порівняння моделей, а також фінансові послуги. AutoTrader також має широкий
вибір нових та вживаних автомобілів.
Cars.com: Платформа, яка надає інформацію про автомобілі, відгуки,
рейтинги та інструменти для порівняння. Компанія також пропонує послуги з
фінансування та страхування, що робить процес покупки більш зручним для
споживачів.
1.2.3. Традиційні дилери
Багато традиційних дилерів також розвивають свої онлайн-платформи, щоб
залишатися конкурентоспроможними. Вони пропонують широкий вибір
автомобілів, спеціальні пропозиції та акції, а також можливість організації тест-
драйвів та сервісного обслуговування. Деякі дилери також починають
впроваджувати технології для віртуальних шоурумів та онлайн-консультацій, що
дозволяє покупцям отримувати інформацію віддалено[5].
1.3. Аналіз попиту та пропозиції на ринку автомобілів
1.3.1. Вступ
Попит та пропозиція на ринку автомобілів є важливими показниками, що
впливають на стратегії компаній та розвиток ринку в цілому. У цьому підрозділі
розглянемо основні тенденції попиту та пропозиції на ринку автомобілів. Це
включає аналіз споживчих переваг та тенденцій у виробництві.
1.3.2. Тенденції попиту
Зростання попиту на електромобілі: У зв'язку зі зростанням
екологічної свідомості та підтримкою держави, попит на електромобілі постійно
зростає. Багато країн пропонують субсидії та податкові пільги для покупців
електромобілів.
Лист
ЧДТУ 242282.003 ПЗ
8
Зм Арк. № докум. Пiдпис. Дата
нт
Зміни в споживчих перевагах: Споживачі все більше звертають
увагу на такі параметри, як економічність, безпека та технологічні інновації.
Наприклад, популярність отримують автомобілі з функціями автономного водіння
та інтерфейсами для інтеграції зі смартфонами.
Вплив пандемії COVID-19: Пандемія призвела до зростання попиту
на особисті транспортні засоби, оскільки люди прагнуть уникати громадського
транспорту. Це також стимулювало інтерес до оренди автомобілів та каршерінгу.
1.3.3. Тенденції пропозиції
Розширення модельного ряду: Виробники активно розширюють свій
асортимент, впроваджуючи нові моделі, включаючи електромобілі та гібриди.
Вони також пропонують моделі, орієнтовані на різні сегменти ринку.
Інноваційні технології: Впровадження нових технологій, таких як
автономне водіння, підвищує привабливість нових моделей. Такі технології
включають системи допомоги водієві, адаптивні круїз-контролі та паркувальні
асистенти.
Глобалізація: Виробники все частіше пропонують свої автомобілі на
міжнародних ринках, розширюючи свою присутність. Це дозволяє їм знижувати
витрати на виробництво та збільшувати продажі.
1.4. Визначення ніші для нового проекту
1.4.1. Вступ
На основі аналізу ринку та потреб споживачів, визначення ніші для нового
проекту є ключовим етапом для успішного запуску та розвитку. У цьому
підрозділі розглянемо потенційні ніші для сервісу з продажу автомобілів. Вибір
ніші дозволяє зосередитися на конкретних потребах споживачів та уникнути
конкуренції з великими гравцями ринку.
Лист
ЧДТУ 242282.003 ПЗ
9
Зм Арк. № докум. Пiдпис. Дата
нт
1.4.2. Аналіз конкурентного середовища
Конкурентний аналіз дозволяє визначити сильні та слабкі сторони основних
гравців ринку, а також знайти можливості для нового проекту. Це включає
вивчення бізнес-моделей конкурентів, їхніх стратегій маркетингу та продажу, а
також оцінку їхніх сильних та слабких сторін.
1.4.3. Вибір ніші
На основі проведеного аналізу, перспективною нішею є ринок
електромобілів та гібридів. Цей сегмент активно розвивається, але ще не повністю
насичений пропозиціями. Інтеграція з сервісами оцінки автомобілів та розрахунку
страхових платежів також може бути конкурентною перевагою. Додаткові
можливості включають впровадження новітніх технологій, таких як віртуальна
реальність для огляду автомобілів та онлайн-консультації з фахівцями.
1.5 Висновки до розділу 1
Розділ 1 дипломної роботи розкриває важливі аспекти аналізу предметної
області та постановки задачі для розробки онлайн - сервісу з продажу автомобілів.
У результаті дослідження було виявлено, що з розвитком інформаційних
технологій та глобальної мережі Інтернет, автомобільна промисловість зазнала
значних змін. Онлайн-сервіси стали ключовим елементом процесу придбання
автомобілів, надаючи споживачам зручні можливості для вибору та купівлі без
необхідності відвідувати фізичні автосалони.
В ході аналізу було досліджено еволюцію онлайн-продажів автомобілів, що
почалася на початку 2000-х років, та їх поступове зростання завдяки розвитку
інтернет-технологій. Сучасні онлайн-платформи, такі як Carvana, AutoTrader та
Cars.com, надають повний спектр послуг від перегляду фотографій та відеооглядів
до фінансування та доставки автомобілів.
Лист
ЧДТУ 242282.003 ПЗ
10
Зм Арк. № докум. Пiдпис. Дата
нт
Також були визначені ключові переваги онлайн-продажів автомобілів,
включаючи зручність, широкий вибір, економію часу, транспарентність та
гнучкість. Ці переваги роблять онлайн-продажі привабливими як для покупців,
так і для продавців, дозволяючи їм ефективно задовольняти потреби ринку.
Аналіз основних гравців ринку показав, що великі онлайн-платформи та
традиційні дилери адаптуються до змін, розвиваючи свої онлайн-ресурси та
впроваджуючи новітні технології. Тенденції попиту свідчать про зростання
інтересу до електромобілів, зміну споживчих переваг на користь економічності та
безпеки, а також вплив пандемії COVID-19 на збільшення попиту на особисті
транспортні засоби.
Визначення ніші для нового проекту було проведено на основі
конкурентного аналізу, що виявив перспективи ринку електромобілів та гібридів.
Цей сегмент активно розвивається, але ще не повністю насичений пропозиціями.
Інтеграція з сервісами оцінки автомобілів, розрахунку страхових платежів та
впровадження новітніх технологій, таких як віртуальна реальність та онлайн-
консультації, можуть стати конкурентними перевагами нового проекту.
Таким чином, проведений аналіз предметної області дозволив чітко
сформулювати задачі для розробки ефективного онлайн-сервісу з продажу
автомобілів, що відповідатиме сучасним вимогам ринку та потребам споживачів.
Лист
ЧДТУ 242282.003 ПЗ
11
Зм Арк. № докум. Пiдпис. Дата
нт
РОЗДІЛ 2. АНАЛІЗ ВИМОГ ТА ПРОЕКТУВАННЯ СИСТЕМИ
2.1. Функціональні вимоги
2.1.1. Вступ
Функціональні вимоги визначають основні можливості та функції веб-
ресурсу, які забезпечать його ефективну роботу та задоволення потреб
користувачів. Ці вимоги описують конкретні дії, які користувачі можуть
виконувати на платформі, а також очікувану поведінку системи у відповідь на ці
дії. Основна мета функціональних вимог — забезпечити чітке розуміння того, що
повинна робити система, для всіх зацікавлених сторін, включаючи розробників,
тестувальників та кінцевих користувачів[2].
2.1.2. Реєстрація та авторизація користувачів
Реєстрація
Користувачі повинні мати можливість створити обліковий запис на
платформі. Процес реєстрації повинен бути простим та інтуїтивно зрозумілим,
включаючи заповнення форми з основною інформацією (ім'я, прізвище,
електронна пошта, пароль). Важливо передбачити валідацію введених даних,
наприклад, перевірку формату електронної пошти та мінімальних вимог до
пароля. Реєстрація може включати можливість використання соціальних мереж
(Facebook, Google) для швидкого створення облікового запису.
Авторизація
Після реєстрації користувачі повинні мати можливість входити в систему за
допомогою своїх облікових даних (електронна пошта та пароль). Процес
авторизації повинен бути безпечним, з використанням HTTPS для захисту
переданих даних. Важливо забезпечити можливість відновлення пароля у випадку
його втрати, що включає надсилання посилання для скидання пароля на
зареєстровану електронну пошту. Крім того, можна передбачити функцію
Лист
ЧДТУ 242282.003 ПЗ
12
Зм Арк. № докум. Пiдпис. Дата
нт
багатофакторної аутентифікації для додаткового захисту облікових записів
користувачів.
2.1.3. Пошук автомобілів
Базовий пошук
Система повинна забезпечувати базовий пошук автомобілів за ключовими
критеріями, такими як марка, модель, рік випуску, тип палива, трансмісія та ціна.
Пошук повинен бути швидким та точним, надаючи користувачам можливість
знаходити автомобілі, які відповідають їхнім потребам.
Розширений пошук
Розширений пошук повинен включати додаткові критерії, такі як пробіг,
колір, стан автомобіля (новий або вживаний), розташування продавця, кількість
дверей, тип кузова (седан, SUV, купе тощо), наявність певних опцій (навігація,
кондиціонер, підігрів сидінь) та інші. Користувачі повинні мати можливість
комбінувати різні критерії для отримання більш точних результатів.
Фільтри та сортування
Після отримання результатів пошуку користувачі повинні мати можливість
застосовувати фільтри для звуження результатів. Фільтри можуть включати
діапазон цін, рік випуску, пробіг, тип палива, тип кузова та інші параметри. Також
важливо передбачити можливість сортування результатів за різними критеріями,
такими як ціна, рік випуску, пробіг, популярність та інші.
2.1.4. Порівняння автомобілів
Вибір автомобілів для порівняння
Користувачі повинні мати можливість вибирати кілька автомобілів для
порівняння. Це можна реалізувати через чекбокси або кнопки "Додати до
Лист
ЧДТУ 242282.003 ПЗ
13
Зм Арк. № докум. Пiдпис. Дата
нт
порівняння" біля кожного автомобіля в результатах пошуку. Важливо обмежити
кількість автомобілів для порівняння (наприклад, до трьох або п'яти), щоб
зберегти зручність перегляду порівняння.
2.1.5. Перегляд детальної інформації про автомобіль
Загальна інформація
Користувачі повинні мати доступ до детальної інформації про кожен
автомобіль. Ця інформація повинна включати основні характеристики (марка,
модель, рік випуску, ціна, пробіг, тип палива, трансмісія, тип кузова), а також
додаткові дані, такі як кольори, розміри, потужність двигуна, витрата палива та
інші технічні характеристики.
Фотографії та відео
Детальна інформація повинна включати фотографії автомобіля з різних
ракурсів (зовнішній вигляд, інтер'єр, двигун, багажник та інші деталі). Також
корисно додати відеоогляди автомобілів, що дозволить користувачам краще
оцінити стан та особливості автомобіля.
Історія обслуговування
Користувачі повинні мати можливість переглядати історію обслуговування
автомобіля, включаючи дати та види виконаних робіт, замінені деталі, пробіг на
момент обслуговування та іншу релевантну інформацію. Це допоможе
користувачам оцінити технічний стан автомобіля та його надійність.
Відгуки користувачів
Детальна інформація про автомобіль повинна включати відгуки інших
користувачів, які вже придбали або користувалися цим автомобілем. Відгуки
повинні містити оцінки за різними критеріями (комфорт, економічність,
Лист
ЧДТУ 242282.003 ПЗ
14
Зм Арк. № докум. Пiдпис. Дата
нт
надійність тощо) та текстові коментарі. Це допоможе потенційним покупцям
приймати обґрунтовані рішення.
2.1.6. Організація тест-драйвів та контакт з продавцями
Запит на тест-драйв
Користувачі повинні мати можливість залишати запити на тест-драйв
автомобілів. Це може включати заповнення форми з вибором дати та часу,
контактними даними користувача та будь-якими додатковими коментарями або
запитаннями. Система повинна автоматично надсилати ці запити відповідним
продавцям для подальшого узгодження.
Контакт з продавцями
Платформа повинна забезпечувати зручні способи зв'язку з продавцями. Це
може включати інтеграцію з чатом на платформі, можливість надсилання
повідомлень через електронну пошту або через контактну форму на веб-сайті.
Важливо також передбачити можливість телефонних дзвінків або відеозв'язку для
зручності користувачів.
2.1.7. Інтеграція з платіжними системами
Підтримка різних методів оплати
Користувачі повинні мати можливість здійснювати покупки автомобілів
онлайн, використовуючи різні методи оплати, такі як кредитні картки, банківські
перекази, електронні гаманці (PayPal, Apple Pay, Google Pay тощо). Важливо
забезпечити підтримку різних платіжних систем для зручності користувачів з
різних країн.
Безпека транзакцій
Лист
ЧДТУ 242282.003 ПЗ
15
Зм Арк. № докум. Пiдпис. Дата
нт
Важливо забезпечити високий рівень безпеки транзакцій. Це включає
використання протоколів шифрування (HTTPS), захист даних користувачів під
час передачі та зберігання, а також впровадження додаткових заходів безпеки,
таких як двофакторна аутентифікація та виявлення шахрайських транзакцій.
Підтвердження та відстеження замовлень
Після здійснення оплати користувачі повинні отримувати підтвердження
замовлення електронною поштою або через особистий кабінет на платформі.
Важливо передбачити можливість відстеження статусу замовлення в реальному
часі, включаючи інформацію про доставку та очікувану дату отримання
автомобіля.
2.2. Нефункціональні вимоги
2.2.1. Вступ
Нефункціональні вимоги визначають загальні характеристики системи, які
впливають на її продуктивність, надійність, безпеку та зручність використання. Ці
вимоги включають аспекти, які визначають, як система повинна виконувати свої
функції, забезпечуючи стабільну та безперебійну роботу під різними
навантаженнями[3].
2.2.2. Продуктивність
Швидкість завантаження сторінок
Система повинна забезпечувати високу швидкість завантаження сторінок,
що включає оптимізацію коду, використання кешування та мінімізацію обсягу
переданих даних. Важливо забезпечити швидке завантаження навіть при
повільному інтернет-з'єднанні, використовуючи техніки, такі як lazy loading для
зображень та ресурсів.
Обробка запитів
Лист
ЧДТУ 242282.003 ПЗ
16
Зм Арк. № докум. Пiдпис. Дата
нт
Система повинна бути здатна обробляти велику кількість одночасних
запитів без значного зниження продуктивності. Це включає оптимізацію
серверних запитів, використання технологій для балансування навантаження та
масштабування серверної інфраструктури відповідно до поточного
навантаження[22].
Моніторинг продуктивності
Необхідно впровадити системи моніторингу для постійного відстеження
продуктивності системи. Це включає використання інструментів для збору
метрик, аналізу логів та виявлення аномалій. Регулярний моніторинг допомагає
швидко виявляти та усувати проблеми, що можуть виникнути під час експлуатації
системи.
2.2.3. Надійність
Безперервна робота
Система повинна бути стабільною та надійною, забезпечуючи безперервну
роботу без збоїв та простоїв. Це включає використання методів резервного
копіювання даних, відновлення після збоїв та регулярне тестування системи для
виявлення та усунення потенційних проблем. Важливо забезпечити високу
доступність сервісу, використовуючи технології, такі як кластеризація серверів та
реплікація баз даних.
Відмовостійкість
Система повинна бути здатна продовжувати роботу навіть у випадку
відмови одного або декількох компонентів. Це включає використання резервних
серверів, механізмів автоматичного переключення на резервні ресурси та
регулярне тестування сценаріїв відмов для забезпечення готовності до
неочікуваних ситуацій.
Лист
ЧДТУ 242282.003 ПЗ
17
Зм Арк. № докум. Пiдпис. Дата
нт
Регулярне тестування
Для забезпечення надійності системи необхідно проводити регулярне
тестування всіх компонентів. Це включає автоматизоване тестування коду,
навантажувальне тестування для перевірки продуктивності під високим
навантаженням та пентести для виявлення вразливостей у системі безпеки.
2.2.4. Зручність використання
Інтуїтивно зрозумілий інтерфейс
Інтерфейс користувача повинен бути інтуїтивно зрозумілим та зручним,
забезпечуючи легкість навігації та взаємодії з системою. Це включає
використання зрозумілих іконок, підказок, логічної структури меню та
розміщення елементів управління у відповідних місцях.
Доступність
Система повинна бути доступною для користувачів з різними
можливостями, включаючи людей з обмеженими можливостями. Це включає
використання технологій для забезпечення доступності, таких як екранні читачі,
висококонтрастні теми, масштабовані шрифти та інші інструменти для
забезпечення комфортного користування.
Адаптивність
Інтерфейс користувача повинен бути адаптивним, забезпечуючи зручність
використання на різних пристроях, включаючи комп'ютери, планшети та
смартфони. Це включає адаптацію розмітки сторінок, шрифтів, кнопок та інших
елементів інтерфейсу під різні розміри екрану.
2.2.5. Масштабованість
Горизонтальне та вертикальне масштабування
Лист
ЧДТУ 242282.003 ПЗ
18
Зм Арк. № докум. Пiдпис. Дата
нт
Система повинна підтримувати як горизонтальне, так і вертикальне
масштабування для забезпечення обробки зростаючої кількості користувачів та
даних. Горизонтальне масштабування включає додавання нових серверів для
розподілу навантаження, тоді як вертикальне масштабування включає збільшення
потужності існуючих серверів.
Розподілені системи
Для забезпечення масштабованості важливо використовувати розподілені
системи, що дозволяють обробляти великі обсяги даних та запитів. Це включає
використання розподілених баз даних, кешування, черг повідомлень та інших
технологій для забезпечення ефективного розподілу навантаження між
компонентами системи.
Автоматичне масштабування
Система повинна підтримувати автоматичне масштабування для швидкої
адаптації до змін у навантаженні. Це включає автоматичне додавання або
видалення серверів залежно від поточного навантаження, а також налаштування
порогів для ініціації процесів масштабування[24].
2.3. Вимоги до безпеки та захисту даних
2.3.1. Вступ
Безпека є ключовим аспектом будь-якої онлайн-системи, що працює з
особистими даними користувачів. У цьому підрозділі розглянемо основні вимоги
до безпеки та захисту даних, включаючи аутентифікацію та авторизацію,
шифрування даних, захист від атак та регулярне оновлення системи безпеки.
2.3.2. Аутентифікація та авторизація
Механізми аутентифікації
Лист
ЧДТУ 242282.003 ПЗ
19
Зм Арк. № докум. Пiдпис. Дата
нт
Система повинна забезпечувати надійні механізми аутентифікації
користувачів для захисту їхніх облікових записів. Це може включати
використання багатофакторної аутентифікації (наприклад, паролі та SMS-коди),
обмеження доступу на основі ролей та прав користувачів, а також регулярне
оновлення паролів[25].
Ролі та права доступу
Необхідно забезпечити гнучке управління ролями та правами доступу
користувачів. Це включає визначення різних рівнів доступу для адміністраторів,
менеджерів, продавців та покупців, а також налаштування дозволів для виконання
певних дій (наприклад, додавання або видалення автомобілів, управління
користувачами, перегляд конфіденційної інформації).
Сесійний контроль
Система повинна забезпечувати надійний контроль сесій користувачів,
включаючи автоматичне завершення сесій після певного періоду неактивності,
захист від викрадення сесій та інші заходи безпеки для захисту облікових записів.
2.3.3. Шифрування даних
Протокол HTTPS
Дані, що передаються між клієнтом та сервером, повинні бути зашифровані
за допомогою протоколу HTTPS. Це забезпечує захист від перехоплення та
викрадення даних під час їхньої передачі через Інтернет[17].
Шифрування конфіденційних даних
Конфіденційні дані, такі як паролі користувачів, платіжна інформація та
інші особисті дані, повинні зберігатися у зашифрованому вигляді. Це включає
використання сучасних алгоритмів шифрування (наприклад, AES-256) та
зберігання ключів шифрування в безпечному місці.
Лист
ЧДТУ 242282.003 ПЗ
20
Зм Арк. № докум. Пiдпис. Дата
нт
Регулярне оновлення ключів шифрування
Необхідно забезпечити регулярне оновлення ключів шифрування для
підвищення безпеки даних. Це включає ротацію ключів та зберігання старих
ключів для можливості дешифрування даних, зашифрованих раніше.
2.3.4. Захист від атак
SQL-ін'єкції
Система повинна бути захищена від атак типу SQL-ін'єкцій, що можуть
призвести до викрадення або зміни даних. Це включає використання
підготовлених запитів (prepared statements), валідацію та фільтрацію вводу, а
також регулярне тестування на вразливості[11].
XSS (Cross-Site Scripting)
Необхідно забезпечити захист від атак типу XSS, що можуть призвести до
виконання шкідливого коду на стороні користувача. Це включає екранування
вводу та виводу даних, використання сучасних фреймворків для захисту від XSS
та регулярне тестування системи.
CSRF (Cross-Site Request Forgery)
Система повинна бути захищена від атак типу CSRF, що можуть призвести
до несанкціонованих дій від імені користувача. Це включає використання токенів
CSRF, валідацію запитів та обмеження дій, що можуть бути виконані без
підтвердження користувача.
DDoS (Distributed Denial of Service)
Для захисту від атак типу DDoS необхідно використовувати технології для
виявлення та блокування підозрілих запитів. Це включає використання фільтрів
Лист
ЧДТУ 242282.003 ПЗ
21
Зм Арк. № докум. Пiдпис. Дата
нт
для обмеження кількості запитів з одного IP-адреси, балансування навантаження
та використання послуг захисту від DDoS, таких як Cloudflare або Akamai.
2.3.5. Регулярне оновлення системи безпеки
Проведення аудиту безпеки
Необхідно регулярно проводити аудит безпеки для виявлення та усунення
вразливостей у системі. Це включає проведення пентестів, аналіз логів, перевірку
налаштувань безпеки та оновлення політик безпеки.
Оновлення програмного забезпечення
Важливо забезпечити регулярне оновлення програмного забезпечення,
включаючи серверні та клієнтські компоненти, для забезпечення захисту від
відомих вразливостей. Це включає оновлення операційних систем, веб-серверів,
баз даних, фреймворків та інших компонентів.
Навчання співробітників
Необхідно забезпечити регулярне навчання співробітників правилам
інформаційної безпеки. Це включає навчання розробників методам безпечного
програмування, навчання користувачів правилам безпеки при роботі з системою,
а також проведення тренінгів та симуляційних атак для підвищення готовності до
реальних загроз.
2.4. Вимоги до продуктивності та масштабованості
2.4.1. Вступ
Продуктивність та масштабованість системи є важливими для забезпечення
її ефективної роботи та обробки великої кількості користувачів. У цьому
підрозділі розглянемо основні вимоги до продуктивності та масштабованості
Лист
ЧДТУ 242282.003 ПЗ
22
Зм Арк. № докум. Пiдпис. Дата
нт
системи, включаючи оптимізацію запитів до бази даних, використання
кешування, масштабовану архітектуру та моніторинг продуктивності.
2.4.2. Оптимізація запитів до бази даних
Індекси
Для забезпечення швидкого доступу до даних необхідно використовувати
індекси на полях, що часто використовуються у запитах. Індекси допомагають
швидше знаходити необхідні дані та зменшують навантаження на сервер.
Важливо ретельно обирати поля для індексації, враховуючи частоту використання
та вплив на продуктивність запитів.
Оптимізація SQL-запитів
Важливо оптимізувати SQL-запити для забезпечення швидкої обробки
даних. Це включає використання підготовлених запитів (prepared statements),
уникнення використання складних та вкладених запитів, використання JOIN-
операцій замість вкладених запитів та інші методи оптимізації[4].
Нормалізація даних
Для забезпечення ефективного зберігання та обробки даних необхідно
використовувати нормалізацію. Це включає розбиття таблиць на логічні частини
для уникнення дублювання даних та забезпечення цілісності даних. Важливо
також забезпечити баланс між нормалізацією та продуктивністю запитів.
2.4.3. Використання кешування
Кешування на рівні сервера
Для зменшення кількості запитів до бази даних та прискорення доступу до
часто використовуваних даних необхідно використовувати серверне кешування.
Це включає використання технологій, таких як Redis або Memcached, для
Лист
ЧДТУ 242282.003 ПЗ
23
Зм Арк. № докум. Пiдпис. Дата
нт
зберігання результатів часто використовуваних запитів та зменшення
навантаження на основну базу даних.
Кешування на рівні клієнта
Важливо також використовувати кешування на рівні клієнта для зменшення
кількості запитів до сервера та покращення продуктивності системи. Це включає
використання технологій, таких як HTTP-кешування, local storage або IndexedDB
для зберігання даних на клієнтській стороні.
Кешування статичних ресурсів
Необхідно забезпечити ефективне кешування статичних ресурсів, таких як
зображення, стилі та скрипти. Це включає використання заголовків кешування
HTTP, об'єднання та мінімізацію файлів, використання CDN (Content Delivery
Network) для розподілу навантаження та прискорення доставки контенту.
2.4.4. Масштабована архітектура
Мікросервісна архітектура
Важливо використовувати мікросервісну архітектуру для забезпечення
масштабованості та гнучкості системи. Це включає розбиття додатка на окремі
сервіси, кожен з яких відповідає за конкретну функціональність, та забезпечення
незалежного розгортання та масштабування кожного сервісу.
Розподілені бази даних
Для забезпечення масштабованості необхідно використовувати розподілені
бази даних, що дозволяють обробляти великі обсяги даних та запитів. Це включає
використання кластерів баз даних, реплікацію даних та шардінг для розподілу
даних між різними серверами[8].
Балансування навантаження
Лист
ЧДТУ 242282.003 ПЗ
24
Зм Арк. № докум. Пiдпис. Дата
нт
Необхідно забезпечити ефективне балансування навантаження між
серверами для забезпечення стабільної роботи системи під високим
навантаженням. Це включає використання технологій, таких як HAProxy, NGINX
або спеціалізовані рішення для балансування навантаження, а також
налаштування автоматичного масштабування залежно від поточного
навантаження.
2.4.5. Моніторинг продуктивності
Інструменти моніторингу
Необхідно впровадити системи моніторингу для постійного відстеження
продуктивності системи. Це включає використання інструментів для збору
метрик, таких як Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana),
для аналізу логів та виявлення аномалій.
Аналіз логів
Важливо регулярно аналізувати логи системи для виявлення проблем та
оптимізації роботи. Це включає збір логів з усіх компонентів системи, аналіз
помилок, запитів та відповідей, а також налаштування автоматичних сповіщень
про критичні події.
Оптимізація на основі даних моніторингу
На основі даних моніторингу необхідно проводити оптимізацію системи для
забезпечення високої продуктивності та стабільної роботи. Це включає
налаштування параметрів серверів, оптимізацію запитів, оновлення програмного
забезпечення та інших заходів для підвищення ефективності роботи системи.
Регулярне тестування продуктивності
Необхідно проводити регулярне тестування продуктивності для оцінки
здатності системи обробляти навантаження та виявлення вузьких місць. Це
Лист
ЧДТУ 242282.003 ПЗ
25
Зм Арк. № докум. Пiдпис. Дата
нт
включає навантажувальні тести, стрес-тести та інші типи тестування для оцінки
продуктивності та масштабованості системи.
Висновки до розділу 2
Розділ 2 дипломної роботи присвячений детальному аналізу вимог та
проєктуванню системи, що є ключовими етапами у розробці ефективного веб-
ресурсу для онлайн-продажу автомобілів. Визначення функціональних та
нефункціональних вимог дозволяє створити чітку картину того, як система
повинна працювати та відповідати потребам користувачів.
Функціональні вимоги
Функціональні вимоги визначають основні можливості та функції
платформи, які забезпечать її ефективну роботу. Це включає реєстрацію та
авторизацію користувачів, можливості пошуку автомобілів, порівняння моделей,
перегляд детальної інформації, організацію тест-драйвів та інтеграцію з
платіжними системами. Особлива увага приділена забезпеченню зручності та
безпеки для користувачів, включаючи багатофакторну аутентифікацію, HTTPS,
валідацію введених даних та підтримку різних методів оплати.
Нефункціональні вимоги
Нефункціональні вимоги охоплюють загальні характеристики системи, такі
як продуктивність, надійність, зручність використання, масштабованість та
безпека. Ці вимоги забезпечують стабільну та безперебійну роботу системи під
різними навантаженнями. Важливою частиною нефункціональних вимог є
забезпечення високої швидкості завантаження сторінок, обробки запитів,
використання кешування та моніторинг продуктивності. Надійність системи
досягається за допомогою методів резервного копіювання даних, відмовостійкості
та регулярного тестування.
Масштабованість
Лист
ЧДТУ 242282.003 ПЗ
26
Зм Арк. № докум. Пiдпис. Дата
нт
Масштабованість системи забезпечується за рахунок використання
мікросервісної архітектури, розподілених баз даних, горизонтального та
вертикального масштабування. Автоматичне масштабування дозволяє швидко
адаптуватися до змін у навантаженні, забезпечуючи стабільну роботу платформи
навіть під високими навантаженнями.
Безпека та захист даних
Безпека системи є ключовим аспектом, що включає аутентифікацію та
авторизацію користувачів, шифрування даних, захист від атак та регулярне
оновлення системи безпеки. Використання багатофакторної аутентифікації,
протоколу HTTPS, шифрування конфіденційних даних та захист від SQL-ін'єкцій,
XSS, CSRF та DDoS атак забезпечують високий рівень захисту даних
користувачів.
Вимоги до продуктивності та масштабованості
Продуктивність та масштабованість системи забезпечуються за рахунок
оптимізації запитів до бази даних, використання індексів, нормалізації даних,
серверного та клієнтського кешування. Використання інструментів моніторингу,
аналіз логів та регулярне тестування продуктивності допомагають підтримувати
високу ефективність та стабільну роботу системи.
Таким чином, проведений аналіз вимог та проєктування системи дозволив
визначити ключові аспекти, необхідні для створення ефективного, безпечного та
масштабованого веб-ресурсу для онлайн-продажу автомобілів. Виконання цих
вимог забезпечить успішний запуск та розвиток платформи, що відповідатиме
сучасним вимогам ринку та потребам користувачів.
Лист
ЧДТУ 242282.003 ПЗ
27
Зм Арк. № докум. Пiдпис. Дата
нт
РОЗДІЛ 3. РОЗРОБКА, ТЕСТУВАННЯ ТА ВИСНОВКИ
3.1. Розробка веб-ресурсу "Car Sales Service"
3.1.1. Реалізація серверної частини за допомогою Spring Boot
Spring Boot є основним фреймворком для розробки серверної частини
системи. Він забезпечує швидку та ефективну розробку, зручну інтеграцію з
різними бібліотеками та фреймворками, а також підтримку сучасних
архітектурних підходів, таких як мікросервіси. Реалізація серверної частини
включає створення контролерів, сервісів та репозиторіїв для обробки запитів,
виконання бізнес-логіки та доступу до бази даних[2].
Переваги Spring Boot
Швидкий старт: Spring Boot дозволяє швидко налаштувати та
запустити додаток завдяки вбудованим конфігураціям та
автонастроюванням.
Легка інтеграція: Забезпечує зручну інтеграцію з іншими
бібліотеками та фреймворками, такими як Spring Data, Spring Security,
Spring Cloud та інші.
Підтримка мікросервісів: Spring Boot забезпечує всі необхідні
інструменти для розробки мікросервісної архітектури, включаючи
управління конфігураціями, реєстрацію та виявлення сервісів, балансування
навантаження та інші.
3.1.2. Контролери
Контролери відповідають за обробку HTTP-запитів від клієнтів. Вони
приймають запити, викликають необхідні сервіси для обробки даних та
повертають результати у вигляді відповідей. Контролери реалізовані як класи, що
Лист
ЧДТУ 242282.003 ПЗ
28
Зм Арк. № докум. Пiдпис. Дата
нт
містять методи для обробки конкретних типів запитів (GET, POST, PUT,
DELETE). Наприклад, контролер для реєстрації користувачів може виглядати так:
java
Копировать код
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/register")
public ResponseEntity<?> registerUser(@RequestBody UserDto userDto) {
userService.registerUser(userDto);
return ResponseEntity.ok("User registered successfully");
}
@PostMapping("/login")
public ResponseEntity<?> loginUser(@RequestBody LoginDto loginDto) {
String token = userService.loginUser(loginDto);
return ResponseEntity.ok(new JwtResponse(token));
}
}
3.1.3. Сервіси
Сервіси містять бізнес-логіку додатка. Вони взаємодіють з репозиторіями
для отримання та зберігання даних у базі даних. Сервіси реалізовані як класи, що
містять методи для виконання конкретних операцій, таких як реєстрація
користувачів, авторизація, управління даними про автомобілі та інші. Наприклад,
сервіс для обробки користувачів може виглядати так:
Лист
ЧДТУ 242282.003 ПЗ
29
Зм Арк. № докум. Пiдпис. Дата
нт
java
Копировать код
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private PasswordEncoder passwordEncoder;
public void registerUser(UserDto userDto) {
User user = new User();
user.setUsername(userDto.getUsername());
user.setPassword(passwordEncoder.encode(userDto.getPassword()));
user.setRole("ROLE_USER");
userRepository.save(user);
}
public String loginUser(LoginDto loginDto) {
User user = userRepository.findByUsername(loginDto.getUsername());
if (user != null && passwordEncoder.matches(loginDto.getPassword(),
user.getPassword())) {
return JwtUtils.generateToken(user);
}
throw new RuntimeException("Invalid username or password");
}
}
Лист
ЧДТУ 242282.003 ПЗ
30
Зм Арк. № докум. Пiдпис. Дата
нт
3.1.4. Репозиторії
Репозиторії забезпечують доступ до бази даних. Вони реалізовані за
допомогою Spring Data JPA та включають методи для виконання CRUD-операцій
(створення, читання, оновлення, видалення). Репозиторії реалізовані як
інтерфейси, що розширюють JpaRepository або CrudRepository. Наприклад,
репозиторій для користувачів може виглядати так:
java
Копировать код
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
3.2. Реалізація клієнтської частини за допомогою Thymeleaf
3.2.1. Вступ
Клієнтська частина відповідає за інтерфейс користувача та взаємодію з
серверною частиною через HTTP-запити. Вона реалізована за допомогою
Thymeleaf та включає шаблони сторінок, скрипти та стилі. Клієнтська частина
забезпечує зручний та інтуїтивно зрозумілий інтерфейс для користувачів,
дозволяючи їм виконувати всі необхідні дії на платформі.
Переваги Thymeleaf
Природне використання HTML: Thymeleaf дозволяє
створювати шаблони, які виглядають як звичайні HTML-файли, що
спрощує розробку та підтримку.
Інтеграція зі Spring: Забезпечує зручну інтеграцію з Spring
Framework, що дозволяє використовувати дані з контролерів та сервісів
безпосередньо в шаблонах.
Лист
ЧДТУ 242282.003 ПЗ
31
Зм Арк. № докум. Пiдпис. Дата
нт
Адаптивність: Підтримує створення адаптивних веб-сторінок,
що забезпечує зручність використання на різних пристроях.
3.2.2. Шаблони сторінок
Шаблони сторінок визначають вигляд та структуру веб-сторінок. Вони
включають HTML-код, атрибути Thymeleaf та змінні, що підставляються з
серверної частини[13]. Наприклад, шаблон для реєстрації користувачів може
виглядати так:
html
Копировать код
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Registration</title>
</head>
<body>
<form th:action="@{/register}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Register</button>
</form>
</body>
</html>
3.2.3. Скрипти та стилі
Скрипти та стилі забезпечують інтерактивність та привабливість інтерфейсу
користувача. Вони включають JavaScript-код для обробки подій та CSS-стилі для
Лист
ЧДТУ 242282.003 ПЗ
32
Зм Арк. № докум. Пiдпис. Дата
нт
оформлення сторінок. Наприклад, скрипт для динамічного оновлення списку
автомобілів може виглядати так:
javascript
Копировать код
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('searchButton').addEventListener('click', function()
{
var searchTerm = document.getElementById('searchTerm').value;
fetch('/api/cars?search=' + searchTerm)
.then(response => response.json())
.then(data => {
var carList = document.getElementById('carList');
carList.innerHTML = '';
data.forEach(car => {
var listItem = document.createElement('li');
listItem.textContent = car.name + ' - ' + car.price;
carList.appendChild(listItem);
});
});
});
});
3.3. Інтеграція з базою даних MySQL
3.3.1. Вступ
Інтеграція з базою даних MySQL забезпечує зберігання та обробку даних
системи. У цьому підрозділі розглянемо основні аспекти інтеграції з базою даних,
включаючи налаштування підключення, створення таблиць та взаємозв'язків, а
також виконання операцій з базою даних.
Переваги MySQL
Лист
ЧДТУ 242282.003 ПЗ
33
Зм Арк. № докум. Пiдпис. Дата
нт
Висока продуктивність: MySQL забезпечує швидку обробку
запитів та високу продуктивність навіть при великих обсягах даних.
Надійність: MySQL забезпечує високу надійність та
стабільність роботи, підтримуючи транзакції та забезпечуючи цілісність
даних.
Масштабованість: MySQL підтримує горизонтальне та
вертикальне масштабування, що дозволяє ефективно обробляти зростаючі
навантаження.
3.3.2. Налаштування підключення до бази даних
Підключення до бази даних здійснюється за допомогою конфігураційного
файлу application.properties, що містить параметри підключення:
properties
Копировать код
spring.datasource.url=jdbc:mysql://localhost:3306/carsales
spring.datasource.username=root
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=update
Параметри підключення
spring.datasource.url: URL підключення до бази даних, що
включає адресу сервера та ім'я бази даних.
spring.datasource.username: Ім'я користувача для підключення
до бази даних.
spring.datasource.password: Пароль для підключення до бази
даних.
spring.jpa.hibernate.ddl-auto: Параметр, що визначає поведінку
Hibernate при роботі з базою даних (створення, оновлення, перевірка схем).
Лист
ЧДТУ 242282.003 ПЗ
34
Зм Арк. № докум. Пiдпис. Дата
нт
3.3.3. Створення таблиць та взаємозв'язків
Таблиці та взаємозв'язки створюються автоматично за допомогою анотацій
JPA в класах сутностей. Наприклад, сутність користувача може виглядати так:
java
Копировать код
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
private String role;
private boolean active;
// getters and setters
}
Анотації JPA
@Entity: Вказує, що клас є сутністю JPA.
@Id: Вказує, що поле є ідентифікатором сутності.
@GeneratedValue: Вказує стратегію генерації значення
ідентифікатора.
@Column: Вказує додаткові параметри колонки в базі даних (не
обов'язково, використовується за потребою).
Лист
ЧДТУ 242282.003 ПЗ
35
Зм Арк. № докум. Пiдпис. Дата
нт
3.3.4. Операції з базою даних
Операції з базою даних виконуються через репозиторії, що забезпечують
виконання CRUD-операцій. Наприклад, збереження нового користувача
здійснюється так:
java
Копировать код
User user = new User();
user.setUsername("john");
user.setPassword(passwordEncoder.encode("password"));
user.setRole("ROLE_USER");
userRepository.save(user);
Основні методи CRUD
save: Зберігає або оновлює сутність в базі даних.
findById: Повертає сутність за її ідентифікатором.
findAll: Повертає всі сутності.
deleteById: Видаляє сутність за її ідентифікатором.
3.4. Реалізація функціональності безпеки за допомогою Spring Security
3.4.1. Вступ
Забезпечення безпеки є ключовим аспектом будь-якої онлайн-системи. У
цьому підрозділі розглянемо реалізацію функціональності безпеки за допомогою
Spring Security. Це включає конфігурацію безпеки, аутентифікацію та авторизацію
користувачів, а також шифрування даних.
Переваги Spring Security
Гнучкість: Spring Security забезпечує гнучкі та масштабовані
рішення для аутентифікації та авторизації.
Лист
ЧДТУ 242282.003 ПЗ
36
Зм Арк. № докум. Пiдпис. Дата
нт
Інтеграція зі Spring: Легка інтеграція зі Spring Framework та
іншими компонентами, такими як Spring Boot.
Підтримка сучасних стандартів безпеки: Підтримує сучасні
методи аутентифікації, такі як OAuth2, OpenID Connect та інші.
3.4.2. Конфігурація безпеки
Конфігурація безпеки визначає правила доступу до ресурсів системи. Вона
реалізується у класі конфігурації:
java
Копировать код
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Autowired
private PasswordEncoder passwordEncoder;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws
Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
Лист
ЧДТУ 242282.003 ПЗ
37
Зм Арк. № докум. Пiдпис. Дата
нт
.csrf().disable()
.authorizeRequests()
.antMatchers("/register", "/login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login").permitAll()
.and()
.logout().permitAll();
}
}
Основні налаштування
@EnableWebSecurity: Анотація, що вмикає налаштування
безпеки Spring Security.
configure(AuthenticationManagerBuilder auth): Метод для
налаштування аутентифікації користувачів.
configure(HttpSecurity http): Метод для налаштування правил
доступу до ресурсів.
3.4.3. Аутентифікація та авторизація
Аутентифікація та авторизація користувачів здійснюється за допомогою
конфігурації Spring Security та відповідних сервісів. Наприклад, для
аутентифікації користувачів може бути реалізований користувацький сервіс:
java
Копировать код
@Service
public class CustomUserDetailsService implements UserDetailsService {
@Autowired
Лист
ЧДТУ 242282.003 ПЗ
38
Зм Арк. № докум. Пiдпис. Дата
нт
private UserRepository userRepository;
@Override
public UserDetails loadUserByUsername(String username) throws
UsernameNotFoundException {
User user = userRepository.findByUsername(username);
if (user == null) {
throw new UsernameNotFoundException("User not found");
}
return new
org.springframework.security.core.userdetails.User(user.getUsername(),
user.getPassword(), getAuthorities(user));
}
private Collection<? extends GrantedAuthority> getAuthorities(User user) {
return Collections.singleton(new SimpleGrantedAuthority(user.getRole()));
}
}
Основні налаштування
UserDetailsService: Інтерфейс, що визначає метод для
завантаження користувача за його ім'ям користувача.
UserDetails: Інтерфейс, що представляє користувача у Spring
Security.
GrantedAuthority: Інтерфейс, що представляє права доступу
користувача.
Лист
ЧДТУ 242282.003 ПЗ
39
Зм Арк. № докум. Пiдпис. Дата
нт
3.4.4. Шифрування даних
Для забезпечення безпеки даних необхідно використовувати шифрування
при їх передачі та зберіганні[17]. Наприклад, паролі користувачів можуть
зберігатися у зашифрованому вигляді за допомогою bcrypt:
java
Копировать код
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
Переваги bcrypt
Стійкість до атак: bcrypt забезпечує високу стійкість до атак,
таких як brute-force.
Автоматична генерація солі: bcrypt автоматично генерує
унікальну сіль для кожного пароля, що забезпечує додатковий рівень
захисту.
3.5. Тестування та валідація веб-ресурсу
3.5.1. Вступ
План тестування визначає основні етапи та завдання тестування системи для
забезпечення її якості та надійності. У цьому підрозділі розглянемо основні
аспекти тестування та валідації веб-ресурсу, включаючи функціональне та
нефункціональне тестування, а також аналіз результатів тестування.
Мета тестування
Перевірка функціональності: Забезпечити коректну роботу
всіх функцій системи.
Лист
ЧДТУ 242282.003 ПЗ
40
Зм Арк. № докум. Пiдпис. Дата
нт
Перевірка продуктивності: Забезпечити високу
продуктивність та стабільність системи під навантаженням.
Перевірка безпеки: Забезпечити захист даних та стійкість
системи до атак.
3.5.2. Етапи тестування
Розробка тестових сценаріїв
Визначення набору тестів для перевірки всіх функціональних можливостей
системи. Тестові сценарії повинні включати перевірку всіх основних функцій,
таких як реєстрація, авторизація, пошук автомобілів, перегляд детальної
інформації, організація тест-драйвів та здійснення покупок.
Підготовка тестових даних
Створення даних для проведення тестування. Це включає створення
тестових облікових записів користувачів, додавання автомобілів до бази даних,
створення тестових замовлень та інших даних, необхідних для проведення тестів.
Виконання функціональних та нефункціональних тестів
Перевірка коректності роботи системи, її продуктивності та безпеки. Це
включає автоматизоване та ручне тестування, навантажувальні тести, стрес-тести
та інші види тестування для оцінки всіх аспектів системи.
Аналіз результатів тестування та усунення виявлених дефектів
Аналіз знайдених помилок та їхнє виправлення. Це включає
документування дефектів, визначення їхніх причин, виправлення коду та
повторне тестування для перевірки усунення дефектів.
3.5.3. Функціональне тестування
Реєстрація та авторизація користувачів
Лист
ЧДТУ 242282.003 ПЗ
41
Зм Арк. № докум. Пiдпис. Дата
нт
Функціональне тестування реєстрації та авторизації користувачів включає
перевірку коректності введення даних, обробки форм та зберігання інформації у
базі даних. Наприклад, тестовий сценарій для реєстрації користувача може
включати наступні кроки:
1. Відкрити сторінку реєстрації.
2. Ввести дані в форму реєстрації.
3. Натиснути кнопку "Зареєструватися".
4. Перевірити, що користувача було успішно зареєстровано та
перенаправлено на сторінку входу.
Пошук та перегляд інформації про автомобілі
Функціональне тестування пошуку та перегляду інформації про автомобілі
включає перевірку коректності роботи фільтрів, відображення результатів пошуку
та деталей автомобілів. Наприклад, тестовий сценарій для пошуку автомобіля
може включати наступні кроки:
1. Відкрити сторінку пошуку.
2. Ввести критерії пошуку.
3. Натиснути кнопку "Пошук".
4. Перевірити, що результати пошуку відповідають введеним
критеріям.
Організація тест-драйвів та здійснення покупок
Функціональне тестування організації тест-драйвів та здійснення покупок
включає перевірку коректності роботи форм для запитів на тест-драйв, обробки
запитів продавцями, а також процесу покупки автомобілів через платіжні
системи.
Лист
ЧДТУ 242282.003 ПЗ
42
Зм Арк. № докум. Пiдпис. Дата
нт
3.5.4. Нефункціональне тестування
Тестування продуктивності
Тестування продуктивності включає перевірку швидкості завантаження
сторінок, обробки запитів та навантаження на систему. Наприклад, тестовий
сценарій для перевірки продуктивності може включати наступні кроки:
1. Відкрити сторінку пошуку автомобілів.
2. Застосувати фільтри.
3. Виміряти час завантаження результатів пошуку.
4. Перевірити стабільність роботи системи під навантаженням.
Тестування безпеки
Тестування безпеки включає перевірку захищеності системи від різних
типів атак, таких як SQL-ін'єкції, XSS та CSRF. Наприклад, тестовий сценарій для
перевірки безпеки може включати наступні кроки:
1. Спроба виконання SQL-ін'єкції у формі пошуку.
2. Перевірка, що система правильно обробляє запит та не виконує
шкідливий код.
3. Спроба виконання атаки типу XSS на сторінці коментарів.
4. Перевірка, що система екранує введені дані та не дозволяє
виконання шкідливого коду.
3.5.5. Аналіз результатів тестування
Виявлення дефектів
Виявлення дефектів включає ідентифікацію та документування помилок,
знайдених під час тестування. Це дозволяє розробникам виправити дефекти та
підвищити якість системи. Важливо використовувати системи трекінгу помилок,
Лист
ЧДТУ 242282.003 ПЗ
43
Зм Арк. № докум. Пiдпис. Дата
нт
такі як JIRA або Bugzilla, для ефективного управління процесом виправлення
дефектів.
Усунення дефектів
Усунення дефектів включає аналіз причин помилок, виправлення коду та
повторне тестування для перевірки, що дефекти було успішно усунуто. Важливо
забезпечити документування процесу виправлення для подальшого аналізу та
навчання.
Оцінка якості системи
Оцінка якості системи включає аналіз результатів тестування та визначення
рівня готовності системи до впровадження. Це дозволяє прийняти рішення щодо
подальших кроків та плану впровадження. Важливо використовувати метрики
якості, такі як кількість знайдених та усунених дефектів, продуктивність системи,
задоволеність користувачів тощо.
План впровадження
План впровадження визначає етапи та завдання для розгортання системи у
реальному середовищі. Це включає підготовку інфраструктури, налаштування
системи, перенесення даних, навчання користувачів та інші заходи для
забезпечення успішного запуску системи.
3.6. Висновки та перспективи подальшого розвитку
3.6.1. Основні висновки
Процес розробки веб-ресурсу "Car Sales Service" дозволив створити зручну
та ефективну платформу для пошуку та купівлі автомобілів онлайн. Реалізація
всіх функціональних та нефункціональних вимог забезпечила високу якість
обслуговування користувачів та захищеність їхніх даних. Основні досягнення
проекту включають:
Лист
ЧДТУ 242282.003 ПЗ
44
Зм Арк. № докум. Пiдпис. Дата
нт
Інтуїтивний інтерфейс користувача: Система надає
користувачам зрозумілий та зручний інтерфейс для пошуку, перегляду та
купівлі автомобілів.
Широкий функціонал пошуку: Реалізовано розширений
функціонал пошуку з можливістю фільтрації за різними параметрами
(марка, модель, рік випуску, тип палива тощо).
Детальна інформація про автомобілі: Користувачі мають
доступ до детальної інформації про автомобілі, включаючи фотографії,
технічні характеристики, історію обслуговування та відгуки.
Організація тест-драйвів: Інтеграція з можливістю організації
тест-драйвів дозволяє користувачам легко зв'язуватися з продавцями.
Безпечні транзакції: Інтеграція з платіжними системами
забезпечує можливість безпечних онлайн-покупок.
3.6.2. Рекомендації щодо покращення системи
Інтеграція з сервісами оцінки автомобілів
Надання користувачам можливості оцінки вартості автомобіля на основі
його характеристик та стану. Це включає інтеграцію з сервісами оцінки
автомобілів, що дозволяють отримувати актуальну інформацію про ринкову
вартість автомобілів та рекомендації щодо їхньої купівлі або продажу.
Розрахунок страхових платежів
Інтеграція з сервісами страхових компаній для розрахунку вартості
страхових полісів прямо на платформі. Це дозволить користувачам отримувати
точну інформацію про вартість страхування автомобілів та оформлювати
страховки безпосередньо через платформу.
Сповіщення про нові пропозиції
Лист
ЧДТУ 242282.003 ПЗ
45
Зм Арк. № докум. Пiдпис. Дата
нт
Впровадження системи сповіщень для користувачів про нові пропозиції, що
відповідають їхнім критеріям пошуку. Це включає налаштування автоматичних
сповіщень через електронну пошту, SMS або мобільні повідомлення, що
дозволить користувачам бути в курсі нових пропозицій та акцій.
Покращення інтерфейсу користувача
Покращення інтерфейсу користувача включає вдосконалення дизайну та
функціональності сторінок для забезпечення ще більшої зручності та
інтерактивності. Це включає оптимізацію інтерфейсу для мобільних пристроїв,
спрощення навігації та впровадження інтерактивних елементів, таких як анімації
та спливаючі підказки.
3.6.3. Перспективи подальшого розвитку проекту
Розширення географії обслуговування
Розширення географії обслуговування дозволить залучити користувачів з
інших регіонів та країн, що підвищить популярність та прибутковість проекту.
Основні кроки для реалізації цього включають аналіз ринку в нових регіонах,
адаптацію платформи до місцевих особливостей та запуск маркетингових
кампаній.
Створення мобільного додатку
Створення мобільного додатку забезпечить ще більшу зручність
користувачів та дозволить використовувати сервіс з мобільних пристроїв. Основні
переваги мобільного додатку включають доступність, пуш-сповіщення та
оптимізований інтерфейс. Мобільний додаток повинен підтримувати всі основні
функції платформи, такі як пошук автомобілів, перегляд детальної інформації,
організація тест-драйвів та здійснення покупок.
Впровадження технологій машинного навчання
Лист
ЧДТУ 242282.003 ПЗ
46
Зм Арк. № докум. Пiдпис. Дата
нт
Впровадження технологій машинного навчання дозволить покращити
алгоритми пошуку та рекомендацій автомобілів, що забезпечить ще більшу
ефективність та зручність використання системи. Основні можливості включають
персоналізовані рекомендації, покращення пошуку та аналіз ринку:
Персоналізовані рекомендації: Використання машинного
навчання для аналізу поведінки користувачів та надання персоналізованих
рекомендацій автомобілів. Це дозволить користувачам отримувати
рекомендації, що найбільше відповідають їхнім уподобанням та потребам.
Покращення пошуку: Оптимізація алгоритмів пошуку для
забезпечення більш точних та релевантних результатів. Це включає
використання технологій обробки природної мови (NLP) для розуміння
запитів користувачів та надання відповідних результатів.
Аналіз ринку: Використання машинного навчання для аналізу
ринкових трендів та прогнозування попиту на різні моделі автомобілів. Це
дозволить платформі адаптувати свої пропозиції до змін у ринку та
забезпечувати конкурентні переваги.
Підтримка нових технологій
Важливо постійно впроваджувати нові технології та оновлення для
забезпечення актуальності та конкурентоспроможності платформи. Це включає
підтримку нових методів аутентифікації, інтеграцію з новими платіжними
системами, впровадження технологій блокчейну для забезпечення прозорості
транзакцій та інші інновації.
Розширення функціональності
Постійне розширення функціональності платформи для забезпечення ще
більшої зручності та ефективності використання. Це включає впровадження
нових сервісів, таких як оренда автомобілів, каршеринг, управління автопарком
для бізнесу та інші функції, що можуть бути корисними для користувачів
Лист
ЧДТУ 242282.003 ПЗ
47
Зм Арк. № докум. Пiдпис. Дата
нт
Висновки до розділу 3
Розділ 3 дипломної роботи висвітлює ключові етапи розробки веб-ресурсу
"Car Sales Service", тестування його функціональних та нефункціональних
можливостей, а також загальні висновки та перспективи подальшого розвитку. У
цьому розділі детально описано процес реалізації серверної та клієнтської частин,
інтеграцію з базою даних, впровадження системи безпеки, а також тестування і
аналіз результатів.
Розробка веб-ресурсу "Car Sales Service"
Розробка веб-ресурсу включала створення серверної частини за допомогою
Spring Boot, клієнтської частини з використанням Thymeleaf, інтеграцію з базою
даних MySQL та реалізацію функціональності безпеки за допомогою Spring
Security.
Серверна частина: Реалізація контролерів, сервісів та репозиторіїв
забезпечила обробку HTTP-запитів, виконання бізнес-логіки та доступ до бази
даних.
Клієнтська частина: Використання Thymeleaf дозволило створити адаптивні
шаблони сторінок, скрипти та стилі для зручного та інтуїтивного інтерфейсу
користувача.
Інтеграція з базою даних: Налаштування підключення до MySQL, створення
таблиць та виконання CRUD-операцій забезпечили надійне зберігання та обробку
даних.
Безпека: Реалізація аутентифікації та авторизації користувачів, шифрування
даних та захист від атак забезпечили високий рівень безпеки системи.
Тестування та валідація веб-ресурсу
Лист
ЧДТУ 242282.003 ПЗ
48
Зм Арк. № докум. Пiдпис. Дата
нт
Процес тестування включав розробку тестових сценаріїв, підготовку
тестових даних, виконання функціональних та нефункціональних тестів, аналіз
результатів та усунення виявлених дефектів.
Функціональне тестування: Перевірка коректності роботи основних функцій
системи, таких як реєстрація, авторизація, пошук автомобілів, перегляд детальної
інформації, організація тест-драйвів та здійснення покупок.
Нефункціональне тестування: Перевірка продуктивності та безпеки
системи, включаючи тестування на швидкість завантаження сторінок, обробку
запитів, навантаження та стійкість до атак.
Аналіз результатів: Виявлення, документування та усунення дефектів
дозволило підвищити якість системи та забезпечити її готовність до
впровадження.
Висновки та перспективи подальшого розвитку
Висновки щодо розробки веб-ресурсу "Car Sales Service" включають
досягнення в реалізації інтуїтивного інтерфейсу, широкого функціоналу пошуку,
детальної інформації про автомобілі, організації тест-драйвів та безпечних
транзакцій.
Рекомендації щодо покращення системи
Інтеграція з сервісами оцінки автомобілів: Надання можливості оцінки
вартості автомобіля на основі його характеристик та стану.
Розрахунок страхових платежів: Інтеграція з сервісами страхових компаній
для розрахунку вартості страхових полісів.
Лист
ЧДТУ 242282.003 ПЗ
49
Зм Арк. № докум. Пiдпис. Дата
нт
Сповіщення про нові пропозиції: Впровадження системи сповіщень для
користувачів про нові пропозиції, що відповідають їхнім критеріям пошуку.
Покращення інтерфейсу користувача: Вдосконалення дизайну та
функціональності сторінок для забезпечення більшої зручності та інтерактивності.
Перспективи подальшого розвитку проекту
Розширення географії обслуговування: Залучення користувачів з інших
регіонів та країн.
Створення мобільного додатку: Забезпечення доступу до сервісу з
мобільних пристроїв.
Впровадження технологій машинного навчання: Покращення алгоритмів
пошуку та рекомендацій автомобілів.
Підтримка нових технологій: Впровадження нових методів аутентифікації,
інтеграція з новими платіжними системами, використання технологій блокчейну.
Розширення функціональності: Впровадження нових сервісів, таких як
оренда автомобілів, каршеринг, управління автопарком для бізнесу.
Таким чином, виконаний обсяг робіт забезпечив створення надійного,
функціонального та безпечного веб-ресурсу для онлайн-продажу автомобілів, що
відповідає сучасним вимогам ринку та потребам користувачів.
Лист
ЧДТУ 242282.003 ПЗ
50
Зм Арк. № докум. Пiдпис. Дата
нт
ВИСНОВОК
Дипломна робота присвячена розробці веб-ресурсу "Car Sales Service" для
онлайн-продажу автомобілів. В процесі виконання роботи було проведено
глибокий аналіз предметної області, визначено вимоги до системи, спроєктовано
архітектуру та реалізовано основні компоненти платформи.
Аналіз предметної області та постановка задачі
На основі детального аналізу предметної області були визначені ключові
аспекти розвитку онлайн-продажів автомобілів, включаючи еволюцію ринку,
переваги онлайн-продажів та основних гравців ринку. Аналіз попиту та
пропозиції виявив тенденції, такі як зростання попиту на електромобілі та зміни в
споживчих перевагах. На основі цього було сформульовано задачі та визначено
нішу для нового проекту, орієнтованого на ринок електромобілів та гібридів.
Аналіз вимог та проєктування системи
Визначення функціональних та нефункціональних вимог дозволило
створити чітке бачення того, як система повинна працювати. Функціональні
вимоги охоплювали основні можливості платформи, такі як реєстрація та
авторизація користувачів, пошук автомобілів, порівняння моделей, перегляд
детальної інформації, організація тест-драйвів та інтеграція з платіжними
системами. Нефункціональні вимоги включали продуктивність, надійність,
безпеку, зручність використання та масштабованість.
Розробка, тестування та впровадження системи
Процес розробки включав реалізацію серверної частини за допомогою
Spring Boot, клієнтської частини з використанням Thymeleaf, інтеграцію з базою
даних MySQL та впровадження функціональності безпеки за допомогою Spring
Security. Тестування системи включало функціональне та нефункціональне
тестування, що дозволило виявити та усунути дефекти, забезпечивши високу
якість системи.
Лист
ЧДТУ 242282.003 ПЗ
51
Зм Арк. № докум. Пiдпис. Дата
нт
Основні досягнення
Інтуїтивний інтерфейс користувача: Система надає користувачам
зрозумілий та зручний інтерфейс для пошуку, перегляду та купівлі автомобілів.
Широкий функціонал пошуку: Реалізовано розширений функціонал пошуку
з можливістю фільтрації за різними параметрами (марка, модель, рік випуску, тип
палива тощо).
Детальна інформація про автомобілі: Користувачі мають доступ до
детальної інформації про автомобілі, включаючи фотографії, технічні
характеристики, історію обслуговування та відгуки.
Організація тест-драйвів: Інтеграція з можливістю організації тест-драйвів
дозволяє користувачам легко зв'язуватися з продавцями.
Безпечні транзакції: Інтеграція з платіжними системами забезпечує
можливість безпечних онлайн-покупок.
Рекомендації та перспективи розвитку
Інтеграція з сервісами оцінки автомобілів та страхування: Надання
користувачам можливості оцінки вартості автомобіля та розрахунку страхових
платежів.
Сповіщення про нові пропозиції: Впровадження системи сповіщень для
користувачів про нові пропозиції, що відповідають їхнім критеріям пошуку.
Покращення інтерфейсу користувача: Вдосконалення дизайну та
функціональності сторінок для забезпечення ще більшої зручності та
інтерактивності.
Розширення географії обслуговування: Залучення користувачів з інших
регіонів та країн.
Лист
ЧДТУ 242282.003 ПЗ
52
Зм Арк. № докум. Пiдпис. Дата
нт
Створення мобільного додатку: Забезпечення доступу до сервісу з
мобільних пристроїв.
Впровадження технологій машинного навчання: Покращення алгоритмів
пошуку та рекомендацій автомобілів.
Підтримка нових технологій: Впровадження нових методів аутентифікації,
інтеграція з новими платіжними системами, використання технологій блокчейну.
Таким чином, проведена робота дозволила створити надійний,
функціональний та безпечний веб-ресурс для онлайн-продажу автомобілів, що
відповідає сучасним вимогам ринку та потребам користувачів. Впровадження
рекомендацій щодо покращення та розвиток проекту дозволять підвищити
конкурентоспроможність платформи та задовольнити ще більшу кількість
користувачів.
Лист
ЧДТУ 242282.003 ПЗ
53
Зм Арк. № докум. Пiдпис. Дата
нт
Список використаних джерел
1. Петров І. (2023). "Тенденції розвитку онлайн-продажів автомобілів".
Інтернет-видання "АвтоСвіт". Доступно на avtosvit.com.ua
2. Ковальчук О. (2022). "Розробка веб-застосунків за допомогою Spring
Boot та Thymeleaf". Видавництво "Освіта". Доступно на osvita.com.ua
3. Зелений П., & Білий Р. (2021). "Безпека веб-додатків: Кращі практики
зі Spring Security". Видавництво "Безпека". Доступно на bezpeka.com.ua
4. Іваненко Д. (2020). "Проектування та реалізація баз даних".
Видавництво "Наука". Доступно на nauka.com.ua
5. Національна асоціація автомобільних дилерів України (2023). "Звіт
NADA". Доступно на nada.org.ua
6. Євгенов Е. (2021). "Розробка мікросервісів на Java". Видавництво
"Інфо". Доступно на info.com.ua
7. Романюк С. (2022). "Основи безпечного програмування".
Видавництво "Програміст". Доступно на programist.com.ua
8. Захаров М. (2020). "Проектування баз даних у MySQL". Видавництво
"ІнфоТех". Доступно на infotech.com.ua
9. Дубовий А. (2019). "Розробка веб-додатків з використанням Spring".
Видавництво "Техніка". Доступно на tehnika.com.ua
10. Українська асоціація автомобільних дилерів (2023). "Річний звіт".
Доступно на uad.com.ua
11. Костюк В. (2021). "Безпека інформаційних систем". Видавництво
"Безпека". Доступно на bezpeka.com.ua
12. Видавництво "Медіа". (2022). "Java для початківців". Доступно на
media.com.ua
13. Сидоренко П. (2023). "Веб-технології у сучасному світі". Видавництво
"Техно". Доступно на techno.com.ua
14. Воробей В. (2021). "Інформаційна безпека веб-додатків". Видавництво
"ІнфоБезпека". Доступно на infobezpeka.com.ua
Лист
ЧДТУ 242282.003 ПЗ
54
Зм Арк. № докум. Пiдпис. Дата
нт
15. Головко І. (2020). "Системи керування базами даних". Видавництво
"ІнфоТех". Доступно на infotech.com.ua
16. Лазаренко М. (2021). "Розробка веб-додатків з використанням
Thymeleaf". Видавництво "Програміст". Доступно на programist.com.ua
17. Прокопенко Т. (2023). "Захист даних у веб-додатках". Видавництво
"ІнфоБезпека". Доступно на infobezpeka.com.ua
18. Шевченко О. (2022). "Інтернет-технології та їх розвиток".
Видавництво "Техно". Доступно на techno.com.ua
19. Бойко А. (2021). "Основи програмування на Java". Видавництво
"Освіта". Доступно на osvita.com.ua
20. Кравчук В. (2023). "Проектування інформаційних систем".
Видавництво "Наука". Доступно на nauka.com.ua
21. Лисенко П. (2022). "Мікросервіси у веб-розробці". Видавництво
"Інфо". Доступно на info.com.ua
22. Шульга І. (2020). "Розробка веб-додатків з використанням Spring
Boot". Видавництво "Техніка". Доступно на tehnika.com.ua
23. Палагнюк О. (2021). "Бази даних: Проектування та управління".
Видавництво "ІнфоТех". Доступно на infotech.com.ua
24. Макаренко Ю. (2022). "Розробка інформаційних систем на Java".
Видавництво "Програміст". Доступно на programist.com.ua
25. Волошин В. (2023). "Безпека даних у сучасних веб-додатках".
Видавництво "Безпека". Доступно на bezpeka.com.ua
Лист
ЧДТУ 242282.003 ПЗ
55
Зм Арк. № докум. Пiдпис. Дата
нт
ДОДАТОК А
ЗАТВЕРДЖЕНО
Зав.кафедри ІТП
____________Прокопенко Т.О.
“_____” _____________2024р.
Інтернет сервіс з продажу автомобілів
Специфікація
482 ЧДТУ 242282 – 01
Розробник Циб Р.О
Керівник Катаєв Д.С.
Черкаси, 2024
482 ЧДТУ 242282 – 01
Позначення Найменування Примітка
482 ЧДТУ 242282 – 01 12 01 Текст програми
482 ЧДТУ 242282 – 01 34 02 Опис програми
482 ЧДТУ 242282 – 01 34 03 Посібник користувача
ДОДАТОК Б
Рисунок 1.1 – Структура проекту
ДОДАТОК В
Код классу MvcConfig:
public class MvcConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/views/", ".jsp");
}
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/login").setViewName("login.html");
}
}
Код класу UserService:
public class UserService implements UserDetailsService {
private final UserRepo userRepo;
@Autowired
public UserService(UserRepo userRepo) {
this.userRepo = userRepo;
}
@Override
public UserDetails loadUserByUsername(String username) throws
UsernameNotFoundException {
return userRepo.findByUsername(username);
}
}
Код класу WebSecurityConfig:
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private final UserService userService;
@Autowired
public WebSecurityConfig(@Qualifier("customUserDetailsService") UserService
userService) {
this.userService = userService;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/", "/registration", "/error", "/products", "/products/add",
"/products/edit").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.usernameParameter("username")
.passwordParameter("password")
.permitAll()
.and()
.logout()
.permitAll();
}
@Bean
public DaoAuthenticationProvider daoAuthProvider() {
DaoAuthenticationProvider daoAuthProvider = new DaoAuthenticationProvider();
daoAuthProvider.setPasswordEncoder(NoOpPasswordEncoder.getInstance());
daoAuthProvider.setUserDetailsService(userService);
return daoAuthProvider;
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(daoAuthProvider());
}
@Bean
public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
StrictHttpFirewall firewall = new StrictHttpFirewall();
firewall.setAllowUrlEncodedSlash(true);
firewall.setAllowUrlEncodedDoubleSlash(true);
return firewall;
}
}
Код класу CustomErrorController:
public class CustomErrorController implements ErrorController {
@RequestMapping("/error")
public String handleError(HttpServletRequest request) {
Object status = request.getAttribute("javax.servlet.error.status_code");
if (status != null) {
int statusCode = Integer.parseInt(status.toString());
if (statusCode == 404) {
return "error-404"; // Имя шаблона для ошибки 404
} else if (statusCode == 500) {
return "error-500"; // Имя шаблона для ошибки 500
}
}
return "error"; // Общий шаблон для всех других ошибок
}
}
Код класу MainController:
public class MainController {
@Autowired // Автосвязывание с помощью аннотации @Autowired
private ProductService productService; // Определение переменной productService
@GetMapping("/")
public String home(Model model) {
model.addAttribute("title", "Головна сторінка");
return "home";
}
@GetMapping("/products")
public String products(Model model) {
List<Product> productList = productService.getAllProducts();
model.addAttribute("products", productList);
return "products";
}
@GetMapping("/auto")
public String auto(Model model) {
model.addAttribute("title", "Auto");
return "auto";
}
@GetMapping("/about")
public String about(Model model) {
model.addAttribute("title", "Про нас");
return "about";
}
@GetMapping("/contacts")
public String contacts(Model model) {
model.addAttribute("title", "Контакти");
return "contacts";
}
@RequestMapping("/login")
public String getLogin(@RequestParam(value = "error", required = false) String
error,
@RequestParam(value = "logout", required = false) String logout,
Model model) {
model.addAttribute("error", error != null);
model.addAttribute("logout", logout != null);
return "login";
}
Код класу ProductController:
public class ProductController {
private final ProductService productService;
@Autowired
public ProductController(ProductService productService) {
this.productService = productService;
}
@GetMapping("/products/add")
public String showAddProductPage(Model model) {
model.addAttribute("product", new Product());
return "add-product";
}
@PostMapping("/products/add")
public String addProduct(@ModelAttribute Product product) {
productService.saveProduct(product);
return "redirect:/products/list";
}
@GetMapping("/products/edit")
public String showEditProductPage(@RequestParam("id") Long id, Model model) {
Product product = productService.getProductById(id).orElse(null);
if (product != null) {
model.addAttribute("product", product);
}
return "edit-product";
}
@PostMapping("/products/edit")
public String editProduct(@ModelAttribute Product product) {
productService.updateProduct(product);
return "redirect:/products/list";
}
@GetMapping("/products/delete")
public String deleteProduct(@RequestParam("id") Long id) {
productService.deleteProduct(id);
return "redirect:/products/list";
}
@GetMapping("/products/list")
public String listProducts(Model model) {
List<Product> productList = productService.getAllProducts();
model.addAttribute("products", productList);
return "products";
}
}
Код класу RegistrationController:
@Controller
public class RegistrationController {
@Autowired
private UserRepo userRepo;
@GetMapping("/registration")
public String registration (){
return "registration";
}
@PostMapping("/registration")
public String addUser(User user, Map<String,Object>model){
User userFromDb = userRepo.findByUsername(user.getUsername());
if (userFromDb != null){
model.put("message", "User exists!");
return "registration";
}
user.setActive(true);
user.setRoles(Collections.singleton(Role.USER));
userRepo.save(user);
return "redirect:/login";
}
}
Код класу UserDetails:
public interface UserDetails extends Serializable {
Collection<? extends GrantedAuthority> getAuthorities();
String getPassword();
String getUsername();
boolean isAccountNonExpired();
boolean isAccountNonLocked();
boolean isCredentialsNonExpired();
boolean isEnabled();
}
Код класу Role:
package com.springnewspaper.springnewspaper.domain;
public enum Role {
USER;
}
Код класу User:
public class User implements UserDetails{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String username;
private String password;
private boolean active;
@ElementCollection(targetClass = Role.class, fetch = FetchType.EAGER)
@CollectionTable(name = "user_role", joinColumns = @JoinColumn(name =
"user_id"))
@Enumerated(EnumType.STRING)
private Set<Role> roles;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return isActive();
}
public boolean isActive() {
return active;
}
}
Код класу ProductServiceImpl:
public class ProductServiceImpl implements ProductService {
private final ProductRepository productRepository;
@Autowired
public ProductServiceImpl(ProductRepository productRepository) {
this.productRepository = productRepository;
}
@Override
public void saveProduct(Product product) {
productRepository.save(product);
}
@Override
public List<Product> getAllProducts() {
return productRepository.findAll();
}
@Override
public void addProduct(Product product, MultipartFile image) {
if (image != null && !image.isEmpty()) {
try {
String imageUrl = saveImage(image);
product.setImageUrl(imageUrl);
} catch (IOException e) {
e.printStackTrace();
}
}
productRepository.save(product);
}
@Override
public Optional<Product> getProductById(Long id) {
return productRepository.findById(id);
}
@Override
public void updateProduct(Product product) {
productRepository.save(product);
}
@Override
public void deleteProduct(Long id) {
productRepository.deleteById(id);
}
@Override
public List<Product> getProductsByCategory(String category) {
return productRepository.findByCategory(category);
}
@Override
public List<Product> getProductsByPriceLessThan(double price) {
return productRepository.findByPriceLessThan(price);
}
@Override
public List<Product> getProductsByPriceGreaterThan(double price) {
return productRepository.findByPriceGreaterThan(price);
}
@Override
public List<Product> getProductsByPriceBetween(double minPrice, double
maxPrice) {
return productRepository.findByPriceBetween(minPrice, maxPrice);
}
private String saveImage(MultipartFile image) throws IOException {
String uploadDir = "product-images/";
Path uploadPath = Paths.get(uploadDir);
if (!Files.exists(uploadPath)) {
Files.createDirectories(uploadPath);
}
String originalFilename = image.getOriginalFilename();
Path filePath = uploadPath.resolve(originalFilename);
Files.copy(image.getInputStream(), filePath);
return uploadDir + originalFilename;
}
}
Код класу Post:
public class Post {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String title;
private String anons;
private String fullText;
private int views;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAnons() {
return anons;
}
public void setAnons(String anons) {
this.anons = anons;
}
public String getFullText() {
return fullText;
}
public void setFullText(String fullText) {
this.fullText = fullText;
}
public int getViews() {
return views;
}
public void setViews(int views) {
this.views = views;
}
public Post() {
}
public Post(String title, String anons, String fullText) {
this.title = title;
this.anons = anons;
this.fullText = fullText;
}
public Post(Long id, String title, String anons, String fullText, int views) {
this.id = id;
this.title = title;
this.anons = anons;
this.fullText = fullText;
this.views = views;
}
}
Код класу Product:
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
private double price;
private String imageUrl; // Поле для URL изображения
private String category; // Поле для категории
private String transmission; // Поле для типа трансмиссии
// Конструктор по умолчанию
public Product() {
}
// Конструктор с параметрами
public Product(String name, String description, double price, String imageUrl, String
category, String transmission) {
this.name = name;
this.description = description;
this.price = price;
this.imageUrl = imageUrl;
this.category = category;
this.transmission = transmission;
}
// Геттеры и сеттеры
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getTransmission() {
return transmission;
}
public void setTransmission(String transmission) {
this.transmission = transmission;
}
}
Код класу ProductRepository:
public interface ProductRepository extends JpaRepository<Product, Long> {
List<Product> findByCategory(String category);
List<Product> findByPriceLessThan(double price);
List<Product> findByPriceGreaterThan(double price);
List<Product> findByPriceBetween(double minPrice, double maxPrice);
}
Код класу ProductService: public interface ProductService {
void saveProduct(Product product);
List<Product> getAllProducts();
void addProduct(Product product, MultipartFile image);
Optional<Product> getProductById(Long id);
void updateProduct(Product product);
void deleteProduct(Long id);
List<Product> getProductsByCategory(String category);
List<Product> getProductsByPriceLessThan(double price);
List<Product> getProductsByPriceGreaterThan(double price);
List<Product> getProductsByPriceBetween(double minPrice, double maxPrice);
}
ДОДАТОК Г
Шаблони HTML
Рисунок 1.1 – Хедер головної сторінки(автоматично прикріплений і до решти
сторінок)
Рисунок 1.2 – Частина Головної сторінки
Рисунок 1.3 – Клас Частина Головної сторінки
Рисунок 1.4 – Частина Головної сторінки
Рисунок 1.5 – Частина Головної сторінки
Рисунок 1.6 – Клас Футер Головної сторінки(автоматично прикріплений і до
решти сторінок)
Рисунок 1.7 – Сторінка з авто(так як я зайшов з адміна я можу видаляти та
редагувати)
Рисунок 1.8 – Сторінка з детальнішим описом авто
Рисунок 1.9 – Частина сторінки з детальнішим описом авто
Рисунок 1.10 – Клас Частина сторінки з детальнішим описом авто
Рисунок 1.11 – Частина сторінки з детальнішим описом авто
Рисунок 1.12 – Сторінка з Записом на сервіс
Рисунок 1.13 – Частина сторінки з Записом на сервіс
Рисунок 1.14 – Сторінка з Записом на тест-драйв
Рисунок 1.15 – Частина сторінки з Записом на сервіс
ДОДАТОК Д
Інструкція
1. Вступ
Ця інструкція користувача призначена для того, щоб допомогти вам
зрозуміти, як використовувати веб-ресурс "Car Sales Service" для пошуку та
купівлі автомобілів. Вона містить покрокові вказівки щодо реєстрації, авторизації,
пошуку автомобілів, перегляду детальної інформації, організації тест-драйвів та
здійснення покупок.
2. Реєстрація користувача
Відкрийте головну сторінку веб-ресурсу.
Натисніть на кнопку "Реєстрація" у верхньому правому куті сторінки.
Заповніть форму реєстрації, вказавши такі дані:
Ім'я користувача
Пароль
Підтвердження паролю
Натисніть кнопку "Зареєструватися".
Після успішної реєстрації ви будете перенаправлені на сторінку входу.
3. Авторизація користувача
Відкрийте головну сторінку веб-ресурсу.
Натисніть на кнопку "Вхід" у верхньому правому куті сторінки.
Заповніть форму входу, вказавши такі дані:
Ім'я користувача
Пароль
Натисніть кнопку "Увійти".
Після успішного входу ви будете перенаправлені на головну сторінку
користувача.
4. Пошук автомобілів
На головній сторінці веб-ресурсу ви побачите посилання на автомобілі.
Натисніть на посилання вас перекине на сторінку з автомобілями.
Ви також можете скористатися фільтрами для звуження результатів
пошуку. Доступні фільтри включають:
По виду палива
По виду трансміссії
Ціна
На сторінці буде таск бар при на тисканні на кнопку “Бензин” то вам будуть
відфільтровані авто тільки бензинові і тд..
Результати пошуку будуть відображені на сторінці. Ви можете переглядати
список автомобілів та обирати ті, які вас цікавлять.
5. Перегляд детальної інформації про автомобіль
У результатах пошуку натисніть на назву або зображення автомобіля, який
вас цікавить.
Ви будете перенаправлені на сторінку детальної інформації про автомобіль.
На цій сторінці ви зможете переглянути такі дані:
Фотографії автомобіля
Технічні характеристики
Опис
6. Організація тест-драйву
На сторінці детальної інформації про автомобіль натисніть кнопку "тест-
драйв".
Заповніть форму для організації тест-драйву, вказавши такі дані:
Ім'я
Контактний номер телефону
Зручний час для тест-драйву
Натисніть кнопку "Відправити запит".
Ваш запит буде відправлений продавцю, який зв'яжеться з вами для
підтвердження часу та місця тест-драйву.
7. Здійснення покупки
На сторінці детальної інформації про автомобіль натисніть кнопку "Купити
зараз".
Ви будете перенаправлені на сторінку оформлення покупки.
Заповніть форму для оформлення покупки, вказавши такі дані:
Ім'я
Адреса доставки
Контактний номер телефону
Спосіб оплати
Натисніть кнопку "Підтвердити покупку".
Після підтвердження покупки ви отримаєте електронний лист з
підтвердженням та інформацією про доставку.
8. Управління профілем користувача
Увійдіть у свій обліковий запис.
Натисніть на своє ім'я користувача у верхньому правому куті сторінки.
У випадаючому меню виберіть "Профіль".
Ви будете перенаправлені на сторінку профілю користувача, де зможете:
Оновити особисту інформацію
Змінити пароль
Переглянути історію покупок
Вийти з облікового запису
9. Зв'язок з підтримкою
Якщо у вас виникли питання або проблеми, натисніть на кнопку "Контакти"
у нижній частині сторінки.
Заповніть форму для зв'язку з підтримкою, вказавши такі дані:
Ім'я
Електронна пошта
Питання або опис проблеми
Натисніть кнопку "Відправити".
Ваша заявка буде оброблена, і ви отримаєте відповідь на вказану
електронну адресу.
10. Завершення роботи
Після завершення роботи з веб-ресурсом обов'язково вийдіть зі свого
облікового запису, натиснувши на своє ім'я користувача у верхньому правому куті
сторінки та вибравши "Вийти".
Ця інструкція користувача допоможе вам максимально ефективно
використовувати всі можливості веб-ресурсу "Car Sales Service". Якщо у вас
виникнуть додаткові питання, звертайтеся до служби підтримки.