Dev Specs

BetterPlace Staff App — Specification · 00 Overview

Спецификации прототипа. Источник правды — Miro-доска «Copy of Staff App» (screens_catalog.md, screens_model.json) + roadmap-файлы (business/technical/findings). Принцип: верность скелету спецов, минимализм, без оверинжиниринга. Любое наше добавление помечается 🟡 [не было додумано] с обоснованием.

1. Описание проекта

BetterPlace Staff App — система операционного управления виллами в аренду (Bali, Better Place). Закрывает цикл эксплуатации объекта: свойство → плановые/разовые сервисы → задачи → исполнение персоналом «в поле» → отчётность → проекты/ремонты → отзывы гостей; плюс HR-контур и коммуникации.

Два клиента, один домен данных:

КлиентЭкранАудиторияНазначение
Desktop back-office1440×900Operations, Coordinators, Accounting, Owner Servicesуправление, конфигурация, отчётность
Mobile staff app375×812Housekeeping, Handyman (field)исполнение задач, отметки, связь

2. Information Architecture (навигация)

Граф навигации в Miro машиночитаемо отсутствовал → выстроен логически из сайдбаров/вкладок экранов. Помечен 🟡 где достроен.

Desktop — левый сайдбар (top-level модули)

  • Properties (Units) → карточка юнита с вкладками: Profile · Areas · Tasks · Issues · History · Inventory · Infrastructure · Assignments
  • TasksAll Tasks · Issues + фильтры по department
  • Services & TemplatesServices · Task Templates
  • Maintenance Reports → список → отчёт с вкладками Area Report · Tasks · Issues · Summary
  • Projects / Proposals → список (Proposed · Approved · Paid) → proposal
  • Reviews
  • HREmployees · Attendance (Daily/Monthly/Yearly) · Schedules · Shifts · Leave Management · Requests · Public Holidays
  • Schedule (календарь задач) 🟡 (вынесено из карточки юнита как общий вид)

Mobile — нижние табы

  • Home (Announcements + сводка Reservations/Check-Ins/Reviews)
  • Units
  • Tasks (мои задачи) → исполнение (чеклист+таймер)
  • Messager (Chats/Groups/Notifications)
  • Profile (моя посещаемость, баланс отпусков)

3. Роли и права (department-scoped)

Из контента: Operations, Housekeeping Coordinator, Handyman, Accounting, Property Services, Owner Services, Vendors; у сотрудника user_type + Lark ID.

Модель прав (минимальная, object-level default-deny):

  • Coordinator/Operations — полный доступ к своим department-scoped юнитам/задачам/отчётам.
  • Field staff (Housekeeping/Handyman) — mobile: только назначенные задачи + свой профиль.
  • Accounting — costs/proposals/reports (read + financial fields).
  • Owner Services — proposals (создание/approve), reports (read).
  • Vendors — назначенные задачи (ограниченно). 🟡 уточнить у заказчика (F-filter-hierarchy-assignee).
  • Прототип: роль фиксируется на входе, экраны/действия гейтятся по роли. Реальный RBAC — фаза реализации.

4. Дизайн-конвенции

  • Design system: BetterPlace tokens — premium-blue / primary-blue / electric-green, шрифты Inter + Satoshi (см. skill betterplace-landing, brand-agent KB). Минимализм, плотные data-таблицы.
  • Локаль: копирайт EN. Валюта IDR (формат 200,000.00 IDR). Даты DD/MM/YYYY, время HH:MM.
  • Статус-чипы: task status (Planned/New/In Progress/Finished), on-track/overdue, OCCUPIED/VACANT, report status — единые цветовые токены (electric-green = on-track/done, amber = due, red = overdue/blocking).
  • Общие компоненты: fast filters + filters (сохранённые/расширенные), data-table с сортировкой, right-side drawer для detail, tabbed detail-view, + add … инлайн-кнопки.

5. Кросс-эпик data-flow (как данные перетекают)

Service(+Template)  ──recalc engine(S46)──►  Tasks(Planned)
        ▲                                        │ assign by Department Defaults (Unit)
        │ triggers: time / reservation / vacancy │
Reservation ───────────────────────────────────►│ (cleaning, check-in tasks)
                                                 ▼
                                      Task execution (mobile): checklist+timer+photos
                                                 │ status→Finished, costs, area photos
                          ┌──────────────────────┼───────────────────────┐
                          ▼                       ▼                       ▼
                    Area Report            Issue (linked task)      Task Costs
                          │                       │                       │
                          └──────────►  Maintenance Report (month)  ◄──────┘ ──► PDF
                                                 │
Repair need ──► Proposal (problem/solution/costs/warranty) ─[Proposed→Approved→Paid]─► project tasks ─► PDF
Reservation (check-out) ──► Review request ──► Review (ratings) ──► Reviews dashboard
Employee check-in/out (mobile) ──► Attendance D/M/Y ; Leave Request ──► balance update

6. Recalculation engine (UC-1, экран S46)

Фоновый процессор плановых задач. Правила (дословно с экрана):

  • schedule ahead: 30 days; rule Every day at 00:01 for next day + 30.
  • Триггеры пересчёта на объект: service added/removed, service active/inactive, new/edit/delete reservation.
  • Поведение: старт с завтра; правит только service-tasks; удаляет перед созданием; locked-задачи не трогает.
  • Частоты: 1×/day, every Nth day of vacancy, check-in/check-out/every Nth day of reservation, daily/weekday/monthly/last-day/every N months.

В прототипе — экран-конфигуратор правил (read + визуализация). Логика — фаза реализации.

7. Сущности (краткий индекс)

Полная модель — betterplace-staff-app-technical.md §Data model. Ключевые: Unit, UnitArea, InventoryItem(+Move), InfraItem, Service(+Trigger), TaskTemplate(+Section), Task(+Requirement/Cost/Event), Issue, MaintenanceReport(+AreaReport), Proposal(+Item), Reservation, Review, Employee(+Attendance/Leave/Shift/Schedule), LeaveRequest, Announcement, Message.

8. Структура спецификаций

specs/
  00-overview.md              ← этот файл
  00-client-questions.md      ← единый реестр открытых вопросов заказчику
  _TEMPLATE.md                ← формат per-screen/per-epic (обязателен)
  E01-properties-units.md
  E02-services-templates.md
  E03-tasks.md
  E04-mobile-execution.md
  E05-issues.md
  E06-maintenance-reports.md
  E07-projects-proposals.md
  E08-reviews.md
  E09-hr-attendance.md
  E10-communications.md
  E11-mobile-shell.md
  10-system-architecture.md   ← архитектура всей системы (backend-фаза, draft)
  11-security-operations.md   ← безопасность и эксплуатация (backend-фаза, draft)
  12-database-reference.md    ← справочник БД: все таблицы и поля (schema v3)

Нумерация экранов S01..S58 — сквозная, как в screens_catalog.md.