Файл: Разработка серверного WEB приложения для туристического агентства «Travelerland».pdf
Добавлен: 28.03.2023
Просмотров: 155
Скачиваний: 4
Каждая страница ресурса представлена отдельным php модулем.
Так главная страница – модуль index.php. Страница «О нас» - модуль about.php.
Несмотря на различное назначение и наполнение разных страниц и используемых для их формирования модулей, каждая из них содержит заголовок, меню и подвал сайта.
Для отображения данных подразделов страниц информационного ресурса имеет смысл вынести их формирование в отдельные модули и подключать их по мере необходимости.
Так модуль nav.php – используется для показа меню, модуль footer.php – для отображения подвала.
Для организации связи с базой данных и получения из нее информации необходимо установить соединение с сервером базы данных. Связь с базой данных устанавливается при помощи определенных параметров, характеризующих соединение. Для упрощения и параметризации организации связи с базой данных системы подготовим модуль database.php, в котором определим параметры конфигурации соединения. Исходный код данного модуля:
<?php
$host = "91.227.16.31";
$user = "h146736_travel";
$password = "5O6m7Z3r";
$database = "h146736_travel";
$port = 3306;
?>
Описание структуры базы данных и ее функций
После проработки структуры сайта и разработаем базу данных системы. Сначала необходимо подготовить инфологическую модель базы данных.
Инфологическая модель предметной области представляет собой описание структуры и динамики предметной области, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Это описание выражается в терминах не отдельных объектов предметной области и связей между ними, а их типов, связанных с ними ограничений целостности и тех процессов, которые приводят к переходу предметной области из одного состояния в другое.
Описание каждой сущности производится при помощи данных, называемых атрибутами или свойствами сущности. Атрибуты, как правило, представляют собой определения в высказывании о сущности и для их обозначения, используют имена существительные естественного языка. Сущности имеют связи друг с другом при посредстве включенных в них атрибутов. Каждое объединение атрибутов, составляющих описание одного реального проявления сущности, представляет из себя экземпляр сущности. Прочими словами, экземпляры сущности – это ее реализации, которые отличаются друг от друга и допускают однозначную идентификацию.
Каждый из атрибутов сущности имеет домен. Домен – это некоторое определенное выражение, описывающее значения, которые может принимать данный атрибут. Другими словами, домен – это определенная область возможных значений атрибута. На информационном уровне моделирования данных сопоставление домена атрибуту носит общий характер. К примеру, текстовый атрибут, числовой атрибут, бинарный, дата или "не определен".
Одним из главных компьютерных способов распознавания сущностей в базе данных является присвоение сущностям идентификаторов. Идентификатор сущности также называется ключом.
Построим описание атрибутов сущностей разрабатываемой системы.
Описание сущности Путевки (Таблица 3.1).
Таблица 3.1 – Атрибуты сущности Путевки
Атрибут |
Ключ |
Значение |
Домен |
Код |
+ |
Идентификатор путевки |
Число |
Наименование |
Наименование тура |
Текст |
|
Продолжительность |
Продолжительность тура в днях |
Число |
|
Стоимость |
Стоимость тура в долларах |
Число |
|
Комментарии |
Кол-во комментариев |
Число |
|
Картинка |
Имя картинки для обложки |
Текст |
Описание сущности Отели (Таблица 3.2).
Таблица 3.2 – Атрибуты сущности Отели
Атрибут |
Ключ |
Значение |
Домен |
Код |
+ |
Идентификатор отеля |
Число |
Наименование |
Наименование отеля |
Текст |
|
Комментарии |
Кол-во комментариев |
Число |
|
Картинка |
Имя картинки для обложки |
Текст |
|
Стоимость |
Стоимость отеля в долларах |
Число |
Описание сущности Обратная связь (Таблица 3.3).
Таблица 3.3 – Атрибуты сущности Обратная связь
Атрибут |
Ключ |
Значение |
Домен |
Код |
+ |
Идентификатор обращения |
Число |
Имя |
Имя пользователя |
Текст |
|
Почта |
Почта пользователя |
Текст |
|
Тема |
Тема письма |
Текст |
|
Сообщение |
Сообщение пользователя |
Текст |
|
Дата |
Дата отправленного письма |
Дата |
Описание сущности Блог (Таблица 3.4).
Таблица 3.4 – Атрибуты сущности Блог
Атрибут |
Ключ |
Значение |
Домен |
Код |
+ |
Идентификатор новости |
Число |
Заголовок |
Заголовок новости |
Текст |
|
Текст |
Текст новости |
Текст |
|
Картинка |
Имя картинки для обложки |
Число |
|
Дата |
Дата новости |
Дата |
Описание сущности Рассылка (Таблица 3.5).
Таблица 3.5 – Атрибуты сущности Рассылка
Атрибут |
Ключ |
Значение |
Домен |
Код |
+ |
Идентификатор почты |
Число |
Почта |
Почта пользователя для рассылки |
Текст |
|
Дата |
Дата подписки |
Дата |
На основе построенных описаний сущностей и их атрибутов построим физическую схему базы данных, представленную далее (Рисунок 3.1).
Рисунок 3.1 – Физическая схема базы данных
Для доступа и управления данными в программном комплексе системы туристического агентства «Travelerland», на уровне бизнес-логики приложения используются хранимые процедуры MySQL.
При помощи данных процедур организовывается управление данными, добавление записей в таблицы, удаление записей, проведение комплексных изменений в нескольких таблицах системы путем использования транзакций.
Описание структуры клиентской части
Описание интерфейса «Главная»
Начало работы начинается с главной страницы сайта (Рисунок 4.1).
Рисунок 4.1 – Главная страница сайта
Главная страница содержит рейтинг 4 лучших туров основанный на количестве отзывов, а также 3 самых популярных отеля (Рисунок 4.2).
Рисунок 4.2 – Лучшие туры и рестораны
Описание интерфейса «Контакты»
Данная страница служит для связи пользователя с администратором для бронирования туров, либо же для решение каких-либо вопросов (Рисунок 4.3).
4.3 Описание интерфейса «Путевки»
На данной странице (Рисунок 4.4) размещаются все актуальные туры отсортированные по количеству отзывов. Пользователь выбирает интересующий его тур после чего связывается с администрацией через форму обратной связи на странице или же по телефону для бронирования.
4.4 Описание интерфейса «Блог»
На данной странице представлены все новости агентства отсортированные по дате публикации (Рисунок 4.5)
Рисунок 4.5 – Блог
Заключение
В ходе выполнения данной работы были решены следующие задачи
- дано общее описание автоматизируемого объекта;
- построена модель базы данных;
- спроектировано и реализовано приложение для работы и управления созданной базой данных с применением web-технологий.
В процессе выполнения работы была создана база данных, с применением среды MySQL. Реализация проекта велась с применением языков CSS, HTML, PHP, а также м использованием языка SQL запросов для обращения и изменения информации в связанной базе данных системы.
Результатом работы явилось достижение целей:
- закрепление теоретического материала по дисциплинам, связанных с изучением баз данных;
- практические навыки создания web-ресурса с применением языка программирования PHP.
Разработана информационная система туристического агентства «Travelerland». Система создана с применением современных средств и технологий, имеет адаптивный дизайн, проверена и протестирована для отображения на мобильных и десктопных устройствах.
Литература
- Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: Учебное пособие / В.Ю. Пирогов. - СПб.: БХВ-Петербург, 2009. - 528 c.
- Вадим Дунаев. HTML, скрипты и стили. BHV, Санкт-Петербург, 2015. ISBN 978-5-9775-3317-1.
- Н. Закас, Джереми Мак-Пик, Джо Фосетт. Ajax для профессионалов. Перевод: Александр Киселев. Символ, Санкт-Петербург, 2015. ISBN 978 5 93286-081-6.
- К. Блессинг, Роб Черни, К. Шмитт. Применение Web-стандартов CSS и Ajax для больших сайтов. Корона-Век, Санкт-Петербург, 2011. ISBN 978 5 7931-0844-7.
- Adobe Dreamweaver CS6. Официальный учебный курс. Эксмо, Москва, 2014. ISBN 978-5-699-69655-0.
- Чои Вин. Как спроектировать современный сайт. Питер, Санкт-Петербург, 2011. ISBN 978-5-459-00579-0.
- А. Годин, К. Джонсон, К. Уоррен, М. Уэбер, Брайан Хоган. Книга веб-программиста: секреты профессиональной разработки веб-сайтов. Питер, Санкт-Петербург, 2013. ISBN 978-5-459-01510-2.
- Алан Купер, Дэйв Кронин, Кристофер Носсел, Роберт Рейман. Алан Купер об интерфейсе. Основы проектирования взаимодействия. Символ, Санкт-Петербург, 2015. ISBN 978-5-93286-132-5.
- Стив Круг. Как сделать сайт удобным. Юзабилити по методу Стива Круга. Питер, Санкт-Петербург, 2010. ISBN 978-5-49807-515-0.
- Кирилл Сухов. HTML 5. Путеводитель по технологии. ДМК, Москва, 2013. ISBN 978-5-94074-910-3.
<?php
include 'database.php';
$mysqlConnect = mysqli_connect($host, $user, $password, $database, $port);
if ($mysqlConnect)
{
$sql = "SELECT * FROM `destinations` ORDER BY `comments` DESC LIMIT 4";
$destinations = mysqli_query($mysqlConnect, $sql);
$sql = "SELECT * FROM `hotels` ORDER BY `comments` DESC LIMIT 3";
$hotels = mysqli_query($mysqlConnect, $sql);
}
if(isset($_POST['button']))
{
$sql = "INSERT INTO mailing (`mail`) VALUES ('".$_POST['mail']."')";
mysqli_query($mysqlConnect, $sql);
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Travelerland - Путешествия по всему миру</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,800,900" rel="stylesheet">
<link rel="stylesheet" href="css/open-iconic-bootstrap.min.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="css/owl.carousel.min.css">
<link rel="stylesheet" href="css/owl.theme.default.min.css">
<link rel="stylesheet" href="css/magnific-popup.css">
<link rel="stylesheet" href="css/aos.css">
<link rel="stylesheet" href="css/ionicons.min.css">
<link rel="stylesheet" href="css/bootstrap-datepicker.css">
<link rel="stylesheet" href="css/jquery.timepicker.css">
<link rel="stylesheet" href="css/flaticon.css">
<link rel="stylesheet" href="css/icomoon.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<?php
include 'nav.php';
?>
<div class="hero-wrap js-fullheight" style="background-image: url('images/bg_1.jpg');" data-stellar-background-ratio="0.5">