← Все проекты

DSE-Mriya

Internal · PWAВнутренний продукт

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

Роль
Продукт, дизайн и код — один человек
Зачем
Под реальную задачу собственного отдела спецтехники
Где
Mriya Resort & SPA — виноградники и работы по землеобработке
Стек
Next.js 16 · React 19 · TypeScript 5.9 · PostgreSQL 17 + Prisma 7 · Tailwind 4 · PWA
Особенности
Офлайн-кэш форм · вход по PIN · установка на телефон · Excel-экспорт
Срок
Апрель 2026 · внутренний продукт · деплой через Dokploy

Зачем это

В отделе спецтехники Mriya Resort & SPA каждый день десятки выходов: трактористы опрыскивают, культивируют и мульчируют виноградники, иногда выходят на сторонние земляные работы — посадку виноградных саженцев и подготовку участков. Раньше отчётность шла на словах и на бумаге — кто, где и сколько сделал, сколько отработала техника, собрать в цифры было почти нельзя.

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

Утром — план, вечером — факт

Рабочий цикл повторяет реальный день. Утром тракторист открывает приложение, выбирает локацию, технику и клетки, ставит план и моточасы на начало смены. Вечером возвращается и в три поля закрывает факт: сколько сделал, моточасы на конец смены, заметки. Никаких лишних экранов — всё крупное и под большой палец.

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

Руководитель видит всё в цифрах

То, ради чего всё затевалось. На дашборде — сводка за период: сколько гектаров и рядов обработано (план и факт) и сколько моточасов отработала техника. Ниже — разрезы, которые раньше приходилось считать вручную.

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

Журнал и выгрузка в Excel

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

Журнал: фильтры по трактористу, технике и датам + выгрузка в Excel.

Под капотом

Небольшое, но настоящее приложение: одна кодовая база на Next.js держит и операторский PWA, и админку. Сделано просто и надёжно — чтобы работало в поле и не требовало обслуживания.

  • Next.js 16 (App Router) · React 19 · TypeScript 5.9
  • PostgreSQL 17 + Prisma 7
  • Tailwind 4 + свои shadcn-подобные компоненты, графики на Recharts
  • PWA на @ducanh2912/next-pwa: установка на экран, офлайн-кэш форм
  • Вход по PIN с bcrypt и rate-limiting, сессии в куках
  • Excel-экспорт на exceljs; деплой через Dokploy с автоматическим TLS

Рабочий день — в одном окне

Весь операторский путь — от входа до закрытой смены — помещается в несколько простых экранов под большой палец.

Вход по имени и PIN — без логинов и паролей.
«Сегодня»: план и факт за день, прогресс готовности.
План на день: локация, техника, клетки, моточасы.
Вечерний отчёт: факт, моточасы, заметки — можно офлайн.
Контакт

Давайте
поговорим.

Ищу роль в продукте / AI / операционке — удалёнка или релокация.

Открыт к новым возможностям. Готов подробно рассказать о своём опыте, показать проекты и предоставить доступ к коду.

Открыт к удалёнке / релокации / командировкам