Skip to content
verusdevPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

WheelDeal — AutoCRM

SaaS-CRM для сети автосалонов на Laravel + Livewire.

Репозиторий: github.com/verusdev/WheelDeal

Laravel 13 Livewire 4 Tailwind CSS 4 PHP 8.3 SQLite MIT License


Описание

WheelDeal — мультитенантная CRM-система для сети автосалонов. Покрывает весь цикл работы салона: автопарк, клиентская база, сделки-воронка, счета и коммерческие предложения с PDF, сервис и запчасти, задачи, отчёты, bulk-действия, импорт/экспорт CSV, а также встроенная AI-функциональность.

Возможности:

  • 📊 Dashboard со статистикой, конверсией и графиками (Chart.js)
  • 🚗 Автопарк: карточки авто с фото, фильтры, статусы (в наличии / зарезервирован / продан)
  • 👥 Клиенты: база с источниками лидов, тегами и историей
  • 🔄 Сделки-воронка: lead → call → test_drive → quote → negotiation → deal → finished → lost, Kanban-доска с drag-n-drop
  • 💰 Счета / коммерческие предложения с генерацией PDF (DomPDF), а также ДКП, ПТС, СТС, ОСАГО
  • 🧰 Сервис: записи на обслуживание и ремонт, склад запчастей
  • ✅ Задачи: доска, приоритеты, дедлайны
  • 📈 Отчёты и аналитика по менеджерам и воронке
  • 📧 Bulk-действия: массовая SMS-рассылка, массовое обновление цен
  • 📥 Импорт/экспорт CSV (клиенты, авто, сделки)
  • 🗓 Расписание тест-драйвов
  • 🏢 Мультитенантность: одна БД с company_id на каждой сущности, отдельные storage-диски и автоматические scopes
  • ✨ AI-анализ фото и генерация описаний (см. ниже)

AI-функциональность

Встроенный AI-слой работает с любым OpenAI-совместимым API — OpenAI, YandexGPT, GigaChat, OpenRouter и т.п.

AI-анализ фото

Кнопка «AI-анализ фото» в форме автомобиля: vision-модель распознаёт по фотографиям:

  • марку, модель, год выпуска, цвет;
  • тип кузова, двигателя, коробки передач и привода;
  • оценку состояния, описание видимых повреждений, комплектацию.

Распознанные характеристики автоматически заполняют пустые поля формы (уже введённые значения не перетираются).

AI-генерация описания

Кнопка «AI-описание» в форме автомобиля и на странице карточки авто: генерирует продающее описание на русском языке на основе данных автомобиля + результатов анализа фото.

Результаты AI сохраняются в поле cars.meta (JSON): meta.ai_analysis — структурированный результат анализа, meta.ai_description — флаг сгенерированного описания.

Активация AI

Добавьте в .env:

AI_ENABLED=true
AI_BASE_URL=https://api.openai.com/v1   # или совместимый endpoint (YandexGPT, GigaChat, OpenRouter)
AI_API_KEY=ваш_ключ
AI_VISION_MODEL=gpt-4o-mini
AI_TEXT_MODEL=gpt-4o-mini
AI_TIMEOUT=120
AI_MAX_PHOTOS=3
AI_JSON_RESPONSE_FORMAT=true

После этого в форме авто появится кнопка «AI-анализ фото», в описании — «AI-описание». Пока AI_ENABLED=false, кнопки показывают понятное сообщение об ошибке «AI не настроен».


Установка и запуск

Требования: PHP 8.3+, Composer, Node.js + npm.

# 1. Установка зависимостей
composer install

# 2. Создать .env из шаблона и настроить БД (SQLite по умолчанию)
copy .env.example .env
# для SQLite также создайте пустой файл базы:
# type nul > database\database.sqlite

# 3. Сгенерировать ключ приложения
php artisan key:generate

# 4. Миграции + демо-данные (сидер)
php artisan migrate --seed

# 5. Фронтенд
npm install
npm run build       # для продакшена
# npm run dev       # для разработки

# 6. Запуск
php artisan serve
php artisan queue:listen

Очередь (QUEUE_CONNECTION=database в .env.example) обязательна для фоновых задач — держите её запущенной.

Composer-скрипты

Команда Что делает
composer setup Полная первичная установка: composer install → создание .env → key:generate → migrate --force → npm install → npm run build
composer dev Запускает одной командой php artisan serve, очередь, логи (pail) и Vite через concurrently
composer test Прогон тестов (config:clear + php artisan test)

Первый вход: сидер создаёт учётную запись администратора admin@wheeldeal.ru. Точные учётные данные и логику обработки пароля смотрите в database/seeders/DatabaseSeeder.php.


Тесты

php artisan test

Сейчас 25 зелёных тестов. Новые тесты AI-слоя — tests\Feature\CarAiServiceTest.php: анализ фото, генерация описания, парсинг JSON, обработка ошибок; HTTP-запросы мокаются через Http::fake.


Структура проекта

app/
├── Livewire/                # Livewire-компоненты (страницы и формы)
│   ├── Dashboard.php        # дашборд
│   ├── CarList / CarForm / CarDetail
│   ├── ClientList / ClientForm / ClientDetail
│   ├── KanbanBoard / DealForm / DealDetail
│   ├── TaskBoard
│   ├── InvoiceList / InvoiceForm
│   ├── ServiceList / ServiceForm
│   ├── PartList / PartForm
│   ├── CompanySettings / UserManagement
│   ├── SellCar / Reports / TestDriveCalendar
│   ├── BulkSms / BulkPriceUpdate / CsvImportExport
│   └── Auth/Login, Auth/Register
├── Services/
│   └── Ai/                   # AI-слой
│       ├── AiClient.php      # клиент OpenAI-совместимого chat/completions API
│       ├── CarAiService.php  # анализ фото + генерация описания
│       └── AiException.php
├── Models/                   # Eloquent-модели (с глобальным scope по company_id)
└── Http/
    ├── Controllers/
    └── Middleware/           # проверка ролей, активности компании
config/
├── ai.php                    # конфигурация AI (читает AI_* из .env)
└── filesystems.php           # отдельные storage-диски для файлов компаний
database/
└── migrations/               # миграции (company_id на всех сущностях)
resources/views/
└── livewire/                 # blade-шаблоны компонентов
routes/
└── web.php                   # маршруты

Детальное описание архитектуры, доменных моделей и компонентов — в ARCHITECTURE.md.


Роли пользователей

Роль Описание
admin Владелец / администратор компании. Полный доступ.
manager Менеджер по продажам. Авто, клиенты, сделки, задачи.
consultant Консультант. Только клиенты и сделки (создание/чтение).
viewer Только чтение. Дашборд и отчёты.

Лицензия

Проект распространяется под лицензией MIT (см. composer.json).


Документация

  • ARCHITECTURE.md — архитектура, стек, доменные модели, Livewire-компоненты
  • FEATURES.md — реализованный функционал и план развития
  • AI_IDEAS.md — идеи и статус AI-функциональности
  • DEVELOPER_GUIDE.md — подробное руководство для начинающих разработчиков

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages