Accurat System — это мультитенантная (Multi-tenant SaaS) клиент-серверная экосистема для полной автоматизации бизнес-процессов сетей автомоек и автосервисов. Проект спроектирован по принципу монорепозитория (monorepo) и обеспечивает строгую изоляцию данных независимых компаний-клиентов внутри единого серверного ядра.
В состав комплекса входят:
- Высокопроизводительный десктопный терминал администратора/кассира (WPF .NET Framework 4.8, паттерн MVVM).
- Мобильное приложение для управляющих и владельцев (Кроссплатформенный .NET MAUI).
- Централизованный отказоустойчивый сервер (ASP.NET Core REST API) с базой данных PostgreSQL.
Экосистема использует сквозную контекстную изоляцию. Клиентские приложения при аутентификации получают параметры тенанта, после чего статический пул HttpClient (Singleton) автоматически подмешивает во все запросы заголовок X-Company-Id. Серверное ядро выполняет валидацию и фильтрацию данных на лету, исключая утечку конфиденциальной информации (баз клиентов, прайс-листов, транзакций) между параллельными компаниями.
graph TD
A[WPF Admin Terminal] -->|REST + X-Company-Id Header| B(ASP.NET Core SaaS API)
C[MAUI Mobile App] -->|REST + X-Company-Id Header| B
B -->|EF Core / Tenant Isolation Filter| D[(PostgreSQL)]
B --> E[Outbox Processor]
B --> F[SignalR WebSockets]
AccuratPanelCarWashing/— Десктопный клиент (WPF). Основное рабочее место кассира-администратора. Управление живой очередью боксов, проводка кассовых операций, расчет апселл-бонусов, синхронизация по WebSockets (SignalR) и локальный экспорт аналитики.AccuratPanelCWM/— Мобильный клиент (.NET MAUI). Оперативный кроссплатформенный пульт контроля с поддержкой динамической смены тем оформления и адаптивным дашбордом.Accurat.WebAPI/— Серверная часть (ASP.NET Core). Центральное REST API ядро системы. Инкапсулирует вычисления, финансовую математику, управление транзакциями и фоновые службы (Background Services).AccuratSystem.Contracts/— Библиотека контрактов. Общие скомпилированные модели данных (Order,User,Branch), DTO-объекты авторизации/смены статусов и перечисления (Enums). Обеспечивает строгую типизацию и контрактную целостность между API и клиентами.
- Аутентификация до авторизации: Двухшаговый вход в систему (
LoginWindow). Список филиалов скрыт до проверки пароля. Если у пользователя доступен один филиал (мойщик) — вход происходит бесшовно; если несколько (директор сети) — активируется шаг выбора рабочей точки. - Изоляция сущностей: Услуги (
Service), клиенты (Client), статусы (OrderStatus), категории автомобилей и способы оплаты изолированы на уровнеCompanyId. Прайс-листы и базы клиентов не пересекаются. - Режим Бога (God Mode): Специализированная системная роль
Разработчик(RoleId = 0) выведена из-под матрицы ограничений конкретного тенанта (CompanyIdустановлен вnull), что открывает сквозной доступ ко всем компаниям и филиалам платформы для администрирования.
- Soft Split (Распределение ЗП): Связь "многие-ко-многим" (
OrderWashers) позволяет назначать на один заказ команду исполнителей с гибким распределением долей участия и выручки. - Кастомные тарифные сетки: Сервер рассчитывает ЗП на основе базового процента сотрудника с возможностью переопределения (индивидуальной ставки) для высокомаржинальных или сложных услуг (например, нанесение защитных покрытий).
- Кассовый контроль и Авансирование: Раздельный real-time учет наличных, карт, переводов и СБП (QR-код). Именная выдача авансов из кассы с автоматическим удержанием и перерасчетом ведомости при закрытии смены.
- Интерактивная доска: Мгновенный Drag-and-Drop перенос карточек заказов между боксами и департаментами (Мойка / Сервис) с синхронизацией по SignalR.
- Умный кассир (Upsell DLC): Алгоритм автоматического анализа состава заказа и выдачи умных подсказок для допродаж со встроенной геймификацией бонусов для администраторов.
- Умное расписание: Посекундный анализ хронологии статусов (
OrderStatusHistory) для точной аналитики времени нахождения машины в боксе и предотвращения накладок при бронировании.
- Core SaaS System: Базовый учет, тенанты, сквозные заголовки контекста.
- Smart Cashier (DLC): Модуль умных подсказок (Upsell) и калькулятор апселл-бонусов.
- Smart Staff Management: Обновленный модуль запуска смен (
StartShiftWindow) с интерактивным поиском и многовыборочным сохранением состояния фильтра. - Перестроить MAUI-проект под новую архитектуру: Обновленное мобильное приложение с использованием чистых контрактов и MVVM-архитектуры.
- Модуль управления филиалами сети: Окно с настройками филиалов(
название, адрес, номер телефона, тип филиала, кол-во боксов для мойки, кол-во боксов для сервиса, рабочий ли филиал). - Reputation Management Module (DLC): Вызов краткой и развернутой сводки из сервисов для отзывов (Яндекс, Google, 2ГИС) с возможностью ответа из терминала.
- CRM-Marketing (DLC): Автоматическая SMS/Telegram рассылка триггерных уведомлений по базе.
- Storage Module (DLC): Складской учет автохимии, материалов, инвентаризация и калькуляция себестоимости.
- Telegram Boss (DLC): Бот-агрегатор для отправки вечерних отчетов и P&L-метрик владельцам бизнеса.
- Backend: C# 13, .NET 10, ASP.NET Core, EF Core, PostgreSQL (Npgsql), SignalR, Scalar/Swagger.
- Desktop Client: C# 7.3, WPF (.NET Framework 4.8), LiveCharts, ClosedXML, Newtonsoft.Json, SignalR Client.
- Mobile Client: C# 13, .NET MAUI (.NET 10), MVVM Architecture.
- Установите .NET 10 SDK и СУБД PostgreSQL.
- Сконфигурируйте строку подключения в
Accurat.WebAPI/appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=accurat_db;Username=postgres;Password=your_password"
}
}
- Примените миграции для развертывания структуры базы данных:
cd Accurat.WebAPI
dotnet ef database update
- Запустите Web-сервер:
dotnet run
- Откройте решение
AccuratSystem.slnв Visual Studio 2022. - Проверьте базовый URL сервера в статическом пуле
ApiService. - Для запуска десктопа установите
AccuratPanelCarWashingкак запускаемый проект и нажмите F5.
Распространяется под лицензией MIT.
Dima Kuraedov (@iamfifya)
- Telegram: @iamfifya
- Email: dimakuraedov@gmail.com
Продукт спроектирован и разработан с использованием архитектурных рекомендаций больших языковых моделей ИИ.




