Паспорт проекта

Интерактивная карта проекта · история жизни · идеи

Что это за сервис

ERP-система для компании, занимающейся аутсорсингом/аутстаффингом рабочего персонала.

Суть

Компания берёт у заказчика заказ на работы, набирает под него рабочих, планирует их смены в календаре, отмечает кто вышел/не вышел и формирует реестры для оплаты.

Сферы: клининг, грузчики, разнорабочие, промоутеры, охрана и т.п. (домен handswork — «ручной труд»).

Бизнес-модель

У услуги (Service) две цены:

price_for_customer — платит заказчик
price_for_worker — получает рабочий

Разница между ними — маржа компании-посредника. У рабочего есть ИНН — работа с самозанятыми/договорами.

Главный рабочий процесс

1Заводят проект под заказчика
2Привязывают объекты работ и услуги (цены, расписание)
3Набирают и привязывают рабочих к проекту
4В календаре планирования распределяют рабочих по сменам
5Отмечают статусы по дням (вышел / не вышел / отработал)
6Формируют реестры и выгружают в Excel — оплата рабочим и счёт заказчику

Сущности и связи

Карта основных доменных объектов вокруг проекта.

Project — проект / заказ
объединяет заказчиков, объекты, услуги и рабочих
Partner
компания / тенант (мультитенантность)
Customer / Organization
заказчик и его юрлица
JobObject
объект работ + адреса/контакты
Worker
исполнитель (ИНН, пол, телефоны)
Service
услуга: 2 цены, кол-во рабочих, периодичность
PlanningCalendar
планирование смен: кто/где/когда
CellData
статус рабочего в конкретный день
Registry
реестр, выгрузка в Excel
Dictionary / Status
справочники, ед. измерения, периоды оплаты

Самая сложная и «фирменная» часть — модуль планирования (PlanningCalendar* в backend и pages/plan/_id/ во frontend).

Технические моменты

Стек, архитектура и важные наблюдения.

Backend — erp-3-backend

Laravel 12PHP 8.4 MySQL 8Redis NginxDocker

Запуск через хелпер .docker/d. Документация API — Scribe (/docs).

Frontend — erp-3-frontend

Quasar 2Vue 3 TypeScriptVite Piniayarn

Dev-сервер на :8080. API через VITE_API_URL.

Важные наблюдения

АвторизацияПо телефону + одноразовый код (OTP). Публичны только auth/send-code и auth/check-code, остальное за auth:api. На локалке SMS не шлётся; для +79999999999 код не проверяется.
CRUD-шаблонУ каждой сущности: index/create/store/update/edit/destroy + search, table-config, multiple-actions, save-column-order. UI — настраиваемые таблицы с массовыми действиями.
Праваspatie/laravel-permission (пока все сид-юзеры — ADMIN).
Данные локальноБД в Docker-томе erp-mysql; сохраняются при ./d up/down, стираются при ./d init.

Дневник изменений

История жизни проекта. Общая для всей команды.

Режим просмотра: добавлять и удалять записи могут редакторы и админы.

Идеи и фичи

Общая доска команды: Идея → В проработке → Принято → Сделано / Отклонено.

Режим просмотра. Добавлять идеи могут редакторы и админы; переносить по статусам — только админ.

Заметки

Общие заметки команды со встреч и на лету.

Режим просмотра: оставлять заметки могут редакторы и админы.

Пользователи

Управление доступом: создание пользователей, роли и пароли.

Создать пользователя

Список пользователей

Вход в систему

Авторизуйтесь, чтобы продолжить

Защищённое соединение · доступ по ролям