Файл: Автоматизированная информационная система на основе вебтехнологий для частной медицинской клиники.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.12.2023

Просмотров: 1741

Скачиваний: 14

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

ВВЕДЕНИЕ

1. Анализ предметной области

1.1 Описание предметной области

1.2 Обзор существующих аналогов

1.3 Моделирование бизнес-процессов

2. Проектирование веб-приложения

2.1 Требования к веб-приложению

2.1.1 Требования к структуре меню

2.1.2 Требования к структуре страниц

2.1.3 Требование к системе контроля доступа

2.1.4 Требование к хранению данных

2.1.5 Требования к программному обеспечению серверной части

2.1.6 Функциональные требования к системе

2.1.7 Требования к информационному обеспечению

2.1.8 Требования к надежности системы

2.1.9 Требования к безопасности системы и к обеспечению защиты информации

2.1.10 Требования к эргономике системы

2.1.11 Требования к эксплуатации системы, техническому обслуживанию, ремонту и хранению систем

2.1.12 Требования к патентной чистоте

2.1.13 Требования по стандартизации

2.2 Описание средств проектирования

2.3 Разработка UML – диаграмм

2.3.1 Диаграмма вариантов использования

2.3.2 Диаграмма последовательности

2.4 Технология проектирования БД

2.5 Логическая модель данных

2.6 Физическая модель данных

3. Разработка веб-приложения

3.1 Выбор системы управления базами данных

3.3 Инструменты разработки web-приложений

3.4 Особенности разработки web-приложений

3.5 Выбор средств реализации

3.6 Разработка веб-сайта

3.7 Создание класса для работы с базой данных

3.8 Фронтенд разработка

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Приложение А


  • Использование по умолчанию движка InnoDB.

  • Поддержка полусинхронного (semi-synchronous) механизма репликации, основанного на патчах к InnoDB от компании Google.

  • Улучшение функций по секционированию данных. Расширенный синтаксис для разбиения больших таблиц на несколько частей, размещенных в файловых системах (partitioning). Добавлены операции RANGE, LIST и метод оптимизации «partition pruning».

  • Новый механизм оптимизации вложенных запросов и JOIN-операций.

  • Переработана система внутренних блокировок.

  • Интегрированы патчи Google с оптимизацией работы InnoDB на процессорах с большим количеством ядер.
PhpMyAdmin — это веб-приложение, созданное с целью упростить работу с базой данных MySql. Современные хостинг-провайдеры чаще всего устанавливают именно PhpMyAdmin в панели управления.Возможности PhpMyAdmin:

  • создавать и удалять базы данных;

  • создание таблиц и редактирование их полей;

  • управление индексами;

  • поиск по базе данных;

  • выполнение SQL-запросов;

  • создание пользователей и управление их правами;

  • возможность импорта/экспорта данных;

  • и многое другое.
PhpStorm 2022.1.1.PhpStorm – интегрированная среда разработки на PHP с интеллектуальным редактором, которая поддерживает все версии PHP (современные и классические проекты), включая генераторы, сопрограммы, пространства имен, замыкания, типажи, синтаксис коротких массивов, а также обеспечивает автодополнение кода, рефакторинги, предотвращение ошибок налету и поддерживает смешивание языков.Поддерживаются передовые технологии веб-разработки, включая HTML5, CSS, Sass, SCSS, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Harmony, шаблоны Jade, Zen Coding, Emmet и JavaScript.Кроме того приложение включает в себя всю функциональность WebStorm (HTML/CSS редактор, JavaScript редактор) и добавляет полнофункциональную поддержку PHP и баз данных / SQL.Ключевые возможности:

  • Интеллектуальный редактор PHP кода с подсветкой синтаксиса, автодополнением кода, расширенными настройками форматирования кода, предотвращением ошибок налету.

  • Поддерживает версии PHP начиная с 5.3, генераторы, сопрограммы и все синтаксические улучшения.

  • PHP рефакторинги, code (re)arranger, детектор дублируемого кода.

  • Поддержка Vagrant, Composer, встроенный REST клиент, Command Line Tools, SSH консоль.

  • Поддержка фреймворков (MVC view для Symfony2, Yii) и специализированные плагины для ведущих PHP фреймворков (Symfony, Magento, Drupal, Yii, CakePHP, WordPress, Joomla! и многие другие).

  • Визуальный отладчик для PHP приложений, валидация конфигурации отладчика, PHPUnit с покрытием кода (поддержка PHPUnit 5), а также интеграция с профилировщиком.

  • HTML, CSS, JavaScript редактор. Отладка и модульное тестирование для JS. Поддержка HTML5, CSS, Sass, SCSS, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Harmony, Emmet и других передовых технологий веб-разработки.

  • Полный набор инструментов для фронтенд-разработки.

  • Поддержка стилей кода, встроенные стили PSR1/PSR2, Symfony2, Zend, Drupal и другие.

  • Интеграция с системами управления версиями, включая унифицированный интерфейс.

  • Удаленное развертывание приложений и автоматическая синхронизация с использованием FTP, SFTP, FTPS и др.

  • Live Edit: изменения в коде можно мгновенно просмотреть в браузере без перезагрузки страницы.

  • PHP UML.

  • Интеграция с баг-трекерами.

  • Инструменты работы с базами данных, SQL редактор.

  • Кросс-платформенность (Windows, Mac OS X, Linux).

