Задача
Создать Telegram Mini App (веб-приложение внутри Telegram) для управления заказами по выездному ремонту бытовой техники. Это упрощённая CRM-система, функционально похожая на AstraCRM (без копирования названия, только общие принципы). Пользователи с разными ролями работают в одном приложении.
Роли и права
- Администратор: полный доступ, создание и управление всеми заказами, пользователями, настройки системы.
- Куратор: просмотр всех заказов своей группы, назначение мастеров, контроль выполнения.
- Мастер: просмотр назначенных ему заказов, отметка статуса (выполняется/выполнен), просмотр деталей задачи.
Функционал для администратора
- Создание заказа: форма с полями: имя клиента, адрес, телефон, бренд техники + выбор мастера или куратора (по умолчанию администратор может назначить любого). Созданный заказ автоматически отправляется выбранному специалисту.
- Вкладка с заказами: отфильтрованный список (по номерам, по полям), возможность изменения статуса (выполняется, отложен, завершён, возврат), комментарии на каждом этапе.
- Кнопка «Смотреть плечо» - просмотр комментариев и хроники мастера за конкретный период (часы/дни)
- Кнопка «Сменить мастера» - переназначение заказа, при смене - старое уведомление о снятии, новому приходит назначение
- «Архивировать заказ» - перенос в архив (видеть могут только админ и куратор) - Календарь: просмотр занятости каждого мастера по датам и напоминания о просроченных заказах.
- Отчеты: статистика по мастерам: количество выполненных/активных заказов, среднее время выполнения, количество причин по заказам (опоздания и т.д.), отфильтрованное по периоду только для администратора.
Дополнительный функционал для куратора
- Создавать чаты/группы с мастерами (в рамках порядка звеньев) или отслеживать (фильтр) по своим (города, звенья).
- Отмечать причину каждого закрытия заказа: норма - стандартное выполнение (бережное-честное-прайс), излишняя (мастер вызван работодателем в другом порядке). Система с засором показателей.
- Получать уведомления опоздания и задержек.
- Кнопка отмены на причину (например: выехал, отказ - аварийная ситуация), отмечает статусов (почасов/ по км/ с зациклом системы внутренних удержаний и т.п. Внутренние мотивацию НЕ НУЖНОО - больше алгоритмический статус)
Технические требования
- Платформа: Telegram Mini App (на чистом JS/React или Python/AIOGram на выбор исполнителя)
- Данные должны храниться в БД (PostgreSQL, MySQL или другая)
- Авторизация через Telegram ID пользователя с кодом - при себе мобильный номер не обязателен кроме телефона.)
- Возможно использовать в автосинфазе маркдауна/форматы не сверхдлинны/тип верстка легкий амплифицирован.