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

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

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

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

Добавлен: 11.12.2023

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

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

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

СОДЕРЖАНИЕ

Оглавление

ВВЕДЕНИЕ

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;

}

}