Анна Архангельская 1 kuukausi sitten
sitoutus
3293350a06
1 muutettua tiedostoa jossa 246 lisäystä ja 0 poistoa
  1. 246 0
      README.md

+ 246 - 0
README.md

@@ -0,0 +1,246 @@
+# Аннотация
+
+**«ЗаводКонтроль»** — приложение для контроля проверок оборудования на промышленном предприятии. Программа помогает работникам выполнять ежедневные и плановые проверки с использованием NFC-меток, фиксировать результаты, выявлять дефекты и создавать заявки на ремонт. Администратор использует систему для контроля расписаний, ролей, логов, заявок и отчётности.
+
+![Логотип приложения](assets/logo.png)
+
+---
+
+# Введение
+
+Приложение предназначено для повышения безопасности производства и соблюдения требований к эксплуатации оборудования на участках предприятия типа «КП Сплав».
+
+Основные возможности:
+
+- регистрация оборудования и назначение ответственных лиц;
+- проведение плановых и ежедневных проверок;
+- подтверждение этапов проверки через NFC-метки;
+- ввод параметров проверки и фиксация фото;
+- создание заявок на ремонт при обнаружении дефектов;
+- хранение инструкций по проверкам и графиков их выполнения;
+- формирование отчётов о выполненных и невыполненных проверках;
+- администрирование ролей, расписаний и заявок.
+
+<mark>Главное правило работы с программой: проверка считается завершённой только после прохождения всех этапов и фиксации данных.</mark>
+
+---
+
+# Назначение и условия применения
+
+«ЗаводКонтроль» применяется внутри производственного предприятия для контроля состояния оборудования и дисциплины проверок.
+
+Программа используется в следующих условиях:
+
+- в производственных цехах и на участках с оборудованием, подлежащим регулярной проверке;
+- на мобильных устройствах под управлением 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<StartResponse> startCheck(@Path("tagId") String tagId,@Path("typeCheck") String typeCheck);
+
+    @POST("check/step")
+    Call<StepResult> checkStep(@Body StepRequest request);
+
+    @Multipart
+    @POST("/step/upload")
+    Call<StepResult> 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<Void> createRepair(@Body RepairRequest request);
+
+    @GET("/repair/types")
+    Call<RepairTypesResponse> getRepairTypes();
+
+    Call<Step> getStep(String stepId);
+
+    @POST("/auth/login")
+    Call<LoginResponse> login(
+            @Body LoginRequest request
+    );
+
+    @GET("profile/{pass_id}")
+    Call<ProfileResponse> getProfile(
+            @Path("pass_id") String passId
+    );
+    @GET("schedule/{pass_id}")
+    Call<ScheduleResponse> getSchedule(
+            @Path("pass_id") String passId
+    );
+
+    @GET("equipment/{pass_id}")
+    Call<EquipmentResponse> 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 | Числовой или строковый номер, который однозначно определяет объект. |
+
+---
+
+# Справочная информация
+
+<p align="left"><strong>Подсказка:</strong> если кнопка никак не найти NFC-метку, можно нажать кнопку "Где метка?" и появится картинка-подсказка.</p>
+
+<p align="center"><strong>Важно:</strong> пустые обязательные поля не допускаются. Система потребует заполнить их перед завершением операции.</p>
+
+<p align="right"><strong>Контроль:</strong> ошибки входа и подозрительные действия фиксируются в логах администратора.</p>
+
+| Ситуация | Действие пользователя | Результат |
+|:--|:--:|--:|
+| Неверный табельный номер | Повторить ввод или обратиться к администратору | Ошибка авторизации устранена |
+| Не отображается оборудование | Сообщить мастеру или администратору | Ответственный назначен корректно |
+| Нет интернета | Продолжить работу и дождаться сети | Данные синхронизируются позже |
+| Заявка не создаётся | Заполнить обязательные поля | Заявка сохранена |
+
+---
+
+# Контакты
+
+По вопросам работы приложения можно написать разработчикам в Telegram: [@slowwwmint](https://t.me/slowwwmint), [@ArchangelAnna](https://t.me/ArchangelAnna).
+
+<details>
+<summary>Дополнительная контактная информация</summary>
+
+<blockquote>
+    <p><strong>ВК:</strong></p>
+    <ul>
+      <li><a href="https://vk.com/ekaterina_elnova">Ельнова Екатерина</a></li>
+      <li><a href="https://vk.com/arhangelfly">Архангельская Анна</a></li>
+    </ul>
+
+    <p><strong>Email:</strong></p>
+    <ul>
+      <li><a href="mailto:katakata45882@gmail.com">katakata45882@gmail.com</a></li>
+      <li><a href="mailto:Arhangelsc.nov@yandex.ru">Arhangelsc.nov@yandex.ru</a></li>
+    </ul>
+</blockquote>
+
+</details>
+
+---
+
+# Краткий чек-лист пользователя
+
+- [x] Войти в приложение по табельному номеру.
+- [x] Выбрать ежедневную или плановую проверку.
+- [x] Найти и отсканировать NFC-метку оборудования.
+- [x] Выполнить все шаги проверки.
+- [x] Зафиксировать необходимые данные и фото.
+- [x] Завершить проверку.
+- [x] При необходимости создать заявку на ремонт.