Скоро защита?
Меню Услуги

Разработка цифровой платформы сопровождения образовательного процесса. Часть 2

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

Страницы 1 2 3


Глава 2. Проектирование цифровой платформы

2.1. Анализ средств разработки

Для разработки проекта выбран язык программирования Python. Python – это самый широко используемый сегодня высокоуровневый язык программирования, необходимый с целью разработки приложений разных форм и типов. Среди них встречаются различные web-приложения, игры, настольные программы, работа с БД и пр. достаточно популярен данный язык программирования в сфере компьютерного обучения и исследований в области ИИ.
Первое появление Python пришлось на 1991 г. и представил его известный во всем мире IT-разработчик Гвидо Ван Россумом из Голландии. С того момента Python начал свое активное развитие и интеграцию, а в 2000 г. разработана версия 2.0, 2008 г. — версия 3.0. При этом, отметим, что невзирая на то, что промежутки создания версий, не настолько велики, разработчики постоянно работают над созданием подверсий, их тестирований и т.д. Таким образом, в рамках данного исследования актуальна версия 3.7.
Ключевые характеристики языка программирования Python:
 Скриптовый язык. Код программ устанавливается в форме скриптов.
 Поддержка совершенно разных способов программирования, включая в них объектно-ориентированной и функциональной парадигмы.
 Интерпретация программ. Для того, чтобы работать со скриптами требуется наличие интерпретатора, запускающего и выполняющего скрипт. Как выполняются программы на данном языке программирования – в первую очередь, в текстовом редакторе составляется скрипт с набором выражений на Python. Далее интерпретатору совершается передача скрипта на исполнение. Интерпретатор начинает транслировать код в промежуточный байткод, после виртуальная машина совершает передачу полученного байткода в машинные команды, выполняющиеся ОС. Отметим, что трансляция интерпретатором исходного кода в байткод и перевод байткода виртуальной машиной в набор инструкций это абсолютно 2 различных, несмотря на то, что при этом они пересекаются в самом интерпретаторе.


Рисунок 2.1 – Схема работы Python

 Портативность и платформонезависимость. Абсолютно не важно, какая используется ОС — Windows, Mac OS, Linux, можно просто написать скрипт, при котором будет происходить запуск на каждой из этих ОС, учитывая что присутствует интерпретатор.
 Автоматизированное управление памятью.
 Динамическая типизация.
Python – не сложный язык программирования, обладающий достаточно простой и понятный синтаксис. Из этого следует, что он гораздо легче поддается изучению, и, именно это, служит определяющим фактором, согласно которому Python выступает сегодня одним из широко используемым языков программирования в рамках образовательной деятельности. Так, к примеру, в 2014 г. он занимал лидирующую позицию в процессах обучения на американском континенте.
Кроме того, Python широко применяют еще и в написании каких-либо определенных программных продуктов, зачастую на коммерческой основе. Поэтому можно сказать, что для данного языка программирования было составлено огромное число, адаптированных к использованию.
Также, для Python характерно наличие многочисленных сообществ, в интернет-сети можно найти немало хороших и полезных материалов, образцов, а также обратиться за профессиональной консультацией к IT-специалистам.
Наиболее известные проекты, в которых чаще всего используются возможности ООП и Python в частности: Dropbox, Instagram, reddit (мегафорум), World of Tanks (многопользовательская сетевая игра), Pinterest (социальная сеть только из картинок). Активно технологии и возможности Python использует и продвигает Google.
Основные преимущества Python:
 Низкий порог вхождения: человеку, знакомому с программированием, достаточно получаса, чтобы начать писать на нем полезные для себя скрипты, а не знакомому – Python позволяет легко открыть для себя программирование и попробовать свои силы в нем.
 Хорошо спроектирован: Python вобрал в себя современные тенденции в программировании «с нуля». Кроме того, он динамично развивается: процесс включения новых конструкций в язык хорошо отлажен, и он продолжает впитывать в себя приемы функционального программирования, аспектно-ориентированного программирования и прочего, оставаясь при этом обратно-совместимым и внутренне непротиворечивым.
 Легко читаемый синтаксис (по сравнению с С++, Рerl, РНР): позволяет легко читать чужой код, разбираться в давно написанном собственном коде. В сочетании со сказанным выше это настраивает создателей библиотек на простоту и логичность интерфейсов.
 Огромное количество библиотек с кодом на любой случай жизни: будь то работа с таблицами Excel, изображениями или сетью Twitter.
 Переносимость: Python реализован под всеми распространенными операционными системами и на множестве архитектур – Windows, Linux, MacOS, даже на мини-компьютерах Arduino. Система зависимостей хорошо продумана, и разворачивание приложений на другой машине происходит легко и без сюрпризов.
