SaaS-платформа

Alemi Fleet — SaaS для управління автопарком

📅2026
2 тижні
👥1 розробник
🔒 fleet.alemi.pro/superКомпанії платформи+ Нова компаніяКомпаніяЮзериФуриСтатусDDemo Logisticscompany_id = 158DEMOЗайти як →TTransWest LLCcompany_id = 2310ActiveЗайти як →KKyiv Cargocompany_id = 324ActiveЗайти як →OOld Freightcompany_id = 412SuspendedЗайти як →🌙 Демо-компанія скидається щоночі о 03:00 — реальні дані не зачіпаютьсяТенант: TransWest LLCtripsWHERE company_id=2trucksWHERE company_id=2driversWHERE company_id=2debtsWHERE company_id=2Трек-лінк замовника/track/•••••••• 🔗ЗавантаженоВ дорозіДоставленоТенант-ізоляціяPASS Tests: 43 passed (tenancy)17 tables · BelongsToTenant scope
43
тести тенант-ізоляції
17
таблиць під scope
1 хв
нова компанія

Задача

Після успішного single-tenant впровадження (кейс «Система управління автопарком») продукт треба було продавати іншим перевізникам. Розгортати окрему копію коду під кожного дрібного клієнта — неможливо підтримувати. Потрібна одна платформа з повністю ізольованими акаунтами компаній, живе демо для продажів і публічна посадкова сторінка, яка збирає ліди.

Що реалізовано

Систему перебудовано в мультитенантну платформу на спільній базі даних: кожна компанія бачить лише свої дані, власник керує акаунтами з окремої панелі, а демо-компанія щоночі автоматично скидається до чистого стану. Кожна фіча свідомо лишається портованою в окремий standalone-інстанс — для ПРО-клієнтів на власному домені.

1

Тенант-ізоляція в одній БД: трейт із глобальним scope та автопідстановкою company_id на 17 таблицях

жоден запит не перетинає межу компанії.

2

Fail-closed доступ: призупинена чи прострочена компанія отримує 403; правила unique/exists вручну скоуплені по компанії, бо валідатори обходять Eloquent-scope.

3

Панель власника /super: створення компанії з першим адміном за хвилину, suspend, термін дії, нотатки та «Зайти як»

impersonation з банером повернення.

4

Демо = тенант №1: нічний scoped-reset видаляє лише дані демо-компанії й пересіює їх наново (GitHub Actions cron)

реальні компанії не зачіпаються.

5

Публічний трек-лінк для замовника вантажу: статус-таймлайн, маршрут і фото доставки за токен-посиланням

без грошей і персональних даних, з throttle.

6

Календар фур: тижнева сітка зайнятості машин, смужки рейсів у кольорах статусів, лічильник вільних фур.

7

PWA: service worker, standalone-режим і портал водія на телефоні

водій відмічає етапи рейсу й вантажить фото документів.

8

SEO-лендінг: JSON-LD, OG-розмітка, sitemap/robots, реальні скріни продукту в браузер-рамках, лід-форма з доставкою в Telegram власнику, GA4.

9

Довідники пер-компанія: статуси рейсів і категорії витрат сідяться дефолтами при створенні компанії, кеш

з ключем компанії.

10

43 автотести тенант-ізоляції покривають scope, валідації, крони й файли завантажень.

Результат

Одна платформа обслуговує демо і клієнтські компанії: нова компанія створюється з панелі власника за хвилину, без жодного деплою. Демо щоночі повертається до еталонного стану і завжди готове до презентації. Тарифна модель: Старт і Стандарт живуть на платформі, ПРО — окремий інстанс на домені клієнта, який розгортається з того самого коду.

Технології

Laravel 12Livewire 4Tailwind CSSMySQLGitHub ActionsTelegram Bot API

Маєте схожу задачу?

Обговорити проєкт

Наступний кейс

Розробка системи

Система управління автопарком