# Аннотация **«ЗаводКонтроль»** — приложение для контроля проверок оборудования на промышленном предприятии. Программа помогает работникам выполнять ежедневные и плановые проверки с использованием NFC-меток, фиксировать результаты, выявлять дефекты и создавать заявки на ремонт. Администратор использует систему для контроля расписаний, ролей, логов, заявок и отчётности. ![Логотип приложения](assets/logo.png) --- # Введение Приложение предназначено для повышения безопасности производства и соблюдения требований к эксплуатации оборудования на участках предприятия типа «КП Сплав». Основные возможности: - регистрация оборудования и назначение ответственных лиц; - проведение плановых и ежедневных проверок; - подтверждение этапов проверки через NFC-метки; - ввод параметров проверки и фиксация фото; - создание заявок на ремонт при обнаружении дефектов; - хранение инструкций по проверкам и графиков их выполнения; - формирование отчётов о выполненных и невыполненных проверках; - администрирование ролей, расписаний и заявок. Главное правило работы с программой: проверка считается завершённой только после прохождения всех этапов и фиксации данных. --- # Назначение и условия применения «ЗаводКонтроль» применяется внутри производственного предприятия для контроля состояния оборудования и дисциплины проверок. Программа используется в следующих условиях: - в производственных цехах и на участках с оборудованием, подлежащим регулярной проверке; - на мобильных устройствах под управлением Android для работников; - при наличии NFC-меток на оборудовании; - при подключении серверной части к СУБД PostgreSQL и веб-серверу FastAPI; - при наличии администратора, который управляет расписаниями, пользователями, заявками и отчётами. Программа не предназначена для учёта рабочего времени, финансовых операций и управления персоналом. --- # Установка 1. Подготовьте серверную часть: - [x] установите PostgreSQL; - [x] настройте базу данных приложения; - [x] разверните веб-сервер FastAPI; - [ ] проверьте подключение к корпоративной сети. 2. Установите мобильное приложение: - [x] получите APK-файл приложения «ЗаводКонтроль»; - [x] разрешите установку приложения из доверенного источника; - [x] запустите установку APK-файла на Android-устройстве; - [ ] проверьте наличие иконки приложения в меню телефона. 3. Выполните первичную настройку: - [x] внесите оборудование в базу данных; - [x] привяжите ответственных работников к оборудованию; - [x] загрузите расписание проверок; - [ ] протестируйте вход по табельному номеру. 4. Завершите установку: - [x] проверьте сканирование NFC-меток; - [x] выполните пробную проверку; - [ ] убедитесь, что заявка на ремонт создаётся корректно. --- # Описание операций ## 1. Запуск и вход в систему После установки приложения в меню телефона появляется иконка «ЗаводКонтроль». Пользователь открывает приложение и вводит табельный номер. При корректном вводе открывается главное меню с доступом к профилю, ежедневной проверке, календарю проверок и выходу из профиля. ![Форма авторизации](assets/auth_screen.jpg) ## 2. Выбор проверки Работник выбирает ежедневную или плановую проверку. В расписании автоматически выбирается текущая дата, но пользователь может выбрать другой день в горизонтальном списке дат. Ежедневную можно выбрать в профиле. ![Профиль пользователя](assets/profile_screen.jpg) Плановую проверку выбирают в расписании. ![Страница расписания](assets/schedule_screen.jpg) ## 3. Сканирование NFC-метки Перед началом проверки пользователь нажимает кнопку «Где метка?», смотрит подсказку с расположением метки и сканирует NFC-метку оборудования. Если метка корректная, программа загружает шаблон проверки и открывает первый шаг. ![Сценарий проверки оборудования](assets/check_flow.png) ## 4. Выполнение шагов проверки На каждом шаге пользователь: 1. читает описание операции; 2. вводит числовые или текстовые параметры; 3. фиксирует данные с помощью камеры; 4. сканирует NFC-метку; Пример фрагмента исходного кода клиентской части (ручки): ```java @POST("check/start/{tagId}/{typeCheck}") Call startCheck(@Path("tagId") String tagId,@Path("typeCheck") String typeCheck); @POST("check/step") Call checkStep(@Body StepRequest request); @Multipart @POST("/step/upload") Call uploadStep( @Part("sessionId") RequestBody sessionId, @Part("stepId") RequestBody stepId, @Part("tagId") RequestBody tagId, @Part("value") RequestBody value, @Part("comment") RequestBody comment, @Part MultipartBody.Part photo ); @POST("repair") Call createRepair(@Body RepairRequest request); @GET("/repair/types") Call getRepairTypes(); Call getStep(String stepId); @POST("/auth/login") Call login( @Body LoginRequest request ); @GET("profile/{pass_id}") Call getProfile( @Path("pass_id") String passId ); @GET("schedule/{pass_id}") Call getSchedule( @Path("pass_id") String passId ); @GET("equipment/{pass_id}") Call getEquipment( @Path("pass_id") String passId ); ``` ## 5. Завершение проверки После прохождения всех этапов приложение показывает результат: проверка выполнена успешно или обнаружена проблема. Пользователь может создать заявку на ремонт. ## 6. Создание заявки на ремонт Для создания заявки пользователь нажимает «Заявка на ремонт», выбирает вид дефекта, вводит обязательные данные. После отправки заявка сохраняется в базе данных и становится доступной администратору. ![Форма заявки на ремонт](assets/repair_request.jpg) ## 7. Действия администратора Администратор выполняет следующие операции: - контролирует логи в PostgreSQL; - управляет ролями и доступами; - загружает расписание проверок через административную панель; - рассматривает заявки на ремонт; - просматривает проверки работников; - выгружает отчёты и статистику в Excel. --- # Термины и сокращения ## Термины и сокращения | Термин / сокращение | Английский вариант | Пояснение | | --- | --- | --- | | NFC-метка | NFC tag | Пассивное устройство с чипом и антенной, которое передаёт данные на небольшом расстоянии. | | Верификация | Verification | Подтверждение корректности данных или действия пользователя. | | Инвентарный номер | Inventory number | Уникальный идентификатор оборудования в учётной системе предприятия. | | Плановая проверка | Scheduled check | Проверка оборудования, выполняемая по графику: неделя, месяц или год. | | Ежедневная проверка | Daily check | Проверка оборудования, выполняемая каждый день. | | UID | Unique identifier | Уникальный идентификатор NFC-метки. | | Пользователь | User | Сотрудник, имеющий доступ к функциям системы в рамках своей роли. | | Объект | Object | Сущность, о которой хранится информация в системе: оборудование, документ, заявка. | | Поле | Field | Характеристика объекта, минимальная единица данных в системе. | | Идентификатор | Identifier | Числовой или строковый номер, который однозначно определяет объект. | --- # Справочная информация

