Исходное описание
« Я мастер по гипсокартону с двумя работниками, около десяти объектов одновременно. По каждому объекту у меня есть клиент, адрес, сумма сметы и статус: в подготовке, в работе, ожидание клиента, завершён, выставлен счёт. Я записываю рабочие дни с часами каждого и израсходованные материалы. Я хочу видеть, что в работе, что затягивается, и общую сумму к выставлению счёта за месяц. »
План, утверждённый перед генерацией
Описание переводится в план, который просматривают перед генерацией. Для ChantierClair: четыре сущности — Объект, Клиент, Рабочий день, Израсходованный материал — связанные так, как говорит питч: объект принадлежит клиенту, рабочий день и материал привязаны к объекту.
Пять статусов, использованных в тексте (в подготовке, в работе, ожидание клиента, завершён, выставлен счёт), берутся в план как есть и станут бейджами и фильтрами приложения. Заявленные показатели — объекты в работе, часы за месяц, сумма к выставлению счёта — присутствуют в плане ещё до всякой генерации.
- Сущности: Объект, Клиент, Рабочий день, Израсходованный материал
- Связи: объект → клиент; рабочий день → объект; материал → объект
- Статусы: в подготовке, в работе, ожидание клиента, завершён, выставлен счёт
- Показатели: объекты в работе, часы за месяц, сумма к выставлению счёта
Навигация: сначала объекты
Боковая панель перечисляет разделы: Панель, Объекты, Клиенты, Рабочие дни, Материалы. Список объектов — это центральный экран: каждая строка показывает название объекта, клиента, адрес, сумму сметы в денежном формате и статус в виде цветного бейджа — «Ожидание клиента» не спутать с «В работе».
Фильтр по статусу выполняет сортировку в понедельник утром: один клик, чтобы видеть только то, что в работе, другой — чтобы выделить «Завершён», ещё не выставленные к оплате. Поиск по названию или клиенту, сортировка по сумме или дате: список заменяет папку, а не наоборот.
Карточка объекта, с рабочими днями и материалами
Карточка объекта «Дом Perrin — Пристройка» объединяет то, что жило в трёх местах: сведения об объекте (кликабельный клиент, адрес, смета 18 400 €, статус), затем ниже — две связанные таблицы: датированные рабочие дни с часами каждого работника и израсходованные материалы с количествами.
История читается сверху вниз как журнал работ: с одного взгляда видно, что объект стартовал 3 июня, что на него ушло 74 часа и что было смонтировано. Именно реляционная база привязывает всё к нужному объекту — ничего переписывать.
Внесение рабочего дня
Форма «Новый рабочий день» заполняется быстро, потому что вечером на базе никто не пишет отчёт: объект выбирается из выпадающего списка, дата предзаполнена, часы вводятся числом, а поле заметки принимает полезное («профили закончены, гипсокартон завтра»).
Внесённое питает всё остальное: карточку объекта, сумму часов за месяц на панели. Внесено один раз, в нужном месте.
Панель: вопросы хозяина, в цифрах
Панель отвечает на вопросы питча: сколько объектов в работе, сколько в ожидании клиента (те, что затягиваются), общее число отработанных часов за месяц и сумму к выставлению счёта — сумму смет завершённых, но не выставленных объектов.
Разбивка объектов по статусам дополняет плитки: форма портфеля заказов читается с одного взгляда. Все эти цифры вычисляются по базе при каждом показе — сумма к выставлению счёта меняется, как только объект переходит в статус «Завершён».
Демоданные: правдоподобная фирма
ChantierClair поставляется с несколькими месяцами смоделированной активности: около дюжины объектов с правдоподобными названиями («Фасад Dubois», «Мансарда Rue des Tilleuls»), распределённых по пяти статусам, постоянные клиенты, рабочие дни, растянутые с марта по июнь, и согласованные расходы материалов.
Инструмент оценивают на заполненных экранах: фильтру есть что фильтровать, панель показывает правдоподобные суммы. Затем демоданные удаляются. Приложение работает по своему выделенному URL, доступно с телефона на объекте, а исходный код экспортируется целиком (ZIP, GitHub).