В качестве платформы для создания проекта выбран Python-фреймворк Django. Django — это фреймворк для создания веб-приложений с помощью языка программирования Python. Django был создан в 2005 году, когда веб-разработчики из газеты Lawrence Journal-World стали использовать Python в качестве языка для создания веб-сайтов. А в 2008 году вышел публичный первый релиз фреймворка. На сегодняшний день он продолжает развиваться. Так, текущей версией фреймворка является версия 2.*, которая вышла 3 декабря 2017 года. Ну и также постоянно выходят подверсии.
Django используется на многих сайтах, в том числе таких, как Pinterest, PBS, Instagram, BitBucket, Washington Times, Mozilla и многих других. Фреймворк является бесплатным. Он развивается как open source, его исходный код открыт, его можно найти репозитории на GitHub.
Фреймворк Django реализует архитектурный паттерн Model-View-Template или сокращенно MVT, который по факту является модификацией распространенного в веб-программировании паттерна MVC (Model-View-Controller). Схематично можно представить архитектуру MVT в Django следующим образом (рис. 2.2):

Рисунок 2.2 – Схема архитектуры MVT в Django

Основные элементы паттерна:
 URL dispatcher: при получение запроса на основании запрошенного адреса URL определяет, какой ресурс должен обрабатывать данный запрос.
 View: получает запрос, обрабатывает его и отправляет в ответ пользователю некоторый ответ. Если для обработки запроса необходимо обращение к модели и базе данных, то View взаимодействует с ними. Для создания ответа может применять Template или шаблоны. В архитектуре MVC этому компоненту соответствуют контроллеры (но не представления).
 Model: описывает данные, используемые в приложении. Отдельные классы, как правило, соответствуют таблицам в базе данных.
 Template: представляет логику представления в виде сгенерированной разметки html. В MVC этому компоненту соответствует View, то есть представления. Когда к приложению приходит запрос, то URL dispatcher определяет, с каким ресурсом сопоставляется данный запрос и передает этот запрос выбранному ресурсу. Ресурс фактически представляет функцию или View, который получает запрос и определенным образом обрабатывает его. В процессе обработки View может обращаться к моделям и базе данных, получать из нее данные, или, наоборот, сохранять в нее данные. Результат обработки запроса отправляется обратно, и этот результат пользователь видит в своем браузере. Как правило, результат обработки запроса представляет сгенерированный html-код, для генерации которого применяются шаблоны (Template).
Для Python можно использовать различные среды разработки, но одной из самых популярных из них является среда PyCharm, созданная компанией JetBrains. Эта среда динамично развивается, постоянно обновляется и доступна для наиболее распространенных операционных систем — Windows, MacOS, Linux. PyCharm позволяет разграничить настройки проектов. Так, по умолчанию выбрано поле New Environment Using, что позволяет установить версию интерпретатора для конкретного проекта. Затем все устанавливаемые дополнительные пакеты будут касаться только текущего проекта. Это удобно, если создается несколько проектов, но каждый из которых работает с какой-то специфической версией интерпретатора. Но в качестве альтернативы можно выбрать поле Existing Interpreter и задать путь к файлу интерпретатора глобально для всех проектов. Рабочее окно среды показано на рис. 2.3.

Рисунок 2.3 — Рабочее окно программы PyCharm

