Аннотация
1 Анализ предметной области 9
1.1 Обзор конкурентов 9
1.2 Выявление функциональных требований 10
1.2.1 Выявление актеров 10
1.2.2 Выявление вариантов использования 11
1.3 Модель предметной области 14
1.4 Схема базы данных 17
2 Архитектура и технологический стек 20
2.1 Архитектура SPA + API 20
2.2 Инструменты разработки 23
2.2.1 Frontend 23
2.2.2 Backend 23
2.2.3 Дополнительные инструменты 24
3 Реализация 27
3.1 Клиентская часть 27
3.1.1 Описание работы Vue-компонентов 30
3.1.2 Клиент 32
3.1.3 Работник 37
3.2 Серверная часть 42
3.2.1 Обработка входящего запроса 42
3.2.2 Обработка запроса в рамках API 44
3.2.3 Работа с хранилищами данных 45
3.3 Непрерывная интеграция и запуск приложения 47
3.3.1 Continuous Integration 48
3.3.2 Continuous Deployment 49
ЗАКЛЮЧЕНИЕ 50
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 52
Актуальность работы
Несмотря на наличие множества веб-ресурсов, связанных с автосервисами, большинство из них ограничиваются лишь информационными страницами или, в лучшем случае, предоставляют функцию онлайн-записи. Такие решения не обеспечивают полноценного взаимодействия между клиентом и работником сервиса, а также не реализуют множество удобств, как для клиентов, так и для работников.
Разрабатываемое веб-приложение ориентировано на создание единой системы, в которой каждый участник процесса - и клиент, и сотрудник автосервиса - получает собственный набор инструментов. Клиент может записаться на ремонт, отслеживать статус заявки и хранить историю обслуживания своего автомобиля. Сотрудник же получает возможность управлять заявками, планировать свою загрузку и вести переписку в рамках конкретной задачи.
Таким образом, актуальность работы заключается в создании единого комплексного решения, охватывающего все ключевые бизнес-процессы автомастерской - от онлайн-записи клиентов и управления заявками до внутренней коммуникации и планирования загрузки сотрудников. В отличие от большинства существующих решений, которые выполняют лишь отдельные функции, предлагаемое приложение обеспечивает полную цифровизацию взаимодействия между клиентом и автосервисом.
Цель выпускной квалификационной работы
Разработать веб-приложение для автомастерской, которое одновременно упрощает взаимодействие с сервисом для клиентов и повышает эффективность работы персонала: владельцы автомобилей смогут
записываться на обслуживание, следить за состоянием своих машин и общаться с механиками в чате, а сотрудники сервиса - видеть общий поток заявок, самостоятельно выбирать подходящие задачи и тем самым гибко формировать свою загрузку.
Задачи выпускной квалификационной работы:
1. Провести подробный анализ предметной области.
2. Проанализировать конкурентов, выявить ключевые особенности для приложения.
3. Выделить функциональные требования, построить модель предметной области, схему базы данных.
4. Выбрать архитектурный шаблон и спроектировать архитектуру, определить используемые инструменты разработки.
5. Реализовать приложение.
6. Организовать процесс непрерывной интеграции и
развертывания (CI/CD).
Новизна и практическая значимость
Разрабатываемое веб-приложение является современным решением, которое охватывает все ключевые процессы техобслуживания и объединяет их в одну систему.
Новизна проекта заключается в предоставлении комплексного решения: для клиентов это онлайн-интерфейс записи, отслеживание статуса ремонта и коммуникация с механиками в чате, тогда как для персонала сервис предоставляет единый рабочий кабинет, где сотрудники видят общий поток заявок, самостоятельно распределяют задачи и напрямую взаимодействуют с владельцами автомобилей.
Интеграция всех этапов обслуживания в одной системе повышает удобство для клиентов, снижает административные издержки и существенно повышает эффективность работы автомастерской в целом.
В ходе выполнения выпускной квалификационной работы достигнута поставленная цель - разработано веб-приложение для автомастерской, интегрирующее все этапы взаимодействия между работниками и клиентами, а также обеспечивающее эффективную организацию внутренних производственных процессов.
Первоначально была проведена комплексная аналитическая часть работы: изучены существующие решения на рынке, выделены их ограничения и сформулирован набор конкурентных преимуществ разрабатываемой системы. Проведен системный анализ предметной области, составлены диаграммы вариантов использования, ER-модель данных и UML-модель домена, что позволило заложить фундамент архитектуры.
На уровне проектирования выбран шаблон SPA + API и реализована двухконтурная серверная архитектура - независимые сервисы Client API и Worker API написаны на Go с применением Gin и GORM, что обеспечило высокую производительность, простоту масштабирования и разделение зон ответственности. Frontend создан как одностраничное приложение на Vue.js с использованием Vue Router и Vuex, что дало реактивный интерфейс и удобную навигацию без перезагрузок.
В качестве инфраструктурных компонентов задействованы MySQL (основное хранилище данных), Redis (кэш и сессии) и MinlO (S3-совместимое объектное хранилище медиафайлов). Все сервисы контейнеризированы с помощью Docker и запускаются единым стеком Docker Compose, что гарантирует воспроизводимость окружения и упрощает перенос между средами.
Для обеспечения автоматизированной поставки новых версий внедрен конвейер GitLab CI/CD. Он автоматически выполняет анализ кода, формирует Docker-образы, обновляет теги в конфигурации Compose и перезапускает только изменённые контейнеры, тем самым исключается «человеческий фактор», сокращается время вывода новой функциональности в эксплуатацию и минимизируется возможный простой сервиса.
Итогом работы стало веб-приложение для работы автомастерской. Система улучшает качество обслуживания клиентов и упорядочивает внутренние процессы автомастерской, а гибкая архитектура, контейнеризация и настроенный CI/CD-конвейер создают фундамент для дальнейшего развития проекта.