Professional Documents
Culture Documents
Course Work
Course Work
Library Project
Курсова робота з дисципліни “Технології проектування програмних систем”
Виконав:
студент групи МКІ-221 Кагітін Д.С.
Перевірив:
доцент кафедри, к.т.н. Пріла О.А.
Чернігів
2023
2
РЕФЕРАТ
Курсовий проект, 20 с., 9 джерел, 1 репозиторій.
В роботі описано процес та результати проектування, розробки веб-
сайту Library Project.
Результат розробки представлено у вигляді репозиторію:
https://github.com/dmytro-kahitin/library_project.git.
Проект Library Project має на меті створити платформу, яка буде
зручним та безпечним інструментом для обміну науковими статтями.
Дана інформаційна система розроблена на базі фреймворку Laravel на
мові програмування PHP
ПРОЕКТУВАННЯ ПРОГРАМНИХ СИСТЕМ, PHP, LARAVEL, БАЗИ
ДАНИХ.
3
ABSTRACT
Course project, 20 pages, 9 sources, 1 repository.
The work describes the process and results of designing and developing the
Library Project website.
The development result is presented in the form of a repository:
https://github.com/dmytro-kahitin/library_project.git.
The Library Project aims to create a platform that will be a convenient and
secure tool for sharing scientific articles.
This information system is developed on the basis of the Laravel framework
in the PHP programming language.
DESIGN OF SOFTWARE SYSTEMS, PHP, LARAVEL, DATABASES.
4
ЗМІСТ
ВСТУП……………………………………………………………………………..5
1 АНАЛІЗ ВИРІШЕННЯ ЗАВДАННЯ……………………….………………….6
1.1 Аналіз предметної області…………………...……………………………….6
1.2 Аналіз виконання завдання…………………………………………………..6
1.3 Призначення системи………………………….……………………………...6
1.4 Вимоги до системи…………………………….……………………………...7
2 ПРОЕКТУВАННЯ…………………………………………………..…………..9
2.1 Вибір інструментальних засобів розробки системи….……………………..9
2.1.1 Система управління базою даних…….........................................................9
2.1.2 Технології реалізації системи......................................................................11
2.2 Проектування архітектури системи………………………………...………12
2.2.1 Проектування шару бізнес-логіки і бізнес-правил……………………....12
2.2.2 Проектування шару доступу до даних…………………………………...14
3 РОЗРОБКА……………………………………………………………………..15
3.1 Розробка бази даних системи…………………………………...…………..15
3.1.1 Розробка схеми бази даних…………………………………...…………...15
3.2 Розробка модулів системи………………………………………...………...17
3.2.1 Розробка модулів шару бізнес логіки і бізнес правил……...…………...17
3.2.2 Розробка модулів шару доступу до даних………...……………………..17
3.2.3 Розробка модулів шару відображення……………………………………17
ВИСНОВКИ…………………………………………………………………..….19
ПЕРЕЛІК ВИКОРИСТАНИХ ДЖЕРЕЛ………………………….……………20
5
ВСТУП
Проектування та розробка веб-сайту є складною та відповідальною
задачею, особливо коли йдеться про платформу, яка має назву Library Project.
Цей сайт буде служити платформою, де користувачі зможуть ділитися своїми
науковими статтями зі спільнотою. Основна мета проектування цього сайту -
забезпечити безпечну, масштабовану та зручну для користувача платформу,
яка забезпечить безперебійну роботу та зручний доступ до наукової
інформації.
У процесі проектування БД для цього сайту, необхідно визначити
структуру даних, яка дозволить ефективно зберігати та управляти науковими
статтями, профілями користувачів, системою рейтингів тощо. Оптимізація
БД допоможе уникнути надмірності збережених даних, зменшити витрати на
зберігання та оновлення інформації про статті та користувачів. Також,
розробка багатофункціонального інтерфейсу користувача дозволить зручно
керувати статтями, шукати та фільтрувати інформацію, а також взаємодіяти з
іншими користувачами.
Для розробки сайту Library Project будуть використані такі технології,
як Laravel та Bootstrap. Laravel - це потужний фреймворк веб-розробки, який
надає зручні інструменти для швидкої розробки та підтримки веб-додатків.
Використання Laravel дозволить побудувати безпечний та надійний сайт з
високою продуктивністю. Bootstrap - це популярний фреймворк для розробки
зручного та естетичного користувацького інтерфейсу. Застосування Bootstrap
дозволить створити привабливий та адаптивний дизайн сайту, що
забезпечить його зручне використання на різних пристроях та розмірах
екранів.
Одним з важливих аспектів розробки сайту Library Project є система
контролю доступу. Рольова система забезпечить обмеження доступу до
статей та функціоналу сайту залежно від ролі користувача. Наприклад,
автори статей можуть мати право редагувати та видаляти свої статті,
адміністратори - керувати всіма статтями та користувачами, а звичайні
користувачі - переглядати статті та залишати коментарі. Це допоможе
забезпечити безпеку даних та забезпечити відповідність з правилами
спільноти.
Загалом, проект Library Project має на меті створити платформу, яка
буде зручним та безпечним інструментом для обміну науковими статтями.
Використання технологій Laravel та Bootstrap дозволить розробити
високоякісний інтерфейс та забезпечити зручну навігацію та функціонал для
користувачів. Крім того, розробка оптимізованої бази даних та системи
контролю доступу забезпечить ефективне управління та безпеку даних.
6
2 ПРОЕКТУВАННЯ
2.1 Вибір інструментальних засобів розробки системи
2.1.1 Система управління базою даних
СУБД повинна забезпечувати реляційну модель роботи з даними. Сама
модель має певний тип зв'язку між сутностями з різних таблиць. Щоб
зберігати і працювати з даними, такий тип СУБД повинен мати певну
структуру (таблиці). У таблицях кожен стовпець може містити дані різного
типу. Кожен запис складається з безлічі атрибутів (стовпців) і має унікальний
ключ, що зберігається в тій же таблиці - всі ці дані взаємопов'язані між
собою, як описано в реляційної моделі.
Розглянемо три основних вільно розповсюджуваних СУБД які можна
було б використовувати для виконання даної робіт:
- SQLite - дуже потужна вбудована система управління
- MySQL - найпопулярніша і поширена СУБД
- PostgreSQL - найбільш функціональна СУБД
SQLite - легко вбудована в додаток база даних. Так як це система
базується на файлах, то вона надає досить широкий набір інструментів для
роботи з нею, в порівнянні з мережевими СУБД. При роботі з цією СУБД
звернення відбуваються безпосередньо до файлів (в ці файлах зберігаються
дані), замість портів і гнізд в мережевих СУБД. Саме тому SQLite дуже
швидка, а також потужна завдяки технологіям обслуговуючих бібліотек.
Переваги SQLite:
- Файлова структура - вся база даних складається з одного файлу, тому
її дуже легко переносити на різні машини
- Використовувані стандарти - хоча може здатися, що ця СУБД
примітивна, але вона використовує SQL. Деякі особливості не
використовуються (RIGHT OUTER JOIN або FOR EACH
STATEMENT), але основні все-таки підтримуються
- Відміна при розробці та тестуванні - в процесі розробки застосунків
часто з'являється необхідність масштабування. SQLite пропонує все що
необхідно для цих цілей, так як складається всього з одного файлу і
бібліотеки написаної на мові C.
MySQL - це найпоширеніша повноцінна серверна СУБД. MySQL дуже
функціональна, що вільно розповсюджується СУБД, яка успішно працює з
різними сайтами і веб застосунками. Навчитися використанню цієї СУБД
10
3 РОЗРОБКА
3.1 Розробка бази даних системи
3.1.1 Розробка схеми бази даних
У процесі створення веб-застосунків з використанням СУБД, після
концептуального моделювання даних, ER-модель перетворюється на
реляційну модель. В цьому процесі сутності та зв'язки ER-моделі
перетворюються на відношення, або таблиці.
В даному проекті створені наступні таблиці:
Таблиця "users" містить такі поля:
- id: bigserial, первинний ключ
- name: character varying, унікальне, обов'язкове поле
- email: character varying, унікальне, обов'язкове поле
- password: character varying, обов'язкове поле
- api_token: character varying, унікальне поле, яке може бути пустим
- details: character varying, поле, яке може бути пустим
- rememberToken: поле для функції "запам'ятати мене"
- timestamps: поля для автоматичного відслідковування часу створення
та оновлення запису
Таблиця "articles" містить такі поля:
- id: bigserial, первинний ключ
- user_id: integer, зовнішній ключ до таблиці "users"
- title: character varying, обов'язкове поле
- content: text, обов'язкове поле
- timestamps: поля для автоматичного відслідковування часу створення
та оновлення запису
Таблиця "reviews" містить такі поля:
- id: bigserial, первинний ключ
- user_id: integer, зовнішній ключ до таблиці "users"
- article_id: integer, зовнішній ключ до таблиці "articles"
- details: text
16
- approved_for_publication: boolean
- timestamps: поля для автоматичного відслідковування часу створення
та оновлення запису
Таблиця "ratings" містить такі поля:
- id: bigserial, первинний ключ
- user_id: integer, зовнішній ключ до таблиці "users"
- article_id: integer, зовнішній ключ до таблиці "articles"
- score: integer
- timestamps: поля для автоматичного відслідковування часу створення
та оновлення запису
Ці таблиці формують схему бази даних для Library Project.
17
ВИСНОВКИ
У ході виконання курсового проєкту "Library Project", було створено
платформу для обміну науковими статтями між користувачами. Сайт було
створено за допомогою Laravel і Bootstrap, що забезпечує високий рівень
безпеки, масштабованості і зручності використання.
На платформі реалізовано рольову систему контролю доступу, що
дозволяє користувачам управляти своїми статтями, шукати та фільтрувати
інформацію, створювати персональні профілі і користуватися системою
рейтингу. Тільки зареєстровані користувачі можуть публікувати свої статті,
кожна з яких перевіряється персоналом сайту перед публікацією. Платформа
також включає в себе систему сповіщень, яка інформує користувачів про
активність, пов'язану з їх статтями.
Адміністратор сайту має доступ до панелі адміністратора для
управління вмістом сайту, користувачами і відгуками. Для подальшого
розвитку проекту, ми розглядаємо можливість додавання додаткових
функцій, таких як форум для обговорення статей, інтеграція з соціальними
мережами для розширення спільноти, здатність завантажувати статті у
форматі PDF, а також впровадження більш комплексної системи рейтингу.
Під час розробки "Library Project", наша команда зосереджувалася на
створенні зручного середовища для спілкування, обміну ідей та досліджень.
Користувачі мають можливість не тільки читати статті, але й ділитися своїми
власними дослідженнями, отримуючи зворотний зв'язок та оцінки від
спільноти.
Особливу увагу в процесі розробки було приділено безпеці. Всі дані
користувачів захищені і використовуються виключно для забезпечення
функціональності сайту. Також було впроваджено важливі механізми
перевірки для забезпечення якості контенту на платформі.
В майбутньому проект може бути розширений функціонал платформи.
Наприклад, є можливість створення форуму для обговорення наукових
питань, введення інтеграції з соціальними мережами для залучення більшої
аудиторії, а також додавання нових форматів публікації статей. Ці зміни
допоможуть зробити "Library Project" ще більш ефективною та зручною
платформою для наукової спільноти.
20