Fullstack-разработчик
В 2020 году я с нуля разработал для частного заказчика — индивидуального предпринимателя — desktop-приложение, которое автоматизировало подготовку документов по охране труда. Пользователь мог вести несколько организаций, указывать состав комиссии, добавлять рабочие места и заполнять для каждого из них карту на основе встроенного реестра опасностей. После заполнения данных приложение формировало валидный комплект документов по всем рабочим местам. Я самостоятельно прошёл весь путь от сбора требований до проектирования базы данных, frontend- и backend-разработки и сборки приложения на Electron.
Проект создавался для индивидуального предпринимателя, который готовил документацию по охране труда для разных организаций. Значительная часть работы повторялась: нужно было собирать сведения об организации и комиссии, описывать рабочие места, переносить данные из реестра опасностей и оформлять итоговые документы.
Целью стало единое desktop-приложение, в котором оператор мог последовательно заполнить исходные данные, сохранить их для дальнейшей работы и сформировать документы без повторного ручного переноса информации между таблицами.
Я полностью реализовал проект с нуля, начиная со сбора и формализации требований. Самостоятельно спроектировал пользовательские сценарии, frontend приложения, Node.js-часть, структуру SQLite-базы и процесс сборки Electron-приложения.
React отвечал за интерфейс и работу со сложными формами, Node.js и Express — за прикладную логику, а SQLite позволяла хранить организации, комиссии, рабочие места и заполненные карты локально между запусками приложения.
Пользователь мог добавлять в приложение любое количество организаций и указывать необходимые сведения по каждой из них, включая состав комиссии. Созданные карточки сохранялись в локальной базе и оставались доступными после повторного запуска.
Оператор мог вернуться к организации, изменить её данные или продолжить работу с перечнем рабочих мест. Такой подход превращал приложение из одноразового генератора в постоянный рабочий инструмент.
Внутри каждой организации создавался отдельный перечень рабочих мест. Пользователь мог добавлять должности, открывать их для заполнения, редактировать данные и постепенно готовить полный набор карт для выбранной организации.
Когда все рабочие места были заполнены, оператору не требовалось собирать документы по одному: основной сценарий завершался общей командой «Оформить документы».
Для каждого рабочего места открывалась подробная карта. В приложение был загружен реестр опасностей с поиском по коду: оператор выбирал нужные пункты, после чего соответствующие поля карты заполнялись автоматически.
Автоматическое заполнение не ограничивало пользователя. Все значения можно было проверить и вручную отредактировать через интерфейс, чтобы учесть особенности конкретного рабочего места и организации.
После подготовки всех карт пользователь нажимал «Оформить документы». Приложение собирало сведения об организации, комиссии, рабочих местах и выбранных опасностях и генерировало для всей организации комплект документов, соответствовавший действовавшим требованиям.
Все исходные данные сохранялись в базе, поэтому при следующем запуске оператор мог открыть организацию, скорректировать сведения и повторно оформить документы без заполнения проекта заново.
Результатом стал самостоятельный рабочий инструмент, который объединил ведение организаций, справочник опасностей, заполнение карт рабочих мест и подготовку документов в одном последовательном процессе.
Для меня этот проект стал опытом полного владения продуктом: от общения с заказчиком и проектирования сценариев до реализации интерфейса, серверной логики, локальной базы данных и готовой Electron-сборки.