Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка сайта страховой компании “Ресо-гарантия”

Содержание:

ВВЕДЕНИЕ

В настоящее время Интернет становиться все более развитой средой для осуществления коммуникаций. В связи с глобальным развитием сети Интернет, в программировании все более резко начала выделяться отдельная его отрасль web программирование.

Сейчас, чтобы привлечь внимание клиентов, покупателей или партнёров, просто необходимо заявить о себе в интернете, путём создания WEB-сайта. Для этих целей как раз и служит web-сайт, содержащий основную информацию об организации, частном лице, компании, товарах или услугах, прайс-листы, контактные данные. Сайты позволяют хранить, передавать, продавать различные типы информации, не отходя от экрана компьютера.

World Wide Web - глобальная компьютерная сеть, на сегодняшний день содержит миллионы сайтов, на которых размещена всевозможная информация. Люди получают доступ к этой информации посредством использования технологий Internet. Для поиска по интернету используют специальные программы - Web-браузеры, которые существенно облегчают путешествие по бескрайним просторам интернета.

В данной курсовой работе было рассмотрено создание сайта для страховой компании. Данная тема актуальна, поскольку сейчас всё больше людей интересуется страхованием жизни и имущества.

Целью курсовой работы является создание сайта, который предоставит пользователю полную информацию о стоимости, возможных страховых случаях и другую интересующей людей информацию.

1. Техническое задание и выбор средств реализации

Основным видом деятельности организации является заключением договоров и соответственно предоставление страховых услуг для автомобильного транспорта, жилой и коммерческой недвижимости, жизни человека и т.д. Организационная структура компании представлена на рисунке 1.

Руководство компании осуществляет руководитель организации, в непосредственном подчинении которого находятся бухгалтер, IT инженер и руководитель отдела продаж, у последнего в подчинении двое помощников-консультантов (рис.1).

C:\Users\Newkost\Desktop\К2\Диаграммы\Организационная структура магазина.png

Рис. 1 – Организационная структура страховой компании

В обязанности бухгалтера входит работа со всеми финансовыми документами компании, а в обязанности IT инженера компании своевременное обновление информации на сайте.

Информация на сайте должна быть всегда актуальной, поэтому для реализации сайта не подходят технологии, предусматривающие статическую структуру данных, необходимо использовать динамическую загрузку объектов из базы данных, информация в которой будет регулярно обновляться.

Таким образом, в рассматриваемой организации существуют два основных бизнес-процесса, в которых необходимо использование сайта:

  • актуализация информации на сайте (в данном процессе непосредственное участие принимает только IT инженер, который получает данные для обновления от специалистов других отделов),
  • просмотр информации на сайте (в данном процессе принимают участие все специалисты, работающие непосредственно с клиентами, а также сами клиенты).

Для удобства обновления информации необходима реализация отдельного интерфейса для инженера и отдельного интерфейса для обычных пользователей, которые смогут только просматривать страницы сайта. Так как для хранения учетных записей, а также обновляемой информации, должна использоваться база данных, то необходимо выбрать систему управления базами данных, которая будет использована в работе.

Система управления базами данных - это программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также осуществлять к ней контролируемый доступ.

Системы управления базами данных классифицируются по модели данных:

  • Иерархические
  • Сетевые
  • Объектно-ориентированные
  • Реляционные

Как уже было сказано в предыдущей главе, для нашей инфологической модели больше всего подходит реляционная даталогическая модель, а, соответственно, и реляционная СУБД.

Также СУБД подразделяются по способу доступа к базе данных:

Файл-серверные: (Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.)

Файлы данных централизованно располагаются на файл-сервере, а СУБД – на каждой рабочей станции. Доступ СУБД к данным осуществляется через локальную сеть.

Достоинства: низкая нагрузка на процессор файлового сервера.

Недостатки: потенциально высокая загрузка локальной сети; затруднённость или невозможность централизованного управления; затруднённость или невозможность обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД; в системах с низкой интенсивностью обработки данных и низкими пиковыми нагрузками на БД. Данная технология считается устаревшей.

