Индивидуальный предприниматель2020

Генератор карт рабочих мест

Fullstack-разработчик

Логотип проекта по автоматизации охраны труда
С нуля
от требований до готовой сборки
Несколько
организаций в одной базе
SQLite
локальное хранение данных
1 действие
оформление комплекта документов
Стек
ElectronReactNode.jsExpressSQLiteSCSSPostCSSElectron Packager
Период
2020 год
Роль
Fullstack-разработчик
Клиент
Индивидуальный предприниматель

О проекте

В 2020 году я с нуля разработал для частного заказчика — индивидуального предпринимателя — desktop-приложение, которое автоматизировало подготовку документов по охране труда. Пользователь мог вести несколько организаций, указывать состав комиссии, добавлять рабочие места и заполнять для каждого из них карту на основе встроенного реестра опасностей. После заполнения данных приложение формировало валидный комплект документов по всем рабочим местам. Я самостоятельно прошёл весь путь от сбора требований до проектирования базы данных, frontend- и backend-разработки и сборки приложения на Electron.

Автоматизировать работу специалиста по охране труда

Проект создавался для индивидуального предпринимателя, который готовил документацию по охране труда для разных организаций. Значительная часть работы повторялась: нужно было собирать сведения об организации и комиссии, описывать рабочие места, переносить данные из реестра опасностей и оформлять итоговые документы.

Целью стало единое desktop-приложение, в котором оператор мог последовательно заполнить исходные данные, сохранить их для дальнейшей работы и сформировать документы без повторного ручного переноса информации между таблицами.

  • Автоматизация повторяющегося рабочего процесса
  • Работа с несколькими организациями
  • Единая база рабочих мест и опасностей
  • Формирование документов внутри приложения

Полный цикл разработки одним специалистом

Я полностью реализовал проект с нуля, начиная со сбора и формализации требований. Самостоятельно спроектировал пользовательские сценарии, frontend приложения, Node.js-часть, структуру SQLite-базы и процесс сборки Electron-приложения.

React отвечал за интерфейс и работу со сложными формами, Node.js и Express — за прикладную логику, а SQLite позволяла хранить организации, комиссии, рабочие места и заполненные карты локально между запусками приложения.

  • Сбор и анализ требований
  • Проектирование интерфейса и структуры данных
  • Frontend на React и SCSS
  • Node.js, Express, SQLite и Electron-сборка

Несколько организаций и составы комиссий в одной базе

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

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

  • Создание нескольких организаций
  • Данные председателя и членов комиссии
  • Редактирование сохранённой информации
  • Постоянное хранение в SQLite
Список организаций в приложении для охраны труда
Экран управления организациями с адресами и данными комиссии

От организации — к перечню рабочих мест

Внутри каждой организации создавался отдельный перечень рабочих мест. Пользователь мог добавлять должности, открывать их для заполнения, редактировать данные и постепенно готовить полный набор карт для выбранной организации.

Когда все рабочие места были заполнены, оператору не требовалось собирать документы по одному: основной сценарий завершался общей командой «Оформить документы».

  • Отдельный перечень для каждой организации
  • Добавление и редактирование рабочих мест
  • Переход к детальной карте рабочего места
  • Единое действие для оформления документов
Перечень рабочих мест выбранной организации
Управление рабочими местами и переход к формированию документов

Заполнение карты из встроенного справочника

Для каждого рабочего места открывалась подробная карта. В приложение был загружен реестр опасностей с поиском по коду: оператор выбирал нужные пункты, после чего соответствующие поля карты заполнялись автоматически.

Автоматическое заполнение не ограничивало пользователя. Все значения можно было проверить и вручную отредактировать через интерфейс, чтобы учесть особенности конкретного рабочего места и организации.

  • Встроенный реестр опасностей
  • Поиск и выбор по коду
  • Автоматическое заполнение полей карты
  • Ручное редактирование всех данных
Выбор опасностей из справочника в боковой панели
Поиск по реестру и добавление выбранных опасностей в карту
Заполненная таблица оценки рисков для рабочего места
Карта рабочего места с описанием опасностей и оценкой рисков

Готовый комплект после заполнения рабочих мест

После подготовки всех карт пользователь нажимал «Оформить документы». Приложение собирало сведения об организации, комиссии, рабочих местах и выбранных опасностях и генерировало для всей организации комплект документов, соответствовавший действовавшим требованиям.

Все исходные данные сохранялись в базе, поэтому при следующем запуске оператор мог открыть организацию, скорректировать сведения и повторно оформить документы без заполнения проекта заново.

  • Генерация по всем рабочим местам
  • Использование единого набора сохранённых данных
  • Повторное редактирование и оформление
  • Снижение объёма ручной работы

Прикладной desktop-продукт от идеи до готовой сборки

Результатом стал самостоятельный рабочий инструмент, который объединил ведение организаций, справочник опасностей, заполнение карт рабочих мест и подготовку документов в одном последовательном процессе.

Для меня этот проект стал опытом полного владения продуктом: от общения с заказчиком и проектирования сценариев до реализации интерфейса, серверной логики, локальной базы данных и готовой Electron-сборки.