Подсказка: если кнопка никак не найти NFC-метку, можно нажать кнопку "Где метка?" и появится картинка-подсказка.

Важно: пустые обязательные поля не допускаются. Система потребует заполнить их перед завершением операции.

Контроль: ошибки входа и подозрительные действия фиксируются в логах администратора.

| Ситуация | Действие пользователя | Результат | |:--|:--:|--:| | Неверный табельный номер | Повторить ввод или обратиться к администратору | Ошибка авторизации устранена | | Не отображается оборудование | Сообщить мастеру или администратору | Ответственный назначен корректно | | Нет интернета | Продолжить работу и дождаться сети | Данные синхронизируются позже | | Заявка не создаётся | Заполнить обязательные поля | Заявка сохранена | --- # Контакты По вопросам работы приложения можно написать разработчикам в Telegram: [@slowwwmint](https://t.me/slowwwmint), [@ArchangelAnna](https://t.me/ArchangelAnna).
Дополнительная контактная информация

ВК:

Email:

--- # Краткий чек-лист пользователя - [x] Войти в приложение по табельному номеру. - [x] Выбрать ежедневную или плановую проверку. - [x] Найти и отсканировать NFC-метку оборудования. - [x] Выполнить все шаги проверки. - [x] Зафиксировать необходимые данные и фото. - [x] Завершить проверку. - [x] При необходимости создать заявку на ремонт.