Одним из важных элементов веб-приложения является СУБД. В качестве СУБД выбрана MySQL, которая является одной из самых популярных СУБД на сегодняшний день. СУБД MySQL рационально подходит к решению сложных задач. С помощью СУБД MySQL можно реализовать системы любой сложности.
К преимуществам СУБД MySQL относится: упрощение ввода записей; упрощение поиска записей; гибкость поиска записей; гибкость вывода записей; доступ к записям многопользовательский; возможность передачи записей в электронном виде.
MySQL является высокопроизводительной многопоточной и многопользовательской системой управления реляционными БД, которая основана на клиент-серверной архитектуре. Широкое применение MySQL определено рядом его уникальных отличительных характеристик, в числе которых скорость, надежность, расширяемость и открытость исходного кода .
Решающим показателем для системы управления реляционными базами данных скорость выступает то время, которое было затрачено на исполнение запроса и возврат результатов тому, кто его осуществил. Согласно каждому показателю, MySQL это, в первую очередь, производительная система, оказывающаяся, как правило, гораздо быстрее решений–конкурентов.
Иногда, высокая производительность сопровождается низким уровнем безопасности. Тем не менее, MySQL, созданная для обеспечения оптимального уровня безопасности и времени работы. Кроме того платформа протестирована и сертифицирована с целью применения ее в высокоуровневых наиважнейших приложениях. Поддержка MySQL включает транзакции, которые гарантируют согласованность информации и понижающие риск потери данных, а также репликацию и кластеризацию, представляющиеся методами, которые существенно сокращают время простоя при сбое сервера. И наконец, многочисленная аудитория пользователей MySQL содействует быстрому обнаружению и устранению ошибок, а также тестированию этого программного продукта в различных окружениях. Такой профилактический подход привел к тому, что в MySQL фактически нет ошибок .
MySQL может обрабатывать чрезвычайно большие и сложные базы данные, сохраняя при этом достойный уровень производительности. Использовать MySQL настолько просто, что даже новичок сможет разобраться в основах за несколько часов, при этом данное программное решение подкреплено детальным руководством, большим числом бесплатных обучающих материалов, доступных в Интернете, сообществом опытных разработчиков и изрядным количеством книг соответствующей тематики.
В отличие от своих платных аналогов, где необходимо настраивать буквально сотни параметров, система MySQL довольно легка в настройке. Если говорить о коммерческом окружении, то здесь полностью поддерживаются профессиональное обучение, консультирование и техническое сопровождение MySQL.
Также отметим, что MySQL оказывает поддержку ряду наиважнейших требований стандарта ANSI SQL (ANSI — American National Standards Institute (Американский национальный институт стандартов)) и зачастую дает возможность вносить в него пользовательские расширения, функциональные возможности и типы данных, призванные модернизировать переносимость и обеспечивающие при этом широкий функциональный ряд для пользователей. MySQL поддерживается ОС UNIX и отличными от них системами, среди которых Linux, Solaris, FreeBSD, OS/2, MacOS, Windows 95, 98, Me, 2000, XP, NT и Vista, и может работать на разных конструкциях, в том числе на Intel x86, Alpha, SPARC, PowerPC и IA64.
MySQL является полноценной многопользовательской системой, а это означает, что множество клиентов могут одновременно получать доступ и использовать одну (или более) базу данных MySQL. Это особенно важно при разработке веб–приложений, которые должны поддерживать одновременное подключение множества удаленных клиентов. Поскольку MySQL является программным решением, используемым миллионами людей по всему миру, она полностью поддерживает кодировку Unicode, а также наиболее существенные наборы символов (в том числе латинских и китайских).
MySQL также предполагает присутствие интерфейсов программирования приложений API (Application Programming Interfaces) на нескольких языков, что позволяет составлять управляемые БД приложения. Сегодня MySQL оказывает поддержку таких языков программирования, как C, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tcl, к тому же присутствуют коннекторы для JDBC–, ODBC– и .NET–приложений.
Для проектирования и создания базы данных выбрана использована среда MySQLWorkbench. Ее основное предназначение заключается в предоставлении функций по визуальному проектированию БД и функций по управлению сервером MySQL. Для того, чтобы выстраивать модели создана секция DataModeling.

Рисунок 2.4 – Рабочее окно MySQLWorkbench

