Создание WEB-ресурса, с использованием реляционной базы данных
Заказать уникальную курсовую работу- 42 42 страницы
- 22 + 22 источника
- Добавлена 18.06.2024
- Содержание
- Часть работы
- Список литературы
Введение 2
1 Анализ многоуровневых архитектур при разработке приложения 4
1.1 Описание предметной области 6
1.2 Словарь предметной области 8
1.3 Анализ существующих программных решений 11
1.4 Техническое задание 17
1.4.1 Функциональные требования 18
1.4.2 Требования к экранным формам 19
1.4.3 Модель данных 20
1.4.4 Нефункциональные требования 21
2 Создание веб-приложения типа “Социальная сеть” с использованием БД MySQL 23
2.1 Проектирование и разработка классов 24
2.2.Проектирование и разработка базы данных 27
2.3.Проектирование пользовательского интерфейса 28
2.4 Иерархическая структура приложения 32
2.4.1 Описание основных программных модулей 33
2.5 Тестирование программного комплекса 35
2.5.1 Результаты тестов и их анализ 36
2.6 Руководство пользователя 37
Заключение 38
Список литератур 39
Bootstrap — это популярный фреймворк, который был использован для быстрого и эффективного оформления интерфейса, предоставляя готовые компоненты и стили для единообразного вида и функциональности на всех устройствах. Turbo-laravel, в свою очередь, позволял быстро и плавно обновлять контент на страницах, не перезагружая их полностью, что повысило отзывчивость интерфейса и улучшило пользовательский опыт. Для создания динамических страниц на стороне сервера использовались Blade-шаблоны Laravel, предоставляющие удобные и мощные инструменты для управления представлениями, такие как наследование шаблонов, секции и включения. Наконец, Vite — это современный инструмент, обеспечивающий быструю разработку и оптимизацию производительности, позволяющий использовать современные стандарты JavaScript и CSS, а также предоставляющий возможности для управления модульным кодом и горячей замены модулей в процессе разработки.Иллюстрации веб-интерфейса приложения приводится в следующих рисунках (рис. 6–рис. 12).Рисунок 6 – Главная страница неавторизованного пользователяРисунок 7 – Страница поста неавторизованного пользователяДля совершения более свободных действий в сайте нужно авторизоваться/зарегистрироваться (рис . 8).Рисунок 8 – Страница регистрации при неправильном введении данныхМожно убедиться, что после регистрация не пускает на другие защищенные страницы, т.к. для начала нужно верифицировать почту.Рисунок 9 – Страница куда попадает пользователь при правильном введении данныхДля проверки и передачи писем в ходе разработки было использовано Mailpit. Теперь можно догадаться, что для верификации почты пользователь перенаправляется туда (рис. 10).Рисунок 10 –MailpitПосле успешной авторизации уже можно заходить в пост — оставить комментарий, лайкать пост, или в настройки — изменить личные данные, фото профиля и т.д. (рис. 11).Рисунок 11 – Доступ после успешной авторизацииТакже осуществлено страница админа, в котором он может управлять, наблюдать, модифицировать существующие ресурсы(рис. 12).Рисунок 12 – Страница админа2.4 ИЕРАРХИЧЕСКАЯ СТРУКТУРА ПРИЛОЖЕНИЯВ данном параграфе приведено последовательном порядке иерархическая структура основных классов в ходе разработки Laravel-проекта, который был спроектирован автором (рис. 13).Рисунок 13 – Иерархическая структура проекта2.4.1 ОПИСАНИЕ ОСНОВНЫХ ПРОГРАММНЫХ МОДУЛЕЙНиже приведено описание основных программных модулей в рамках разработки в Laravel Framework.app/ — Содержит основное приложение и классы логики:Console/ — Команды консоли Artisan.Exceptions/ — Обработка исключений.Http/ — Веб-слой приложения:Controllers/ — Контроллеры, обрабатывающие HTTP-запросы.Middleware/ — Промежуточные слои, обрабатывающие запросы до и после контроллеров.Requests/ — Специфические HTTP-запросы и их валидация.Models/ — Eloquent модели, представляющие данные и взаимодействие с базой данных.bootstrap/ — Загрузка начальных настроек фреймворка:cache/ — Кеш компиляции фреймворка.config/ — Файлы конфигурации для различных аспектов приложения.database/ — Все, что связано с базой данных:factories/ — Фабрики для генерации тестовых данных.migrations/ — Миграции базы данных.seeders/ — Начальные данные для базы данных.public/ — Публично доступные файлы, такие как index.php, загрузка ассетов, изображений и других ресурсов.resources/ — Ресурсы приложения:lang/ — Файлы локализации.views/ — Шаблоны Blade.js/, css/ — Файлы JavaScript и CSS.routes/ — Определения маршрутов для веб, API и консольных команд:web.php — Маршруты для веб-приложения.api.php — Маршруты для API.console.php — Маршруты для консольных команд.storage/ — Хранилище временных файлов:app/ — Пользовательские файлы.framework/ — Системные файлы.logs/ — Логи приложения.tests/ — Тесты приложения:Feature/ — Тесты функциональности.Unit/ — Модульные тесты.vendor/ — Пакеты Composer.Также приведена иллюстрация структуры проекта того, как это выглядит обобщенно:project-root/│├── app/│ ├── Console/│ ├── Exceptions/│ ├── Http/│ │ ├── Controllers/│ │ ├── Middleware/│ │ ├── Requests/│ ├── Models/│ └── Providers/│├── bootstrap/│ └── cache/│├── config/│├── database/│ ├── factories/│ ├── migrations/│ └── seeders/│├── public/│ └── index.php│├── resources/│ ├── lang/│ ├── views/│ └── js/│├── routes/│ ├── web.php│ ├── api.php│ └── console.php│├── storage/│ ├── app/│ ├── framework/│ └── logs/│├── tests/│ ├── Feature/│ └── Unit/│├── vendor/│└── artisan2.5ТЕСТИРОВАНИЕ ПРОГРАММНОГО КОМПЛЕКСАВ ходе разработки приложения для тестирования использовалось как явное тестирование, при котором каждая функция проверяется самостоятельно через дебаги, браузера и консоли, как и ручное тестирование, которое проводилось для обеспечения надежности и корректности работы приложения Laravel. Целью было проверить функциональность и производительность различных компонентов, выявить ошибки и убедиться, что интеграция различных частей системы работает без сбоев. Чтобы работать с тестированием в Laravel было выполнено ряд нужных действий, в том числе:Интегрировано Mockery в среду тестирования Laravel. Это включало установку Mockery через Composer и настройку его для использования в тестах PHPUnit.Разработано комплексные тестовые примеры, охватывающие различные аспекты приложения, включая взаимодействие с пользователем, обработку данных и бизнес-логику.Основное внимание уделялось таким критическим функциям, как аутентификация пользователей, проверка данных, CRUD-операции и конечные точки API.й:Mockery использовано для имитации зависимостей и внешних сервисов. Это позволило изолированно тестировать отдельные компоненты, не полагаясь на реальные реализации. Были созданы объекты для имитации ответов от таких сервисов, как электронная почта и API сторонних разработчиков.Ручное тестирование с помощью Mockery помогло обеспечить надежность и стабильность приложения Laravel.2.5.1 РЕЗУЛЬТАТЫ ТЕСТОВ И ИХ АНАЛИЗПри тестировании с помощью Mockery, были получены следующие результаты:Успешная изоляция зависимостей:Mockery эффективно изолировал зависимости, позволяя целенаправленно тестировать отдельные компоненты без внешнего воздействия.Макетные объекты точно имитировали ответы от таких сервисов, как уведомления по электронной почте, платежные шлюзы и API сторонних разработчиков.Выявление и устранение ошибок:В процессе тестирования было выявлено и устранено несколько ошибок. Проблемы, связанные с аутентификацией пользователей, проверкой данных и операциями CRUD, решались систематически.Сообщения об ошибках и трассировка стека дали ценные сведения, что позволило быстро отладить и доработать код.Проверка бизнес-логики:Бизнес-логика приложения была тщательно проверена. Тесты подтвердили, что логика работала так, как ожидалось, в различных условиях, обеспечивая корректность критических функций.Расширенное тестовое покрытие:Были разработаны комплексные тестовые примеры, охватывающие широкий спектр сценариев и побочных ситуаций. Это привело к увеличению тестового покрытия и уверенности в стабильности приложения.Верификация вызовов Mockery:Методы проверки Mockery использовались для того, чтобы убедиться, что имитаторы вызываются с правильными параметрами и частотой. Это обеспечило корректную реализацию взаимодействия с зависимостями.2.6 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯВ этом параграфе приводится руководство пользователя о том, как правильно запустить проект для работы данным приложением.Для установки и эксплуатации конечного продукта — веб-приложения необходимо выполнить все шаги, приведенные ниже:Нужно установить MySQL если у вас еще не установленаМожете установить с официального сайта: https://dev.mysql.com/downloads/mysql/Установка NodeJs и Yarn. Установите последнюю версию с официального сайта:https://nodejs.org/en/download/package-managerПосле установки NodeJs, откройте Командную строку, выполните: npm install -g yarnУстановите Visual Studio Code: https://code.visualstudio.com/downloadСборка проекта:Откройте проект в текстовом редакторе Visual Studio Code (VS Code). Откройте терминал нажав на сочетание клавиш ctrl + j, и выполните следующие команды:cp .env.example .envcomposer installphp artisan key:generatephp artisan storage:linkПосле сборки, нужно запустить миграции:Перед этим проверьте файл .env, в нем нужно в поле DB_PASSWORD указать пароль от MySQL, который вы указали при установке. Выполните(это мигрирует все таблицы в БД mysql):php artisan migrate --seedПосле выполнения этой команды увидите такое сообщение: Would you like to create it? (yes/no) [no], введите y и нажмите Enter5. Запускаем проект:yarn installyarn buildyarn dev6. Откройте еще один терминал не закрывая текущий, нажав на После чего, выполните следующую командуphp artisan serveТеперь можете открыть страницу http://localhost:8000/ в браузере, чтобы открыть само приложение:Для проверки писем используется Mailpit, чтобы запустить откройте 3-й терминал, выполните./mailpit.exeТеперь при регистрации можно подтвердить свой email через это. (изначально можно авторизоваться уже существующим аккаунтом, login которого — admin@example.com, а пароль — adminpass)В браузере откройте страницу http://localhost:8025/ЗАКЛЮЧЕНИЕВ ходе работы был изучен и проанализирован материал, посвященный многоуровневым архитектурам. Полученные знания позволили понять, как в мире разработки приложений используются различные технологии для построения сложных и масштабируемых систем.Были разработаны и изучены классы, обеспечивающие функциональность серверной части приложения. Применение принципов объектно-ориентированного программирования (ООП) способствовало созданию структурированного и легко поддерживаемого кода.В рамках работы была создана и изучена база данных MySQL, использованная для серверной части приложения. Благодаря использованию Eloquent ORM удалось упростить взаимодействие с базой данных и обеспечить высокую производительность и гибкость в работе с данными.В процессе разработки и тестирования были проведены демонстрации, показывающие стабильную и корректную работу приложения. Результаты этих тестов подтвердили соответствие приложения заявленным функциональным требованиям и ожиданиям пользователей.Проведен всесторонний анализ результатов тестирования, включающий как ручное тестирование с использованием Mockery, так и автоматические тесты. Итоги тестирования показали высокую надежность и стабильность приложения, выявленные ошибки были успешно устранены.Проект позволил глубже понять принципы разработки многоуровневых приложений, наглядно продемонстрировать объектно-ориентированное программирование (ООП) и Eloquent ORM, а также доказать концепцию системы, отвечающей всем поставленным требованиям.СПИСОК ЛИТЕРАТУРМартин, Р. М. Чистая архитектура. Искусство разработки программного обеспечения. — СПб.: Питер, 2021. — 352 с.: ил. — (Серия «Библиотека программиста»). Мартин, Р. М. Чистый код: создание, анализ и рефакторинг. — СПб.: Питер, 2019. — 464 с.: ил.Гамма, Э., Хелм, Р., Джонсон, Р., Влиссидес, Д. Паттерны объектно-ориентированного проектирования. — [Издательство], [Год издания]. — [Количество страниц]. — ISBN [номер ISBN].Кузнецов, М., Симдянов, И. и др. PHP 5. Практика создания Web-сайтов. — [Издательство], [Год издания]. — [Количество страниц]. — ISBN [номер ISBN].Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. — СПб.: Питер, 2001. — 368 с.: ил. (Серия «Библиотека программиста»).Кузнецов М. В., Симдянов И. В., Голышев С. В. PHP 5 на примерах. — СПб.: БХВ-Петербург, 2005. — 576 с.: ил.Фаулер М. UML. Основы, 3-е издание. — Пер. с англ. — СПб.: Символ-Плюс, 2004. — 192 с.: ил.Смирнов, Н. В. Проектирование информационных систем: Конспект лекций.Уоллс, К. Spring в действии. 6-е изд. / пер. с англ. А. Н. Киселева. – М.: ДМК Пресс, 2022. – 544 с.: ил.Джозеф Албахари, Бен Албахари. “C# 7.0. Карманный справочник”.“Справочник «Паттерны проектирования»” [Электронный ресурс] – Режим доступа: http://design-pattern.ru/patterns/index.html“N-Tier Architecture” [Электронный ресурс] – Режим доступа: https://stackify.com/n-tier-architecture/“A Practical Guide to Deploying a Complex Production-Level Three-Tier Architecture on AWS” [Электронный ресурс] – Режим доступа: https://dev.to/kelvinskell/a-practical-guide-to-deploying-a-complex-production-level-three-tier-architecture-on-aws-2hf0“4 типа архитектуры программного обеспечения” [Электронный ресурс] – Режим доступа: https://medium.com/nuances-of-programming/4-типа-архитектуры-программного-обеспечения-917133174724“Многоуровневая архитектура” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Многоуровневая_архитектура“Spring Framework” [Электронный ресурс] – Режим доступа: https://docs.spring.io/spring-framework/reference/overview.html“C#” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/C_Sharp“Ruby on Rails” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Ruby_on_Rails“Django” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Django“Express (фреймворк)” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Express_(фреймворк)“Laravel” [Электронный ресурс] – Режим доступа: https://laravel.su/docs/11.x/installation#vstrecaite-laravel “Laravel” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Laravel
2. Мартин, Р. М. Чистый код: создание, анализ и рефакторинг. — СПб.: Питер, 2019. — 464 с.: ил.
3. Гамма, Э., Хелм, Р., Джонсон, Р., Влиссидес, Д. Паттерны объектно-ориентированного проектирования. — [Издательство], [Год издания]. — [Количество страниц]. — ISBN [номер ISBN].
4. Кузнецов, М., Симдянов, И. и др. PHP 5. Практика создания Web-сайтов. — [Издательство], [Год издания]. — [Количество страниц]. — ISBN [номер ISBN].
5. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. — СПб.: Питер, 2001. — 368 с.: ил. (Серия «Библиотека программиста»).
6. Кузнецов М. В., Симдянов И. В., Голышев С. В. PHP 5 на примерах. — СПб.: БХВ-Петербург, 2005. — 576 с.: ил.
7. Фаулер М. UML. Основы, 3-е издание. — Пер. с англ. — СПб.: Символ-Плюс, 2004. — 192 с.: ил.
8. Смирнов, Н. В. Проектирование информационных систем: Конспект лекций.
9. Уоллс, К. Spring в действии. 6-е изд. / пер. с англ. А. Н. Киселева. – М.: ДМК Пресс, 2022. – 544 с.: ил.
10. Джозеф Албахари, Бен Албахари. “C# 7.0. Карманный справочник”.
11. “Справочник «Паттерны проектирования»” [Электронный ресурс] – Режим доступа: http://design-pattern.ru/patterns/index.html
12. “N-Tier Architecture” [Электронный ресурс] – Режим доступа: https://stackify.com/n-tier-architecture/
13. “A Practical Guide to Deploying a Complex Production-Level Three-Tier Architecture on AWS” [Электронный ресурс] – Режим доступа: https://dev.to/kelvinskell/a-practical-guide-to-deploying-a-complex-production-level-three-tier-architecture-on-aws-2hf0
14. “4 типа архитектуры программного обеспечения” [Электронный ресурс] – Режим доступа: https://medium.com/nuances-of-programming/4-типа-архитектуры-программного-обеспечения-917133174724
15. “Многоуровневая архитектура” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Многоуровневая_архитектура
16. “Spring Framework” [Электронный ресурс] – Режим доступа: https://docs.spring.io/spring-framework/reference/overview.html
17. “C#” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/C_Sharp
18. “Ruby on Rails” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Ruby_on_Rails
19. “Django” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Django
20. “Express (фреймворк)” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Express_(фреймворк)
21. “Laravel” [Электронный ресурс] – Режим доступа: https://laravel.su/docs/11.x/installation#vstrecaite-laravel
22. “Laravel” [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Laravel