Skip to content
This repository was archived by the owner on Oct 11, 2024. It is now read-only.
Aristark edited this page Sep 25, 2024 · 9 revisions

Автоматизация работы автосервиса

result_logo

Ссылка на логотип: Скачать логотип проекта

Описание проекта

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

Основные цели проекта

  1. Разработка базы данных для управления автосервисом.
  2. Создание и поддержка операций над записями (CRUD) для таблиц: автомобилей, мастеров, услуг и работ.
  3. Реализация транзакций для поддержки операций, затрагивающих связанные таблицы.
  4. Внедрение триггеров для:
    • Контроля целостности данных.
    • Ограничений по количеству мастеров и их работ.
    • Ограничений на добавление автомобилей с уже существующими номерами.
  5. Реализация хранимых процедур для автоматизации сложных вычислений и обработки данных.
  6. Поддержка интерфейса для операторов автосервиса, позволяющего назначать работы мастерам, а также просматривать статистику и отчеты.

Стек технологий

  • PostgreSQL: для создания и управления базой данных.
  • SwiftUI: для разработки пользовательского интерфейса.
  • Spring: для серверной части приложения.
  • Hibernate: ORM для работы с базой данных.
  • pgAdmin: для управления базой данных.
  • Docker: для контейнеризации приложения.
  • JUnit: для тестирования.
  • BCrypt: для управления безопасностью паролей.

Ключевые функции базы данных

Название Описание
Автомобили Хранение информации об автомобилях.
Мастера Хранение информации о мастерах.
Услуги Хранение данных об услугах с разной ценой.
Работы Журнал выполненных работ.

Триггеры

  • Запрет на добавление автомобиля с уже существующим номером.
  • Запрет на добавление мастера, если количество мастеров превышает 10.
  • Запрет на назначение мастеру более одной работы в день.

Хранимые процедуры

  • Расчет общей стоимости обслуживания отечественных и импортных автомобилей.
  • Определение мастеров, выполнивших наибольшее количество работ за заданный период.

Функциональные возможности клиентского приложения

  1. Интерфейсы для добавления, изменения и удаления мастеров, автомобилей и услуг.
  2. Возможность назначения работ мастерам с указанием даты и выбора услуг.
  3. Просмотр статистики по работам:
    • Общая стоимость обслуживания отечественных и импортных автомобилей.
    • Пять мастеров, выполнивших наибольшее количество работ за месяц.

Дальнейшие планы

  • Расширение функциональности для управления складом запчастей.
  • Интеграция с внешними платежными системами.
  • Улучшение пользовательского интерфейса для оператора автосервиса.