Skip to content

iamfifya/AccuratSystem

Repository files navigation

Accurat System — Комплексная SaaS-платформа управления сетью автомоек и сервисов

.NET Build License: MIT Last Commit Code Size

📝 Описание проекта

Accurat System — это мультитенантная (Multi-tenant SaaS) клиент-серверная экосистема для полной автоматизации бизнес-процессов сетей автомоек и автосервисов. Проект спроектирован по принципу монорепозитория (monorepo) и обеспечивает строгую изоляцию данных независимых компаний-клиентов внутри единого серверного ядра.

В состав комплекса входят:

  • Высокопроизводительный десктопный терминал администратора/кассира (WPF .NET Framework 4.8, паттерн MVVM).
  • Мобильное приложение для управляющих и владельцев (Кроссплатформенный .NET MAUI).
  • Централизованный отказоустойчивый сервер (ASP.NET Core REST API) с базой данных PostgreSQL.

📸 Скриншоты интерфейса

Главное окно на ПК:

Use case

Стол управляющего:

UML диаграмма

Интервальный отчет:

UML диаграмма

Авторизация на смартфоне:

UML диаграмма

Главное окно на смартфоне:

UML диаграмма

📐 Архитектура системы

Экосистема использует сквозную контекстную изоляцию. Клиентские приложения при аутентификации получают параметры тенанта, после чего статический пул 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]

Loading

📂 Структура монорепозитория

  • AccuratPanelCarWashing/ — Десктопный клиент (WPF). Основное рабочее место кассира-администратора. Управление живой очередью боксов, проводка кассовых операций, расчет апселл-бонусов, синхронизация по WebSockets (SignalR) и локальный экспорт аналитики.
  • AccuratPanelCWM/ — Мобильный клиент (.NET MAUI). Оперативный кроссплатформенный пульт контроля с поддержкой динамической смены тем оформления и адаптивным дашбордом.
  • Accurat.WebAPI/ — Серверная часть (ASP.NET Core). Центральное REST API ядро системы. Инкапсулирует вычисления, финансовую математику, управление транзакциями и фоновые службы (Background Services).
  • AccuratSystem.Contracts/ — Библиотека контрактов. Общие скомпилированные модели данных (Order, User, Branch), DTO-объекты авторизации/смены статусов и перечисления (Enums). Обеспечивает строгую типизацию и контрактную целостность между API и клиентами.

🌟 Основные возможности

🔒 Безопасность и Мультитенантность (SaaS)

  • Аутентификация до авторизации: Двухшаговый вход в систему (LoginWindow). Список филиалов скрыт до проверки пароля. Если у пользователя доступен один филиал (мойщик) — вход происходит бесшовно; если несколько (директор сети) — активируется шаг выбора рабочей точки.
  • Изоляция сущностей: Услуги (Service), клиенты (Client), статусы (OrderStatus), категории автомобилей и способы оплаты изолированы на уровне CompanyId. Прайс-листы и базы клиентов не пересекаются.
  • Режим Бога (God Mode): Специализированная системная роль Разработчик (RoleId = 0) выведена из-под матрицы ограничений конкретного тенанта (CompanyId установлен в null), что открывает сквозной доступ ко всем компаниям и филиалам платформы для администрирования.

💰 Финансовый модуль и Зарплатное ядро

  • Soft Split (Распределение ЗП): Связь "многие-ко-многим" (OrderWashers) позволяет назначать на один заказ команду исполнителей с гибким распределением долей участия и выручки.
  • Кастомные тарифные сетки: Сервер рассчитывает ЗП на основе базового процента сотрудника с возможностью переопределения (индивидуальной ставки) для высокомаржинальных или сложных услуг (например, нанесение защитных покрытий).
  • Кассовый контроль и Авансирование: Раздельный real-time учет наличных, карт, переводов и СБП (QR-код). Именная выдача авансов из кассы с автоматическим удержанием и перерасчетом ведомости при закрытии смены.

📅 Операционный учет и CRM

  • Интерактивная доска: Мгновенный Drag-and-Drop перенос карточек заказов между боксами и департаментами (Мойка / Сервис) с синхронизацией по SignalR.
  • Умный кассир (Upsell DLC): Алгоритм автоматического анализа состава заказа и выдачи умных подсказок для допродаж со встроенной геймификацией бонусов для администраторов.
  • Умное расписание: Посекундный анализ хронологии статусов (OrderStatusHistory) для точной аналитики времени нахождения машины в боксе и предотвращения накладок при бронировании.

🚀 Roadmap (Планы развития)

  • 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.

⚙️ Требования к окружению и Запуск

1. Серверная часть (API)

  1. Установите .NET 10 SDK и СУБД PostgreSQL.
  2. Сконфигурируйте строку подключения в Accurat.WebAPI/appsettings.json:
{
  "ConnectionStrings": {
    "DefaultConnection": "Host=localhost;Database=accurat_db;Username=postgres;Password=your_password"
  }
}
  1. Примените миграции для развертывания структуры базы данных:
cd Accurat.WebAPI
dotnet ef database update
  1. Запустите Web-сервер:
dotnet run

2. Клиентская часть

  1. Откройте решение AccuratSystem.sln в Visual Studio 2022.
  2. Проверьте базовый URL сервера в статическом пуле ApiService.
  3. Для запуска десктопа установите AccuratPanelCarWashing как запускаемый проект и нажмите F5.

📄 Лицензия

Распространяется под лицензией MIT.

👤 Автор

Dima Kuraedov (@iamfifya)

Продукт спроектирован и разработан с использованием архитектурных рекомендаций больших языковых моделей ИИ.

About

Разработка панели управления и собственного API для Accurat. Отдельное спасибо DeepSeek, Qwen и Google Gemini и сервису symbl.cc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages