Портфолио · Mobile + Backend

Грузоперевозки72

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

Flutter 6.0.0 PHP REST API Firebase Push iOS + Android Админ-панель

Проблема и решение

⚠️

Было

  • Десятки звонков и чатов в разных мессенджерах
  • Нет единого рейтинга и истории сделок
  • Сложно найти технику по параметрам и городу
  • Непрозрачные условия и комиссии

Стало

  • Одна площадка: поиск → отклик → сделка → отзыв
  • Две роли в одном аккаунте (заказчик / исполнитель)
  • Умный поиск с счётчиками заявок по городу
  • Встроенные чаты, push-уведомления, раздел финансов

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

🚛 Заказчик

  • Каталог услуг: газели, фуры, краны, экскаваторы, грузчики
  • Поиск исполнителей по городу и параметрам
  • Публикация заявок и приём предложений
  • Таймер выполнения заказа, чат, отзывы

👷 Исполнитель

  • Размещение объявлений о технике за 2 минуты
  • Поиск заявок заказчиков в реальном времени
  • Отклики, принятие заказов, выполнение
  • Финансы: история заказов и выплат

Ключевые функции

🔍

Поиск

Гибкий поиск supply/demand, счётчики «(N)» по услугам и городам, сортировка по наличию заявок.

💬

Чаты

Переписка по сделке, чат техподдержки 24/7, push о новых сообщениях.

💰

Финансы

Раздел для исполнителей: учёт заказов, комиссии, история начислений.

Рейтинги

Взаимные отзывы после завершения заказа, рейтинг в профиле.

🔔

Push

Firebase Cloud Messaging: статусы заказов, отклики, начало выполнения.

⏱️

Сделки

Два сценария matching, таймер выполнения, контроль статусов в реальном времени.

Как работает сделка

Сценарий 1: исполнитель → заявка заказчика

Отклик исполнителя Принятие заказчиком Начало выполнения Таймер + чат Отзывы

Сценарий 2: заказчик → объявление исполнителя

Предложение заказа Принятие исполнителем Выполнение Завершение Повторный заказ возможен

Мобильное приложение

Стек

Flutter 3.x Dart Firebase Auth FCM Firestore Dio / HTTP Secure Storage

Архитектура UI

  • Две независимые ветки shell-навигации (заказчик / исполнитель)
  • Единая тема и дизайн-система
  • ~80+ экранов, формы объявлений по типам техники
  • Dual-role: изоляция supply vs demand
6.0версия приложения
2платформы (iOS, Android)
3категории заявок (bd 1/2/3)
24/7поддержка в чате

Backend и админка

КомпонентОписание
PHP REST API50+ эндпоинтов: поиск, сделки, офферы, отзывы, подписки
search_services_coreЕдиный движок поиска supply/demand, счётчики, visibility SQL
ordersglobalЖизненный цикл сделки: выполнение, таймер, источник сделки
MySQLorders, orderst, ordersg, add_ob_*, offer_data, users
Admin WebМодерация, статистика, финансы, пользователи, search debug
FirebasePush-уведомления, чаты (Firestore)

Веб-админка

PHP + MySQL, сессии администратора, CSRF. Панель для модерации, аналитики и коммуникации с пользователями.

📊 Статистика

  • Выручка подписок и GMV сделок
  • Новые / продления / истёкшие подписки
  • Пользователи, объявления, отклики, отзывы
  • Оплаты по дням, последние платежи

👥 Пользователи

  • Поиск, фильтр по роли и статусу
  • Модерация (одобрение / блок)
  • Подписка исполнителя, финансы
  • Отзывы, счётчики объявлений

📢 Рассылка

  • E-mail и FCM push
  • Аудитория: все, город, роль, подписка
  • Подписка истекает через 3 дня
  • Превью выборки, до 2000 за раз

💬 Поддержка

  • Очередь обращений из приложения
  • Статусы: новые, в работе, ждём ответа
  • Чат оператора, шаблоны ответов
  • Вложения, push пользователю

📋 Модерация

  • Объявления исполнителей (3 типа)
  • Заявки заказчиков
  • Одобрение / отклонение + уведомление
  • Отклики и предложения на карточке

⚙️ Справочники

  • Города, виды техники, грузоподъёмность
  • Виды кузова, картинки в BLOB
  • Тариф подписки (цена, срок)
  • Настройки аккаунта админа

Технические решения

Поиск и счётчики

  • Гибридный подсчёт demand: GROUP BY + отдельная логика для грузчиков
  • Единые SQL-фрагменты visibility (supply / demand)
  • API search_order_counts.php + UI-подсказки «(N)» в Flutter

Безопасность данных

  • Фильтр «не показывать свои объявления в чужой роли»
  • JWT-сессии, проверка viewer на стороне API
  • Разделение сценариев сделки по deal_source

CI/CD

  • Codemagic: сборка IPA, TestFlight
  • Gradle release AAB для Google Play
  • Автоподпись iOS (App Store Connect API)

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

  • 12+ markdown-гайдов: сделки, поиск, чаты, сценарии
  • Smoke-скрипты для API
  • Карта экранов и веток навигации

Экраны и модули

Заказчик

  • Каталог услуг
  • Поиск исполнителей
  • Мои заявки
  • Предложения
  • Выполнение заказа

Исполнитель

  • Объявления
  • Поиск заявок
  • Отклики
  • Финансы
  • Подписка

Общее

  • Профиль и аватар
  • История
  • Чаты
  • Отзывы
  • Оплата подписки (эквайринг)

Результат

Для бизнеса

  • Готовый продукт для регионального рынка логистики
  • Публикация в App Store и Google Play
  • Монетизация через сервис-сбор с успешных сделок
  • Админка для операционного управления

Для портфолио

  • Full-stack: Flutter + PHP + MySQL + Firebase
  • Сложная бизнес-логика (dual-role, 2 сценария сделок)
  • Поисковый движок с реальными edge-cases
  • Production-ready: CI, подпись, документация
80+экранов Flutter
50+PHP API
12+документов
2стора (iOS, Android)
Спасибо за внимание

Грузоперевозки72

Маркетплейс грузоперевозок и спецтехники — от идеи до публикации в сторах.

📱 iOS · Android 🌐 ivnovav.ru 📦 Flutter + PHP 🗺️ Тюмень и область