Загрузка данных
## Слайд 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. Завершение
**СПАСИБО ЗА ВНИМАНИЕ**
Разработанное веб-приложение позволяет централизовать работу с расходными материалами, ускорить обработку заявок, обеспечить контроль складских остатков и повысить прозрачность взаимодействия между сотрудниками организации.
**Готов ответить на ваши вопросы.**