Обзор
Контекст
ZIYO нанимает специалистов и направляет их к клиентам — в офисы, магазины, на склады. Один сотрудник может работать у нескольких клиентов, и у каждого назначения свои график и ставки. Без единой системы трудно ответить на простые вопросы: кто сейчас на месте, сколько часов отработано, сколько клиент должен компании и сколько компания — сотруднику.
Задача
Собрать учёт в одном приложении с тремя кабинетами — для компании, клиента и сотрудника. Сотрудник отмечается с телефона за несколько нажатий, приход подтверждают снимок, геолокация и время сервера, а часы, работа сверх графика и суммы считаются автоматически. Клиент при этом видит только свои данные.
Архитектура
Наведите на узел или выберите модуль в таблице ниже, чтобы увидеть, за что он отвечает.
Модули
Стек
- Frontend
- Next.js, TypeScript, Tailwind CSS
- Приложение на телефоне
- PWA (Serwist), Web Push, карты Leaflet и OpenStreetMap
- Сервер и данные
- Supabase: PostgreSQL, Row Level Security, Auth, Storage, Edge Functions, pg_cron
- Отчёты
- ExcelJS, печатная форма в PDF
- Хостинг
- Vercel
Результат
- Отметка, которой можно верить
- Приход и уход подтверждают живой снимок рабочей зоны, геолокация и время сервера, а аккаунт привязан к одному устройству.
- Спорное не останавливает работу
- Сомнительная отметка не блокирует сотрудника: она принимается, помечается и уходит менеджеру на проверку.
- Часы и суммы считаются сами
- Табель за месяц показывает, сколько клиент должен компании, сколько компания — сотрудникам и какова маржа.
- Один сотрудник — несколько клиентов
- У каждого назначения свои график и ставки, а пересечение смен система не допускает.
- Клиент видит только своё
- Чужие клиенты, ставки сотрудников и маржа закрыты на уровне базы данных, а не только в интерфейсе.
- Без магазинов приложений
- Приложение ставится на главный экран Android и iPhone прямо из браузера и работает на компьютере.
- От идеи до системы в одиночку
- Продукт, интерфейс трёх кабинетов, база данных, расчёты и разграничение доступа сделаны одним разработчиком.