Функционал программы:
 программа дает возможность наглядным образом сформировать представление о модели БД в графической форме;
 четкая и многофункциональная система установки взаимосвязей таблиц друг с другом, включая систему «многие ко многим» с формированием таблицы связей;
 восстановление структуры таблиц из уже имеющейся на сервере базы данных (связи восстанавливаются в InnoDB, в рамках применения MyISAM, требуется производить установку связей ручным способом);
 понятный и несложный редактор SQL запросов, который дает возможность оперативно делать их отправку серверу и получать ответ в форме таблицы;
 функция редактирования данных в таблице в режиме «визуал».
Еще одним приложением, позволяющим работать с СУБД MySQL, является phpMyAdmin. Это веб-приложение с открытым исходным кодом, разработанное на языке PHP и предоставляющее цельную и удаленную работу с БД MySQL через интернет-браузер. PhpMyAdmin для корректной работы использует базу данных для хранения данных, которые необходимы для его работы.

Рисунок 2.5 – Страница с базой данных в phpMyAdmin
Главная цель PhpMyAdmin заключается в существенном упрощении взаимодействия с БД в MySQL. Работая с ней в режиме текста, появляется возможность упрощения введения команд в командную строку, а за счет уникальных таблиц можно наблюдать результаты выборок, а также в случае, когда данные не помещаются на мониторе, возникает риск их наложения друг на друга. Работа с MySQL в командной строке: команда «show databases» — вывести каждую существующую БД PhpMyAdmin окажет помощь в несложной работе с положительными характеристиками интернет-браузера, в числе которых прокрутка изображения тогда, когда оно не помещается на экране монитора. Каждая базовая функциональная возможность SQL и работа с данными в PhpMyAdmin не сложны в восприятии и, соответственно, с ними легко работать в обычном режиме и в интернет-сети.
Приложение PhpMyAdmin характеризуется как система, объединяющая в себе специальные скрипты, которые написаны с помощью PHP. Ее функциональность помогает наиболее полноценной работе программистов, включая возможность работать удаленно с БД MySQL посредством web-интерфейса. Поскольку PhpMyAdmin зачастую дает возможность не обращаясь к прямому вводу команд SQL, то работа с базами данных уже не выглядит настолько сложной не только для IT-специалиста, но и для обычного пользователя, который знаком с MySQL не глубоко.

2.2. Разработка базы данных

Разработка базы данных ведется в три этапа :
1. Концептуальное проектирование – представляет собой сбор, анализ и редактирование требований к данным, которое состоит из исследования предметной области; выявления всех фрагментов, характеризующихся пользовательским представлением, информационными объектами и связями между ними; моделирования и интеграции всех пользовательских представлений. Концептуальное проектирование завершается составлением концептуальной модели, инвариантной к структуре базы данных, которая может быть представлена в виде модели «сущность–связь».
2. Логическое проектирование представляет собой процесс оптимизации требований к информации, содержащейся в системе данных. В результате можно наблюдать СУБД–ориентированную структура БД и спецификации прикладных программ. Данная стадия отличается проведением сравнительного анализ а форм и моделей.
3. Физическое проектирование – выявление отличительных черт по сохранности сведений, учитывая особенности СУБД.
Концептуальный уровень – это сущности, атрибуты, связи. Концептуальная модель – это модель, которая отображает знания специалиста в предметной области. Здесь используются тексты, таблицы, графики, графы, блок–схемы.
Концептуальная модель должна представлять собой модель, в которой в содержательной форме описывается состав системы, ее компоненты и их взаимосвязи .
Логический уровень – это записи, элементы данных, связи между записями.
Большинство современных подходов к проектированию баз данных базируется на использовании разновидностей так называемой ER–модели .
Под главными понятиями ER–модели понимается сущность, связь и атрибут. Сущность представления объект, сведения о котором необходимо сохранить и хранить в доступном месте. Связь представляет собой графическую ассоциацию, которая устанавливается между двумя сущностями. Атрибут представляет собой особую отличительную деталь, которая предназначена для выявления ряда нюансов, классификации, числовых значений либо выражения состояния сущности. Наименования (имена) атрибутов записываются в прямоугольник, который изображает сущность, под именем сущности и изображаются малыми буквами.

