Файл: Автоматизированная информационная система на основе вебтехнологий для частной медицинской клиники.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2023
Просмотров: 300
Скачиваний: 3
СОДЕРЖАНИЕ
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.1 Диаграмма вариантов использования
2.3.2 Диаграмма последовательности
2.4 Технология проектирования БД
3.1 Выбор системы управления базами данных
3.3 Инструменты разработки web-приложений
3.4 Особенности разработки web-приложений
3.7 Создание класса для работы с базой данных
-
Использование по умолчанию движка 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 «
echo $q.”
”;
echo(mysql_error());
echo”
}
//echo “
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;
}
}