Клиент-серверные: (Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché, ЛИНТЕР)

Располагаются на сервере вместе с БД и осуществляют доступ к БД непосредственно, в монопольном режиме.

Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность.

Недостатки: повышенные требования к серверу.

Встраиваемые: (OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Microsoft SQL Server Compact, ЛИНТЕР)

Могут поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки, предназначены для локального хранения данных своего приложения, не рассчитана на коллективное использование в сети.

Учитывая необходимость использования базы данных в сети, а также высокие требования к надежности, доступности и безопасности, для решаемой задачи подходят клиент-серверные СУБД.

Из приведенных выше клиент-серверных СУБД была выбрана MySQL, так как:

  • является одной из самых быстрых баз данных из имеющихся на современном рынке
  • является высокопроизводительной и относительно простой в использовании СУБД
  • работает на языке запросов SQL
  • количество строк в таблицах может достигать 50 миллионов
  • сервер позволяет одновременно подключаться неограниченному количеству пользователей
  • возможен и с помощью приложений, поддерживающих ODBC
  • предназначена для работы в сети и может быть доступна через Internet
  • снабжена развитой системой защиты от несанкционированного доступа
  • отлично работает как под управлением самых различных версий UNIX, так и под управлением систем, таких как Windows и OS/2
  • имеет ограниченный размер

Также необходимо выбрать, каким образом будет представлена пользователю форма авторизации. Так как авторизация будет происходить при входе пользователя на сайт, то наиболее логичным является использование языка гипертекстовой разметки HTML вместе с php

Основные архитектурные черты:

  • слабая типизация,
  • динамическая типизация,
  • прототипное программирование,
  • автоматическое управление памятью,
  • функции как объекты первого класса.

Для приема запросов со стороны сервера и взаимодействия с базой данных будет использован язык программирования PHP. PHP является скриптовым языком общего назначения, который интенсивно применяется для разработки веб-приложений.

В настоящее время данный язык поддерживается подавляющим большинством хостинг-провайдеров, а также является одним из лидеров среди языков, которые применяются для создания динамических веб-сайтов.

Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Данный проект распространяется под собственной лицензией, несовместимой с GNU GPL.

Выбранные языки программирования и технологии:

  • язык запросов – SQL,
  • система управления базами данных – MySQL,
  • язык гипертекстовой разметки – HTML,
  • язык программирования на стороне сервера – PHP.

2. Описание модулей серверной части программы и их взаимодействие

Серверная часть программы отвечает за взаимодействие клиентской части программы с базой данных, а также за формирование динамического содержания страниц сайта. В структуре серверной части приложения содержатся три основных модуля (рисунок 2), каждый из которых отвечает за определенную функциональность системы:

  • модуль управления пользователями отвечает за регистрацию и авторизацию пользователей,
  • модуль управления данными отвечает за добавление, редактирование и удаление данных из базы данных,
  • модуль отображения данных отвечает за формирование динамического содержания страниц.

C:\Users\Newkost\Desktop\К2\Диаграммы\Общая структура серверной части приложения.png

Рис. 2 – Общая структура серверной части приложения

На рисунке 3 представлено дерево вызова программных модулей, используемых в работе серверной части приложения.

C:\Users\Newkost\Desktop\К2\Диаграммы\Дерево вызова программных модулей.png

Рис. 3 – Дерево вызова программных модулей

Таблица описания программных модулей (Таблица 1):

Программный модуль

Пакет

Описание

Авторизация

Модуль управления пользователями

Проверяет данные введенные пользователем. При отсутствии пользователя с указанными данными производит перенаправление на страницу регистрации, при наличии пользователя типа «Администратор» производит перенаправление на страницу администратора, при наличии пользователя типа «Обычный пользователь» производит перенаправление на главную страницу.

Регистрация

Добавляет пользователя с введенными регистрационными данными в базу данных.

Добавление данных

Модуль управления данными

Добавляет записи в таблицы базы данных

Редактирование данных

Редактирует записи в таблицах базы данных

Удаление данных

Удаляет записи в таблицах базы данных

Загрузка категорий

Модуль отображения данных

Выбирает категории, которые необходимо отобразить на данной странице из базы данных, и выводит их на экран

Загрузка объектов категории

Выбирает объекты, соответствующей категории из базы данных, и выводит их на экран

3. Описание структуры базы данных и ее функций

3.1. Разработка инфологической модели

Под разработкой инфологической модели подразумевается построение независимой от СУБД информационной структуры путем объединения информационных требований всех предполагаемых пользователей системы.

Для создания инфологической модели данных необходимо определить сущности, их атрибуты и связи между ними.

Сущности:

  • Пользователи
  • Категории
  • Заказ
  • Контакты
  • О компании
  • Отзывы

Атрибуты сущностей:

Пользователи:

  • Логин
  • ФИО
  • Пароль
  • Тип

Категории:

  • Название категории
  • Краткое описание
  • Фотография
  • Ссылка на страницу

Заказ:

  • Имя и фамилия
  • Телефон
  • E-mail
  • Адрес

Контакты:

  • Контактные данные
  • Фотография

Печатная продукция

  • Описание
  • Фотография

Отзывы:

  • E-mail
  • Текст

Теперь рассмотрим связи между описанными сущностями (Таблица 2):

Таблица сущностей (Таблица 2):

Сущность

Связь

Сущность

Категории

1

присвоена

n

Вид страхового предложения

1

присвоена

n

отзыв

n

соответствует

n

О компании

1

присвоена

n

Заказ

n

соответствует

n

Контакты

Связь «присвоена» представляет собой связь типа «один ко многим», то есть, если услуге/отзыву/вопросу присвоена одна категория, то одной услуге/отзыву/вопросу присвоена только одна категория, в то же время, одна категория может быть присвоена нескольким услугам/отзывам/вопросам. Связь «соответствует» является связью типа «многие ко многим», что означает, что один партнер/музыка может соответствовать нескольким категориям. Точно также, одной категории соответствует несколько партнеров/экземпляров музыки.

3.2. Даталогическое проектирование

Даталогическое проектирование состоит в создании схемы базы данных на основе конкретной, в нашем случае, реляционной, модели данных. Для реляционной модели данных даталогическая модель – это набор схем отношений, обычно с указанием первичных ключей, а также «связей» между отношениями, представляющих собой внешние ключи.

Рассмотрим отдельно таблицы для каждой из выделенных в инфологической модели сущностей.

В каждой из представленных ниже таблиц представлены имена столбцов данной таблицы. Красным цветом выделено имя/имена столбца/столбцов, которое является первичным ключом для данной таблицы.

Таблица 3 – Пользователи

Логин

ФИО

Тип

Пароль

Таблица 4 – Категории

Название категории

Краткое описание

Фотография

Ссылка на страницу

Таблица 5 – Заказы

Название

Описание

Категория

Цена

Наличие скидки

Фотография

Таблица 6 – О компании

Название

Категория

Краткая информация

Фотография

Таблица 7 – Контакты

Название

Категория

Краткая информация

Фотография

Категория

Таблица 8 – Отзывы

Идентификационный номер

e-mail

Текст

На основе представленных выше таблиц можно построить схему разрабатываемой базы данных (рисунок 5).

Рис. 5 – Схема базы данных

4. Описание структуры клиентской части

4.1. Общее описание

Общая структура клиентской части приложения представлена на рисунке 6.

Рис. 6 – Структура клиентской части приложения

Клиентская часть приложения делится на две части с разными настройками доступа:

  • Административная часть – данная часть состоит из страницы администратора, а также страниц добавления, редактирования информации, которые доступны только администратору сайта.
  • пользовательская часть – данная часть состоит из страниц сайта, представляющих основную информацию об услугах, которые доступны только зарегистрированным пользователям.

4.2. Описание интерфейса «Обычный пользователь»

Интерфейс обычного пользователя состоит из страниц, которые представляют собой основное содержание сайта страховой компании.

После авторизации обычный пользователь попадает на главную страницу (рисунок 7), которая является первичной страницей.

С главной страницы пользователь может попасть на любую из страниц перечисленных ниже:

  • Заказ (рис. – 8)
  • Контакты (рис. – 9)
  • О компании (рис. – 10)
  • Отзывы (рис. – 11)
  • Панель администратора (рис. – 12)
  • Выход и авторизация (рис. – 13)
  • Регистрация (рис. – 14)

На большинстве страниц представлены различные категории объектов с фотографией и кратким описанием, а также ссылкой на страницу категории, на которой представлены объекты, принадлежащие к данной категории.

Рис. 7 – Главная страница интерфейса «Обычный пользователь»

Рис. 8 – Страница заказа

Рис. 9 – Контакты

Рис. 10 – О компании

Рис. 11 – Отзывы

Рис. 12 – Панель администратора

Рис. 13 - Авторизация

Рис. 14 – Регистрация

4.3. Описание интерфейса «Администратор»

После авторизации как администратор, открывается новый интерфейс.

Интерфейс администратора (рисунок 16) предназначен для управления данными в базе данных. На главной странице интерфейса администратора представлены ссылки, каждая из которых открывает соответствующую форму для редактирования, добавления и удаления данных. Прошу заметить, что панель администратор вынесена на главную страницу, но доступ туда имеет только администратор сайта т.к. происходит проверка на предмет административных прав с помощью сессии, если обычный пользователь попытается зайти в панель администратора, то его перенаправит на форму авторизации.

Заключение

В первом разделе дана краткая характеристика организационной структуры страховой компании, а также описаны основные бизнес-процессы, при выполнении которых используется сайт.

Обоснован выбор следующих средств разработки:

  • язык запросов – SQL,
  • система управления базами данных – MySQL,
  • язык гипертекстовой разметки – HTML,
  • язык программирования на стороне сервера – PHP.

Во втором разделе разработана структура серверной части приложения, а также приведены описания основных модулей.

В третьем разделе разработана база данных, которая предназначена для хранения учетных записей пользователей, а также всей динамической информации сайта.

В четвертом разделе разработана структура клиентской части приложения с разделением на интерфейсы администратора и обычного пользователя. Таким образом, в процессе выполнения работы были решены все задачи, поставленные перед началом её выполнения:

  • проведен анализ организационной структуры магазина игрушек,
  • описаны основные бизнес-процессы компании,
  • выбраны средства разработки,
  • проведено проектирование серверной части приложения,
  • проведено проектирование базы данных,
  • разработана структура сайта,
  • разработаны интерфейсы различных категорий пользователей.

В результате выполнения работы достигнута её основная цель – разработан сайт для страховой компании “Ресо-гарантия”

Список использованной литературы

  1. Куликов Г.Г. Набатов А.Н. Речкалов А.В. Автоматизированное проектирование информационно-управляющих систем. Системное моделирование предметной области.. — Уфа: Уфимский государственный авиационный технический университет, 1998. — 104 с. — ISBN 5-89611-190-0.
  2. Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.
  3. Прохоренок, Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / Н. Прохоренок. - СПб.: БХВ - Петербург., 2010. - 900 с.
  4. Богданов, М.Р. Перспективные языки веб-разработки / М.Р. Богданов. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
  5. Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
  6. Никсон, Р. Создаем динамические web-сайты с помощью PHP, MySQL и JavaScript / Р. Никсон. - П.: Питер, 2011. - 496 с.
  7. Томсон, Л. Разработка Web-приложений на РНР и MySQL/ Л. Томсон. - М.: ДиаСофтЮП, 2003. - 672 с.
  8. PHPForum [Электронный ресурс] /форум.- Россия, 2003. - Режим доступа: http://phpforum.ru. - Дата доступа: 09.02.2012.
  9. Харрис, Э. PHP/MySQL для начинающих / Э. Харрис. - М.: Кудиц - образ, 2005.
  10. Парк, Д. PHP и MySQL. Библия программиста / Д. Парк, С. Суэринг. - Диалектика, 2010. - 912 с.
  11. Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с
  12. Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: «Вильямс», 2006. — 1328 с. — ISBN 0-321-19784-4.
  13. Peter Pin-Shan Chen «The Entity-Relationship Model — Toward a Unified View of Data» (англ.) // ACM Transactions on Database Systems (TODS) : Сб. — Нью-Йорк: ACM, 1976. — Vol. 1. — P. 9-36. — ISSN 0362-5915. — DOI:10.1145/320434.320440.
  14. Когаловский М. Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с. — ISBN 5-279-02276-4.
  15. Федоренко, Е.В.Базы данных: учебное пособие / Е.В. Федоренко, А.С. Самардак. – М. : Находка, 2016. – 116 с.
  16. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с. — ISBN 5-8459-0384-X.
  17. MySQL 5.7 Reference Manual [Электронный ресурс] // Официальный сайт MySQL URL: https://dev.mysql.com/doc/refman/5.7/en/

Приложения

Фрагмент кода модуля отображения данных, который получает данные из таблицы базы данных и выводит их на страницу сайта:

$sql_auto = "select * from insurance where id=1";

// Выполняется запрос, результат попадает в переменную

$result = $db->query($sql_auto);

//Преобразовываю в ассоативный массив и засовываю в переменную

$insurance_auto = $result->fetchall(PDO::FETCH_ASSOC);

foreach ($insurance_auto as $value)

include("./templates/auto.php");

//print_r($insurance);

$sql_home = "select * from insurance where id=5";

$result = $db->query($sql_home);

$insurance_home = $result->fetchall(PDO::FETCH_ASSOC);

foreach ($insurance_home as $value)

include("./templates/home.php");

$sql_life = "select * from insurance where id=3";

$result = $db->query($sql_life);

$insurance_life = $result->fetchall(PDO::FETCH_ASSOC);

foreach ($insurance_life as $value)

include("./templates/life.php");

?>

<?php //include("./templates/product-item.php"); ?>

Фрагмент кода модуля управления пользователями, который добавляет в базу данных регистрационные данные нового пользователя:

<?php

//print_r($_POST);

session_start();

require_once 'con_for_sign.php';

$full_name = $_POST['full_name'];

$user_login = $_POST['login'];

$sign_password = $_POST['sign_password'];

$sign_password_confirm = $_POST['sign_password_confirm'];

$group_id = 0;

//$sign_password = md5($sign_password);

//$sign_password_confirm = md5($sign_password_confirm);

if ($sign_password == $sign_password_confirm) {

//connect...

$sign_password = md5($sign_password);

$gg = mysqli_query($connect, "INSERT INTO `users` (`id`, `full_name`, `user_login`, `user_password`, `group_id`) VALUES (NULL, '$full_name', '$user_login', '$sign_password', '$group_id')");

$_SESSION['message'] = 'Регистрация прошла успешно!';

header('location: authorization.php');

}else{

$_SESSION['message'] = 'Пароли не совпадают';

header('location: registration_engine.php');

}

?>

Фрагмент кода модуля управления пользователями, который проверяет наличие пользователя в базе данных mysql

<?php

// Прошлое название singin.php

session_start();

require_once 'con_for_sign.php';

$login = $_POST['login'];

$password = md5($_POST['password']);

$check_user = mysqli_query($connect, "SELECT * FROM `users` WHERE `user_login` = '$login' AND `user_password` = '$password'");

if (mysqli_num_rows($check_user) > 0){

$user = mysqli_fetch_assoc($check_user);

print_r($user);

$_SESSION['user'] = ["full_name" => $user['full_name'], ];

if($user['group_id'] == 1)

{

header('location: admin.php');

}else{

header('location: index.php');

}

//echo "ti admin";

}else{

$_SESSION['message'] = 'Не верный логин или пароль';

//header('location: authorization.php');

}

?>

Таблица хранящая логины и пароли.

Таблица хранящая предложения страховой услуги