Для создания клиентской части использованы следующие языки программирования:

  • HTML5;

  • CSS5;

  • JSscript.
HTML5.Для разработчиков html5 помогает писать понятный семантический код. Позволяет управлять многими процессами на странице своими стандартными методами, без использования javascript или сторонних плагинов и сервисов. Это означает, что решаются некоторые проблемы кроссбраузерности, поскольку браузеры одинаково реализуют новые возможности.Также html5 делает удобной работу в сети и для обычных пользователей. Например, увеличивается скорость работы, использование браузера становится более удобным. Для того чтобы смотреть ролики из youtube не нужно устанавливать дополнительные плагины и постоянно обновлять их.CSS5.CSS (Cascading Style Sheets) — язык таблиц стилей, который позволяет прикреплять стиль (например, шрифты и цвет) к структурированным документам (например, документам HTML и приложениям XML).Обычно CSS-стили используются для создания и изменения стиля элементов веб-страниц и пользовательских интерфейсов, написанных на языках HTML и XHTML, но также могут быть применены к любому виду XML-документа, в том числе XML, SVG и XUL.Отделяя стиль представления документов от содержимого документов, CSS упрощает создание веб-страниц и обслуживание сайтов.CSS поддерживает таблицы стилей для конкретных носителей, поэтому авторы могут адаптировать представление своих документов к визуальным браузерам, слуховым устройствам, принтерам, брайлевским устройствам, карманным устройствам и т.д.JSscript.Script — это язык программирования от компании Microsoft. Он предназначен для создания сценариев и является реализацией стандарта ECMAScript. Синтаксис JScript во многом аналогичен языку JavaScript от компании Netscape. JScript по умолчанию поддерживается в Windows Script Host (WSH), который в свою очередь по умолчанию устанавливается вместе с почти любой версией Windows. Если у вас слишком старая версия Windows, вы можете скачать WSH с сайта Microsoft и самостоятельно установить его. Сценарии на языке JScript чаще всего используются в следующих областях:

  • клиентские сценарии на Web-страницах;

  • автоматизация администрирования систем Windows;

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

3.6 Разработка веб-сайта

Динамический веб-сайт — это тот, где часть содержимого ответа генерируется динамически только при необходимости. На динамическом веб-сайте HTML-страницы обычно создаются путём вставки данных из базы данных в заполнители в HTML-шаблонах (это гораздо более эффективный способ хранения большого количества контента, чем использование статических сайтов).Динамический сайт может возвращать разные данные для URL-адреса на основе информации, предоставленной пользователем или сохранёнными настройками, и может выполнять другие операции, как часть возврата ответа (например, отправку уведомлений).Большая часть кода для поддержки динамического веб-сайта должна выполняться на сервере. Создание этого кода известно, как «программирование серверной части» (или иногда «программирование бэкенда»).Архитектура динамического сайта представлена на Рисунке 15.Рисунок 15 – Архитектура динамического сайтаКод серверной части может быть написан на языке PHP.Программирование серверной части позволяет хранить информацию в базе данных и динамически создавать и возвращать HTML и другие типы файлов (например, PDF, изображения, и т. д.).Программирование серверной части позволяет сайтам ограничивать доступ авторизованным пользователям и предоставлять только ту информацию, которую пользователю разрешено видеть.Программирование серверной части позволяет разработчикам использовать сессии – изначально это механизм, позволяющий серверу хранить информацию о текущем пользователе сайта и отправлять разные ответы, основанные на этой информации.Это позволяет, например, сайту знать, что пользователь был предварительно авторизован и выводить ссылки на его адрес электронной почты или историю заказов.Серверная часть приложения реализована в виде отдельных модулей, написанных на языке PHP и реализующих следующие функции:

  • Подключение к серверу БД;

  • Отправка запросов к серверу БД на получение данных;

  • Отправка запросов к серверу БД на изменение данных;

  • Отправка запросов к серверу БД на удаление данных;

  • Получение данных от сервера БД в ответ на запрос.