Рисунок 2.6 – Модель базы данных
Физический уровень (представление администратора) проектирования базы данных, это группирование данных, индексы, методы доступа.
Физическая модель данных должна соответствовать схеме данных. Специфика конкретной системы управления базами данных при физическом проектировании включает выбор решений, которые связанны с физической средой хранения данных, создание индексов . В ходе физического проектирования был создан SQL-скрипт для создания базы данных:
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`auth_group` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(250) NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`django_content_type` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`app_label` VARCHAR(250) NULL DEFAULT NULL,
`model` VARCHAR(250) NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 6
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`auth_permission` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(250) NULL DEFAULT NULL,
`codename` VARCHAR(250) NULL DEFAULT NULL,
`content_type_id` INT(11) NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_auth_permission_django_content_type1_idx` (`content_type_id` ASC),
CONSTRAINT `fk_auth_permission_django_content_type1`
FOREIGN KEY (`content_type_id`)
REFERENCES `learn_sys_dj`.`django_content_type` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`auth_user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`password` VARCHAR(128) NULL DEFAULT NULL,
`last_login` TIMESTAMP NULL DEFAULT NULL,
`is_superuser` TINYINT(1) NULL DEFAULT NULL,
`username` VARCHAR(150) NULL DEFAULT NULL,
`first_name` VARCHAR(30) NULL DEFAULT NULL,
`last_name` VARCHAR(30) NULL DEFAULT NULL,
`email` VARCHAR(254) NULL DEFAULT NULL,
`is_staff` TINYINT(1) NULL DEFAULT NULL,
`is_active` TINYINT(1) NULL DEFAULT NULL,
`date_joined` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 3
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`auth_user_groups` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`group_id` INT(11) NOT NULL,
`user_id` INT(11) NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_auth_user_groups_auth_group1_idx` (`group_id` ASC),
INDEX `fk_auth_user_groups_auth_user1_idx` (`user_id` ASC),
CONSTRAINT `fk_auth_user_groups_auth_group1`
FOREIGN KEY (`group_id`)
REFERENCES `learn_sys_dj`.`auth_group` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_auth_user_groups_auth_user1`
FOREIGN KEY (`user_id`)
REFERENCES `learn_sys_dj`.`auth_user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`auth_user_user_permissions` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`permission_id` INT(11) NULL DEFAULT NULL,
`user_id` INT(11) NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_auth_user_user_permissions_auth_user1_idx` (`user_id` ASC),
CONSTRAINT `fk_auth_user_user_permissions_auth_user1`
FOREIGN KEY (`user_id`)
REFERENCES `learn_sys_dj`.`auth_user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`django_admin_log` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`action_time` TIMESTAMP NULL DEFAULT NULL,
`content_type_id` INT(11) NULL DEFAULT NULL,
`object_id` INT(11) NULL DEFAULT NULL,
`object_repr` VARCHAR(250) NULL DEFAULT NULL,
`action_flag` VARCHAR(250) NULL DEFAULT NULL,
`change_message` VARCHAR(250) NULL DEFAULT NULL,
`app_label` VARCHAR(250) NULL DEFAULT NULL,
`user_id` INT(11) NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_django_admin_log_auth_user1_idx` (`user_id` ASC),
CONSTRAINT `fk_django_admin_log_auth_user1`
FOREIGN KEY (`user_id`)
REFERENCES `learn_sys_dj`.`auth_user` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`django_session` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`session_key` VARCHAR(250) NULL DEFAULT NULL,
`session_data` TEXT NULL DEFAULT NULL,
`expire_date` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 5
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`learnbook_category` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(200) NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`learnbook_tutor` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`first_name` VARCHAR(100) NULL DEFAULT NULL,
`last_name` VARCHAR(100) NULL DEFAULT NULL,
`description` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `learn_sys_dj`.`learnbook_learnbook` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`title` VARCHAR(200) NULL DEFAULT NULL,
`summary` TEXT NULL DEFAULT NULL,
`tutor_id` INT(11) NOT NULL,
`category_id` INT(11) NOT NULL,
PRIMARY KEY (`id`),
INDEX `fk_learnbook_learnbook_learnbook_tutor_idx` (`tutor_id` ASC),
INDEX `fk_learnbook_learnbook_learnbook_category1_idx` (`category_id` ASC),
CONSTRAINT `fk_learnbook_learnbook_learnbook_tutor`
FOREIGN KEY (`tutor_id`)
REFERENCES `learn_sys_dj`.`learnbook_tutor` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_learnbook_learnbook_learnbook_category1`
FOREIGN KEY (`category_id`)
REFERENCES `learn_sys_dj`.`learnbook_category` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;

Созданный запрос был выполнен в SQL-консоли phpMyAdmin (рис. 2.7). Структура созданной базы данных показана на рис. 2.8.

Рисунок 2.7 – SQL-консоль phpMyAdmin

Рисунок 2.8 – Структура созданной базы данных

2.3. Проектирование клиентской части

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

Рисунок 2.9 — Схематическое изображение иерархической структуры
Далее описана структура системы. В понятие структуры программы включается состав и описание связей всех модулей, которые реализуют самостоятельные функции программы и описание носителей вводимых и выводимых данных, а также данных, участвующих в обмене между отдельными подпрограммами.
Разрабатываемая система состоит из блоков, которые отвечают за функционал системы. На рисунке 2.10 показана структура разрабатываемой системы.

Рисунок 2.10 – Структура веб-приложения
Для организации внешнего вида сайта будут использованы возможности HTML, CSS, Bootstrap, JavaScript.
2.4. Проектирование серверной части

Для создания серверной части спроектировать алгоритмы, которые будут использоваться в системе. Одним из основных алгоритмов разрабатываемой системы является алгоритм регистрации в системе (рисунок 2.11). После перехода на страницу с формой ввода данных и заполнения ее данными. После проверки допустимости введенных данных осуществляется проверка на занятость логина. Если логин не занят, осуществляется запись данных пользователя в базу данных. Если логин занят, необходимо ввести новый логин. После этого происходит добавление записи в базу данных и устанавливаются куки для зарегистрированного пользователя.

Рисунок 2.11 – Алгоритм регистрации в системе
Следующим рассмотренным алгоритмом является алгоритм добавления преподавателя, показанный на рисунке 2.12. Здесь осуществляется добавление записи в таблицу преподавателей в базе данных. Перед записью в базу данных происходит валидация данных, которые необходимо записать в базу, а также назначение роли пользователя. В случае если данные допустимы, и отправлены в модель, то происходит их сохранение в базу данных, в таблицу преподавателей.

Рисунок 2.12 – Алгоритм добавления преподавателя
Добавление пользователей и назначение им ролей при запуске приложения осуществляется по алгоритму, показанному на рисунке 2.13. При запуске системы происходит процесс добавления данных для заведомо определенных пользователей с разными ролями (администратор, преподаватель, студент). В процессе выполнения данного алгоритма создаются учетные записи администратора, преподавателя и студента.

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

Рисунок 2.14 – Алгоритм добавления учетной записи студента
Одним из важных алгоритмов в приложении является алгоритм редактирования учетных записей, рассмотрим его на примере алгоритма редактирования студента, который показан на рисунке 2.15. В процессе изменения данных необходимо проверить идентификатор записи в запросе, в случае его присутствия, нужно найти данную запись в базе данных. Если запись присутствует, предоставляется возможность их изменить. После ввода новой информации проводится их валидация, и если они прошли проверку, то осуществляется запись новой информации в базу данных.

Рисунок 2.15 — Алгоритм редактирования учетной записи пользователя
На рисунке 2.16 показана схема удаления учетных записей пользователей. Здесь происходит проверка наличия идентификатора удаляемой записи в запросе, после этого осуществляется поиск выбранной записи в базе данных, и если она найдена, то происходит ее удаление. Исходный код реализации показан в Приложении.

Рисунок 2.16 — Алгоритм удаления пользователя


Страницы 1 2 3

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

Комментарии

Оставить комментарий

 

Ваше имя:

Ваш E-mail:

Ваш комментарий

Валера 14 минут назад

добрый день. Необходимо закрыть долги за 2 и 3 курсы. Заранее спасибо.

Иван, помощь с обучением 21 минут назад

Валерий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Fedor 2 часа назад

Здравствуйте, сколько будет стоить данная работа и как заказать?

Иван, помощь с обучением 2 часа назад

Fedor, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Алина 4 часа назад

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

Иван, помощь с обучением 4 часа назад

Алина, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Алена 7 часов назад

Добрый день! Учусь в синергии, факультет экономики, нужно закрыт 2 семестр, общ получается 7 предметов! 1.Иностранный язык 2.Цифровая экономика 3.Управление проектами 4.Микроэкономика 5.Экономика и финансы организации 6.Статистика 7.Информационно-комуникационные технологии для профессиональной деятельности.

Иван, помощь с обучением 8 часов назад

Алена, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Игорь Петрович 10 часов назад

К утру необходимы материалы для защиты диплома - речь и презентация (слайды). Сам диплом готов, пришлю его Вам по запросу!

Иван, помощь с обучением 10 часов назад

Игорь Петрович, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Инкогнито 1 день назад

У меня есть скорректированный и согласованный руководителем, план ВКР. Напишите, пожалуйста, порядок оплаты и реквизиты.

Иван, помощь с обучением 1 день назад

Инкогнито, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Илья 1 день назад

Здравствуйте) нужен отчет по практике. Практику прохожу в доме-интернате для престарелых и инвалидов. Все четыре задания объединены одним отчетом о проведенных исследованиях. Каждое задание направлено на выполнение одной из его частей. Помогите!

Иван, помощь с обучением 1 день назад

Илья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Alina 2 дня назад

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

Иван, помощь с обучением 2 дня назад

Alina, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Влад 3 дня назад

Здравствуйте. Только поступил! Операционная деятельность в логистике. Так же получается 10 - 11 класс заканчивать. То-есть 2 года 11 месяцев. Сколько будет стоить семестр закончить?

Иван, помощь с обучением 3 дня назад

Влад, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Полина 3 дня назад

Требуется выполнить 3 работы по предмету "Психология ФКиС" за 3 курс

Иван, помощь с обучением 3 дня назад

Полина, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Инкогнито 4 дня назад

Здравствуйте. Нужно написать диплом в короткие сроки. На тему Анализ финансового состояния предприятия. С материалами для защиты. Сколько будет стоить?

Иван, помощь с обучением 4 дня назад

Инкогнито, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Студент 4 дня назад

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

Иван, помощь с обучением 4 дня назад

Студент, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Олег 5 дня назад

Преддипломная практика и ВКР. Проходила практика на заводе, который занимается производством электроизоляционных материалов и изделий из них. В должности менеджера отдела сбыта, а также занимался продвижением продукции в интернете. Также , эту работу надо связать с темой ВКР "РАЗРАБОТКА СТРАТЕГИИ ПРОЕКТА В СФЕРЕ ИТ".

Иван, помощь с обучением 5 дня назад

Олег, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Анна 5 дня назад

сколько стоит вступительные экзамены русский , математика, информатика и какие условия?

Иван, помощь с обучением 5 дня назад

Анна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Владимир Иванович 5 дня назад

Хочу закрыть все долги до 1 числа также вкр + диплом. Факультет информационных технологий.

Иван, помощь с обучением 5 дня назад

Владимир Иванович, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Василий 6 дней назад

сколько будет стоить полностью закрыть сессию .туда входят Информационные технологий (Контрольная работа, 3 лабораторных работ, Экзаменационный тест ), Русский язык и культура речи (практические задания) , Начертательная геометрия ( 3 задачи и атестационный тест ), Тайм менеджмент ( 4 практических задания , итоговый тест)

Иван, помощь с обучением 6 дней назад

Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Марк неделю назад

Нужно сделать 2 задания и 1 итоговый тест по Иностранный язык 2, 4 практических задания и 1 итоговый тест Исследования рынка, 4 практических задания и 1 итоговый тест Менеджмент, 1 практическое задание Проектная деятельность (практикум) 1, 3 практических задания Проектная деятельность (практикум) 2, 1 итоговый тест Проектная деятельность (практикум) 3, 1 практическое задание и 1 итоговый тест Проектная деятельность 1, 3 практических задания и 1 итоговый тест Проектная деятельность 2, 2 практических заданий и 1 итоговый тест Проектная деятельность 3, 2 практических задания Экономико-правовое сопровождение бизнеса какое время займет и стоимость?

Иван, помощь с обучением неделю назад

Марк, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф