← Все кейсы

Кейс · 2025 · каталог-сервис

Загляните в каталог автошкол изнутри

Реальные блоки сайта, его цвета и шрифт — всё, чтобы разобрать проект без скучных слайдов. Вы внутри кейса, собранного из самого avtoschool.by.

задача

Собрать в одном месте всё, что нужно для выбора автошколы

avtoschool.by (на сайте — бренд «рулим.бел») — независимая платформа выбора автошколы и инструктора по вождению в Минске. Контент-сервис, агрегатор: не сайт одной школы, а каталог 100+ школ и инструкторов с реальными отзывами учеников, рейтингами, ценами по категориям, интерактивной картой и блогом.

Нужно было сделать это без шаблонов, чужих движков и SaaS-конструкторов: свой каталог с фильтрами, своя система отзывов с модерацией, личные кабинеты учеников и инструкторов, админ-панель и заявки на запись, которые уходят в Telegram. И с первого дня — по закону о персональных данных: всё хранится в Беларуси.

Открыть avtoschool.by ↗
Главная avtoschool.by на телефоне

Брендбук

8 цветов · 1 гарнитура

Нажмите на цвет — покажем, где он работает на карточке автошколы из топа главной.

Единственный фирменный акцент. Логотип-руль, цена «от…», активный фильтр, пин на карте и главная кнопка «Записаться».

Подложка зелёных бейджей (с кантом #BBF7D0) и мягкий градиент хиро. Зелёный текст на мяте — «хорошая новость»: топливо включено, свой автодром.

Заголовки, названия школ, цифра рейтинга. Почти чёрный — и активная кнопка сортировки, чтобы не спорить с зелёными фильтрами районов.

Фон страницы и поля поиска. Светло-серый, на котором белые карточки читаются без тяжёлых теней.

Поверхности: карточки школ и инструкторов, шапка, попапы карты. Граница — 1px #E4E4E7.

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

Второй функциональный цвет: фильтр категорий, бейджи «Оплата частями» и «Теория онлайн», категория B. У метро — свои цвета линий.

Звезда рейтинга. У топ-3 — золотое, серебряное и бронзовое кольцо вокруг карточки и кружок с местом.

1
СИ★5.00

Сигнал-Драйв

Московский

от 1 700 р.⛽ ✓
Петровщина
💳 Оплата частями🏁 Свой автодром💻 Теория онлайн
BA
ВсеМосковскийРейтингB
Записаться
Найдите лучшую автошколу
Raleway ExtraBold 800
Заголовки. Плотный трекинг, одно слово — зелёным: так устроен каждый H1 сайта.
Сигнал-Драйв · Московский · от 1 700 р. · ★ 5.00
Raleway 500–700, 10–13 px
Интерфейс. Карточка школы набрана кеглями 10–13 px с табличными цифрами — в один экран помещается весь топ.
Raleway Bold 700
Логотип. Та же гарнитура, строчные буквы, доменная зона — зелёным. Одна гарнитура на весь сайт.
топ-3 экрана
остальные экраны
Показать весь сайт (avtoschool.by)

Карта автошкол Минска

85 школ на карте · линии метро

М1М2М3
Карта автошкол Минска на avtoschool.byКликните, чтобы открыть живую карту

Интерактивная карта на Leaflet + MapLibre GL: пины с логотипами школ, три линии метро и привязка каждой школы к ближайшим станциям. На карточках станция подписана цветом своей линии — ориентир, понятный любому минчанину.

ПетровщинаУручьеКаменная ГоркаСлуцкий Гостинец

Функционал

13 в базе
Раздел:
ФЛ

Фильтры каталога

каталог

Районы, метро, категории A/B/C/D, цена, наличие автодрома, тип коробки, рассрочка.

ИН

Профили инструкторов

каталог

Привязка к школам, опыт, цена за урок, фото автопарка.

БЛ

Блог «Полезное»

каталог

Материалы для будущих водителей, Markdown прямо в админке.

ОТ

Отзывы с модерацией

отзывы

Рейтинг и текст, защита от спама, лимит отзывов на пользователя.

ВР

Внешние рейтинги

отзывы

Оценки школ подтягиваются с Яндекс.Карт и Google Maps.

ЛК

Личный кабинет

кабинеты

Для учеников и инструкторов. JWT на HttpOnly-cookies, bcryptjs.

АД

Админ-панель

кабинеты

Модерация контента и заявок на запись.

RL

Rate limiting

безопасность

На критичных эндпоинтах: вход, регистрация, запись, отзывы.

MB

Проверка файлов по magic bytes

безопасность

Загружаемые файлы валидируются по содержимому, а не по заявленному MIME.

99

Закон № 99-З

закон РБ

Данные физически в РБ, без трансграничной передачи. Подробный документ согласия.

ЖС

Журнал согласий

закон РБ

Каждое согласие фиксируется с версией документа, IP и user-agent.

SR

SSR и schema.org

SEO

EducationalOrganization, Person, Article, AggregateRating; динамический sitemap.xml.

301

Переезд домена без даунтайма

SEO

301 со всех URL с сохранением путей, Change of Address в Google, главное зеркало в Я.Вебмастере.

Путь заявки

4 шага
1

Кнопка «Записаться»

На странице школы или инструктора — одна зелёная кнопка

Записаться
2

Форма и согласие

Телефон, имя, комментарий и согласие на обработку персональных данных

3

Уведомление в Telegram

Заявка уходит в Telegram; пользовательский ввод экранируется

4

Админ-панель

Заявка остаётся в базе — её видно в модерации

NX

Next.js 16

App Router, Turbopack, Route Handlers

React 19 · TypeScript strict
фронт + бэк
PR

Prisma 7

ORM

16 миграций
данные
PG

PostgreSQL 16

Своя база

хостинг в Беларуси
данные
TW

Tailwind CSS 4

Стили

~30 React-компонентов
интерфейс
LF

Leaflet + MapLibre GL

Карта Минска

пины школ, метро
карта
JW

JWT (jose) + bcryptjs

Аутентификация

HttpOnly-cookies
доступ
TG

Telegram Bot API

Интеграция

заявки на запись
заявки
DC

Docker Compose + nginx

Инфраструктура

Let's Encrypt, Cloudflare DNS
деплой
100+
школ и инструкторов в каталоге
~50
страниц и маршрутов
~25
API-эндпоинтов
16
Prisma-миграций
результат

Каталог, в котором всё своё

Платформа работает на avtoschool.by: каталог с фильтрами, отзывы с модерацией и внешними рейтингами, карта Минска с метро, личные кабинеты, админ-панель и заявки в Telegram. Всё написано с нуля, типизировано в TypeScript strict и разворачивается одной командой из standalone Docker-сборки. По дороге сайт переехал на тематический домен с историей — с 301-редиректами и без даунтайма.

Хотите такой же результат?

Обсудим задачу, рассчитаем стоимость и сроки. Первый разбор — бесплатно.

Обсудить проект →
Следующий кейсChina-MinskПромо-сайт