Проблеми захисту лісу в Україні та шляхи вирішення
Курсовая (1).pdf
1. Національний університет кораблебудування імені адмірала Макарова
Навчально-науковий інститут комп'ютерних наук та управління проектами
КУРСОВИЙ ПРОЕКТ (РОБОТА)
з ” Технології розробки програмного забезпечення на
сучасних платформах”
(назва дисципліни)
на тему: Онлайн бібліотека
Студента II курсу 2151 групи спеціальності 121
Гурмази.М.В
(прізвище та ініціали)
Керівник cтарший викладачі,
Беркунський Є.Ю,
Смикодуб.Т.Г
Національна шкала ________________
Кількість балів: __________Оцінка: ECTS _____
Члени комісії ________________ Беркунський Є.Ю
(підпис)
________________ Смикодуб.Т.Г
(підпис)
2. АНОТАЦІЯ
У даній курсовій роботі розглядається проєкт WEB додатку “Онлайн
Бібліотека”. Робота виконана на 50 сторінках, містить 8 рисунків. Робота
містить 1 програму, з текстом програми та результатами. Робота виконана
українською мовою.
ABSTRACT
This course work represents the WEB application project "Online library)". The
work is completed on 50 pages, contains 8 drawings. The work contains 1
program, with program text and results. The work was done in Ukrainian.
ЗМІСТ
ВСТУП…………………………………………………………………....4
1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ …… ………………………………....5
2. ПОСТАНОВКА ЗАДАЧІ……… ….…………………………………………..6
3. ДІАГРАМА СУТНІСТЬ-ЗВ'ЯЗОК…….…………………………………….6
4. ДІАГРАМА КЛАСІВ……..………………………………………………………7
5. ДІАГРАМА ПОСЛІДОВНОСТІ…..…………………………………………8
6. ДІАГРАМА СТАНІВ…..…………………………………………………………9
7. ЗАСОБИ РОЗРОБКИ……………………….…………………………………..10
8. РЕЗУЛЬТАТИ РОЗРОБКИ…………………….……………………………..13
ВИСНОВКИ…………………………………………………………………………....45
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ…………………………...……..…..46
ДОДАТОК А…………………………………………………………….…...………..47
2
3. ВСТУП
При наявності великої кількості користувачів та книг у бібліотеці важливо
мати зручні методи обслуговування та ефективний облік доступних книг та
користувачів. Методом обслуговування для користувачів може бути
можливість читання книг, а адміністраторам необхідно мати можливість
редагування та додавання нових книг.
Для ведення обліку доступних книг та користувачів ідеально підходять бази
даних, де інформація зберігається в зрозумілому та зручному форматі, з
можливістю легкої маніпуляції (додавання/видалення записів, редагування
даних).
Як предметну область я обрав "Онлайн бібліотеку", для якої необхідно
створити веб-додаток з можливістю використання бази даних для обліку
доступних книг та користувачів. Ця база даних може містити наступну
інформацію: назву книги, автора, видавницвто, жанр, рік видання, опис,
кількість сторінок, текст.
Онлайн бібліотека повинна надавати користувачам можливість перегляду
доступних книг, пошуку за різними критеріями, перегляду деталей про книгу
та читання її. Адміністратори повинні мати можливість редагування існуючих
книг, додавання нових книг.
4. 3
АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ
Онлайн бібліотека – це електронний сервіс, який надає користувачам доступ
до електронних книг та інших текстових матеріалів через Інтернет. Зазвичай
онлайн бібліотеки дозволяють користувачам шукати та переглядати книги.
Робота онлайн бібліотеки може бути організована так: користувач
реєструється на веб-сайті, після чого отримує доступ до каталогу електронних
книг. Користувач може шукати книги за назвою та жанром, вибирати книги
для читання.
Як адміністратор онлайн бібліотеки може виступати бібліотекар, який керує
каталогом електронних книг та забезпечує доступність книг для користувачів.
Адміністратор може додавати нові книги до каталогу, змінювати інформацію
про книги, видаляти книги. Для забезпечення безпеки та конфіденційності
даних користувача онлайн бібліотека може використовувати систему
реєстрації та авторизації користувачів, а також захист даних з використанням
шифрування. Також може бути реалізована система контролю доступу, яка
дозволяє обмежувати доступ до книг залежно від статусу користувача.
Таким чином, онлайн бібліотека дозволяє користувачам насолоджуватися
читанням книг у зручний час та місце, а адміністратору – забезпечувати
доступність та оновлення каталогу електронних книг.
5. 4
ПОСТАНОВКА ЗАДАЧІ
Завдання полягає у створенні веб-додатку для надання послуг онлайн
бібліотеки. Веб-додаток повинен мати привабливий та легко сприйнятний
графічний інтерфейс користувача. Він має включати перелік доступних послуг
та можливість користувачам реєструватися та отримувати доступ до
електронних книг.
Основні функціональні можливості веб-додатку для онлайн бібліотеки
включають:
1. Реєстрація користувачів: Користувачі можуть створювати облікові записи в
системі, вводячи необхідні дані, такі як ім'я, електронна адреса та пароль.
2. Авторизація та аутентифікація: Користувачі можуть увійти в систему за
допомогою свого облікового запису, використовуючи введений при
реєстрації пароль. Система повинна забезпечити безпеку даних та
обмеження доступу до функцій, що призначені тільки для адміністратора.
3. Перегляд каталогу книг: Користувачі можуть переглядати каталог
електронних книг, використовуючи різні фільтри, такі як назва, автор,
жанр, рік видання і т.д. Кожна книга повинна мати відповідну сторінку з
описом, обкладинкою та можливістю перегляду додаткових деталей.
4. Пошук книг: Користувачі можуть використовувати пошукову функцію для
знаходження конкретної книги.
5. Читання книг: Користувачі мають можливість відкривати електронні книги
для читання в онлайн-режимі.
10. ДІАГРАМА CТАНІВ
Діаграма станів для класу UserService.java представлена на рисунку 5
9
ДІАГРАМА CТАНІВ
Діаграма станів для класу BookController.java представлена на рисунку 4.
12. ЗАСОБИ РОЗРОБКИ
Для розробки проєкту мною було обране програмне забезпечення
JetBrains IntelliJ IDEA є провідним середовищем швидкого розвитку мови
Java. IntelliJ IDEA — це високотехнологічний комплекс тісно інтегрованих
інструментів програмування, включаючи інтелектуальний редактор джерел з
передовими інструментами автоматизації, потужні інструменти рефакторингу
коду, вбудовану підтримку технологій J2EE, інтеграційні механізми з
середовищем тестування Ant/ JUnit та системами контролю версій,
унікальний інструмент оптимізації та перевірки перевірки коду, а також
інноваційний візуальний графічний інтерфейс. Унікальні особливості JetBrains
IntelliJ IDEA знімають з програміста тягар рутинної роботи, допомагають
своєчасно усунути помилки і поліпшити якість коду, піднявши продуктивність
розробника на нову висоту.
Мовою програмування була обрана Java 17 версії. Java —
об’єктноорієнтована мова програмування, випущена 1995 року компанією
«Sun Microsystems» як основний компонент платформи Java. З 2009 року
мовою займається компанія «Oracle», яка того року придбала «Sun
Microsystems». В офіційній реалізації Java-програми компілюються у байт-
код, який при виконанні інтерпретується віртуальною машиною для
конкретної платформи.
«Oracle» надає компілятор Java та віртуальну машину Java, які
задовольняють специфікації Java Community Process, під ліцензією GNU
General Public License.
Об'єктно–орієнтоване програмування (ООП) — це модель програмування
яка базується на стверджені того, що програма це сукупність об’єктів які
взаємодіють між собою. Кожен об’єкт в цій моделі є незалежним, і він
здатний отримувати, обробляти дані та відправляти ці дані іншим об’єктам. В
ООП використано моделі успадкування, модульності, поліморфізму та
інкапсуляції.
Maven — це інструмент побудови та управління проектами, який зазвичай
використовується в фреймворках, побудованих на Java. Він розроблений
Apache Software Foundation. Maven, слово з мови ідиш, означає «збирач
знань». Він був введений, щоб зробити процес запуску побудови в
Джакартському турбінному проекті.
11
13. Maven контролюється файлом Project Object Model (pom). Під час роботи з
вбудованими фреймворками Java нам часто доводиться мати справу з
низкою залежностей.
До того, як Maven з'явився в картині, усі залежності, які є не чим іншим, як
файлами JAR, повинні були бути додані в наш фреймворк вручну. Крім того,
нам потрібно було подбати про оновлення програмного забезпечення в
нашому проекті.
HTML (Hypertext Markup Language — Мова гіпертекстової розмітки) — це
мова опису структури сторінок документів, яка дозволяє звичайний текст
форматувати в абзаци, заголовки, списки та інші структури, створювати
посилання на інші сторінки. Це текстова мова, в якій інструкції з
форматування, що називаються тегами, вбудовані в розділи документа, які
містять конкретну інформацію. Теги повідомляють браузерам, як
форматувати і представляти інформацію на екрані.
CSS (абревіатура від Cascading Style Sheets, що в перекладі означає каскадні
таблиці стилів) — це спеціальна мова (мова стилів), за допомогою якої
описують вигляд документів (як і де відображати елементи вебсторінки),
написаних мовами розмітки даних. Найчастіше CSS використовується для
документів, котрі розмічені мовою HTML, XHTML та XML.
Lombok — це плагін компілятора, який додає в Java нові ключові слова і
перетворює анотації в Java-код, зменшуючи зусилля на розробку і
забезпечуючи деяку додаткову функціональність.
Spring MVC забезпечує архітектуру патерна Model - View - Controller
(Модель - Відображення - Контролер) — структура для створення слабо
пов'язаних веб-додатків, що розділяє основні аспекти їх розробки: об'єкти,
бізнес-логіку та зовнішній вигляд програми. Основна перевага архітектури
MVC — можливість міняти один із компонентів програми, суттєво не
впливаючи на інші.
Spring Security - це популярний модуль у Spring Framework, який забезпечує
аутентифікацію і авторизацію веб-додатків. Він додає безпеку на рівні URL,
методу або навіть на рівні доменних об'єктів.
12
14. MariaDB — відгалуження реляційної СУБД MySQL, що розробляється
спільнотою під ліцензією GPL. MariaDB повністю сумісна з програмами, що
використовують MySQL, а перехід на цю СУБД виправданий тим, що MySQL
вже не так активно розвивається. У MariaDB вбудовані покращений
оптимізатор запитів, безпечна та швидка реплікація, швидші індекси для
механізму зберігання даних MEMORY(HEAP), більш висока продуктивність
перекодування символів, використання пулу потоків, а також багато інших
покращень, що позитивно впливають на продуктивність.
Результати Розробки
Результати розробки загалом представлені на лістингах 1-20. Javaкласи
представлені на лістингах 1-11. Сторінки HTML на лістингах 12-18.
Сторінки css на лістингах 19-20.
Лістинг 1
OnLibApplication.java
package com.example.OnLib;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class OnLibApplication {
public static void main(String[] args) {
SpringApplication.run(OnLibApplication.class, args);
}
}
Лістинг 2
SecurityConfig.java
package com.example.OnLib.configurations;
import com.example.OnLib.services.CustomUserDetailsService;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import
org.springframework.security.config.annotation.authentication.builders.Authen
ticationManagerBuilder;
import
org.springframework.security.config.annotation.method.configuration.EnableGlo
balMethodSecurity;
import
org.springframework.security.config.annotation.web.builders.HttpSecurity;
import
org.springframework.security.config.annotation.web.configuration.EnableWebSec
urity;
13
46. Висновки
Виконуючи цей проєкт, був розроблений web-додаток для обслуговування
клієнтів та зберігання інформації щодо наданих послуг онлайн бібліотеки.
Додаток забезпечує автоматизовану реєстрацію користувачів для отримання
доступу до бібліотечних ресурсів та зручний доступ для адміністратора для
керування бібліотекою.
Основні функціональні можливості додатку включають:
1. Реєстрація користувачів: Додаток дозволяє користувачам створювати
облікові записи, заповнюючи необхідні дані. Пошук та перегляд книг:
Користувачі можуть шукати книги за різними критеріями, такими як назва,
жанр. Після знаходження книги, користувач може переглянути її опис,
обкладинку та іншу відповідну інформацію.
2. Керування каталогом книг: Адміністратор бібліотеки має доступ до панелі
адміністрування, де він може додавати нові книги, редагувати існуючі
записи книг. Аутентифікація та авторизація: Додаток забезпечує механізми
аутентифікації користувачів для забезпечення безпеки доступу до
функціональності бібліотеки.
45
47. СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Kathy Sierra, Bert Bates. Head first java, 2nd edition. O`REILLY 2012
2. Дінеж Раджпут. Spring. Всі паттерни програмування. Pakt 2019
3. Balaji Varanasi. Introducing Maven: A Build Tool for Today's Java Developers
2nd ed. Apress 2019
4. Використання бібліотеки Lombok:
веб-сайт. URL: https://projectlombok.org/features/
5. Приклади застосування spring: веб-сайт. URL: https://spring.io/guides
6. Застосування maven: веб-сайт. URL: https://maven.apache.org/
7. Використання шаблонізатора thymeleaf:
веб-сайт. URL: https://www.thymeleaf.org/documentation.html
46