Загрузка данных


## Слайд 1. Титульный слайд

**Тема выпускной квалификационной работы:**

**«Разработка веб-приложения для запросов на обеспечение расходными материалами ООО „Компания Хеликон“»**

Автор:
студент группы 4ИСд-1.22
Кондратюк Егор Сергеевич

Руководитель:
Болейнингер И.Е.

Москва, 2026 г.

---

## Слайд 2. Цель и задачи проекта

**Целью выпускной квалификационной работы является разработка веб-приложения для регистрации, согласования и учёта запросов на обеспечение сотрудников ООО «Компания Хеликон» расходными материалами.**

Для достижения поставленной цели необходимо выполнить следующие задачи:

– провести анализ предметной области и существующего порядка работы с расходными материалами;

– выбрать программные средства и технологии разработки;

– определить системные требования к веб-приложению;

– спроектировать концептуальную, инфологическую и физическую модели базы данных;

– реализовать регистрацию, авторизацию и разграничение прав доступа;

– разработать каталог расходных материалов с отображением актуальных складских остатков;

– реализовать создание, просмотр, согласование и выдачу заявок;

– разработать складской и административный разделы;

– провести тестирование и отладку разработанного веб-приложения.

---

## Слайд 3. Основные функции веб-приложения

Разработанное веб-приложение обеспечивает автоматизацию полного цикла работы с расходными материалами организации.

**Основные функции системы:**

– регистрация и авторизация пользователей;

– разграничение прав доступа по ролям;

– просмотр каталога расходных материалов;

– отображение актуального количества материалов на складе;

– поиск расходников по названию и артикулу;

– фильтрация каталога по категориям;

– создание и отправка заявок на согласование;

– одобрение или отклонение заявок;

– оформление полной или частичной выдачи материалов;

– регистрация поступлений от поставщиков;

– просмотр истории складских движений;

– управление пользователями, отделами, ролями и справочниками;

– защита учётных записей от несанкционированного доступа.

---

## Слайд 4. Выбор средств реализации проекта

Для разработки веб-приложения использовался набор клиентских и серверных технологий.

**Серверная часть:**

– PHP 8.0;

– веб-сервер Apache;

– расширение PDO;

– серверные сессии;

– подготовленные SQL-запросы;

– CRUD-операции.

**База данных:**

– MySQL 8.0;

– механизм хранения InnoDB;

– кодировка utf8mb4;

– первичные и внешние ключи;

– нормализация до третьей нормальной формы.

**Клиентская часть:**

– HTML5;

– CSS3;

– JavaScript;

– CSS Grid и Flexbox;

– библиотека Chart.js.

**Средства разработки:**

– Visual Studio Code;

– MAMP;

– OpenServer;

– phpMyAdmin;

– браузеры Google Chrome и Safari.

---

## Слайд 5. Предметная область и взаимодействие ролей

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

В системе предусмотрены три основные роли.

**Заявитель:**

– просматривает каталог расходных материалов;

– создаёт заявки на получение необходимых позиций;

– отправляет заявки на согласование;

– отслеживает текущий статус своих заявок;

– отменяет заявку до завершения её обработки.

**Согласующий:**

– просматривает заявки закреплённых за ним отделов;

– одобряет или отклоняет запросы;

– указывает комментарий к принятому решению;

– оформляет выдачу материалов со склада;

– регистрирует поступления от поставщиков;

– просматривает историю складских операций.

**Администратор:**

– управляет пользователями и ролями;

– управляет отделами и назначает согласующих;

– редактирует каталог расходных материалов;

– управляет производителями и поставщиками;

– просматривает и обрабатывает заявки всех отделов;

– разблокирует учётные записи пользователей.

---

## Слайд 6. Концептуальная модель базы данных

Концептуальная модель отражает основные сущности предметной области и связи между ними.

В состав модели входят следующие сущности:

– пользователь;

– роль;

– отдел;

– согласующий отдела;

– расходный материал;

– категория;

– единица измерения;

– производитель;

– поставщик;

– заявка;

– позиция заявки;

– статус заявки;

– тип складского движения;

– складское движение.

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

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

---

## Слайд 7. Физическая модель базы данных

Физическая модель базы данных реализована в СУБД MySQL 8.0 с использованием механизма хранения InnoDB.

База данных включает 15 связанных таблиц, предназначенных для хранения информации:

– о пользователях и ролях;

– об отделах и согласующих;

– о категориях и единицах измерения;

– о расходных материалах;

– о производителях и поставщиках;

– о заявках и их позициях;

– о статусах заявок;

– о типах и истории складских движений.

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

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

---

## Слайд 8. Пример дизайна веб-приложения

Интерфейс веб-приложения разработан в едином визуальном стиле и адаптирован под разные роли пользователей.

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

На главной странице отображаются:

– количество активных заявок;

– число заявок на согласовании;

– количество позиций с низким остатком;

– общее число расходных материалов;

– последние созданные заявки;

– графики распределения заявок по статусам.

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

---

## Слайд 9. Особенности реализации проекта

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

**Основные особенности реализации:**

– разграничение доступа между заявителем, согласующим и администратором;

– автоматическое формирование уникального номера заявки;

– динамический расчёт складских остатков;

– блокировка выбора отсутствующих на складе материалов;

– поддержка полной и частичной выдачи заявки;

– сохранение истории складских операций;

– автоматическое определение отдела пользователя;

– использование подготовленных выражений PDO;

– хранение паролей в виде защищённых хешей;

– защита от перебора паролей с помощью счётчика неудачных попыток входа;

– временная блокировка учётной записи;

– обновление идентификатора пользовательской сессии после авторизации.

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

Поставленная цель выпускной квалификационной работы была достигнута.

---

## Слайд 10. Завершение

**СПАСИБО ЗА ВНИМАНИЕ**

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

**Готов ответить на ваши вопросы.**