В Таблице 4 представлены модули серверной части приложения с описанием их назначения.Таблица 4 – Модули серверной части приложения

Модуль

Назначение

db.class.php

Класс для работы с БД

index.php

Страница описания клиники

uslugi.php

Страница услуг

uslugit_table.php

Добавление, удаление услуг

sotr.php

Страница сотрудников

sotr_table.php

Вывод данных сотрудников

mytrip.php

Страница записей пользователя

galery.php

Страница галереи

edit_sotr.php

Редактирование данных сотрудников
Продолжение Таблицы 4

del_sotr.php

Удаление сотрудников

header.php

Шапка сайта

footer.php

Подвал сайта

3.7 Создание класса для работы с базой данных

class DB {/* Параметры подключения к серверу БД*/protected $dbname='solar'; // Имя БД protected $dbuser='root'; // Имя пользователя protected $dbhost='localhost'; // Адрес сервера protected $dbpass=''; // Пароль private $_connect; private $db_select; public $row;/*Подключаемся к базе данных*/public function __construct() { $this->_connect=@mysql_connect ($this->dbhost, $this->dbuser, $this->dbpass); if (!$this->_connect) {exit («В настоящий момент сервер базы данных недоступен»);} $this->db_select=mysql_select_db ($this->dbname, $this->_connect); if (!$this->db_select) {exit('В настоящий момент база данных недоступна');}return $this->db_select;}/*Делаем запрос к базе данных*/public function query($q) { $this->result=mysql_query($q, $this->_connect); //echo $q;
if (!$this->result) { echo «
Не удалось выполнить SQL запрос «;

echo $q.”
”;

echo(mysql_error());

echo”
”; } //echo “
$q
”; return $this->result;}/* Количество строк в запросе*/public function query_count($result) { $this->row_count=mysql_num_rows($this->result); return $this->row_count;}/*Переводим строку в ассоциативный массив*/public function fetch_assoc($result) { $this->fetch=mysql_fetch_assoc($result); return $this->fetch;}/*Переводим весь запрос в ассоциативный массив*/public function fetch_all($result) { while ($fetch=mysql_fetch_assoc($result)) { $rows[]=$fetch; } return $rows; } public function ransform_date($dat) { $data[‘day’]=substr($dat, 0, 2); $data[‘month’]=substr($dat, 3, 2); $data[‘year’]=substr($dat, 6, 4); return $data; }/*Удалить запись из таблицы $table по полю $id_field равному $id*/ public function delete_record($table, $id_field, $id) { $q=”DELETE FROM $table WHERE $id_field=’$id’”; $delete_record=$this->query($q); return $delete_record; } public function delete_set($table, $set) { $q=”DELETE FROM $table WHERE $set”;; $delete_record=$this->query($q); return $delete_record; } /*Вставляет набор данных $set в таблицу $table*/ public function insert_record($table, $set) { $q=”INSERT INTO $table $set”; $insert_record=$this->query($q); }/*Обновляет набор данных $set в таблице $table*/ public function update_record($table, $set, $id_field, $id) { $q=”UPDATE $table SET $set WHERE $id_field=’$id’”; $update_record=$this->query($q); } public function get_last_id($table) { $q=”SELECT LAST_INSERT_ID() FROM $table”; $last=$this->fetch_assoc($this->query($q)); $last_id=$last[‘LAST_INSERT_ID()’]; return $last_id;}}