Введение в проект
При создании приложений-справочников для местных бизнесов возникла необходимость документировать архитектуру и упаковать её в виде стартового набора для других разработчиков. Это позволит упростить процесс создания подобных проектов и уменьшить время разработки.
Технологический стек
Для создания приложения был выбран следующий стек технологий:
- Бэкенд: Laravel 11 с REST API для обработки запросов и обмена данными между сервером и клиентом.
- Фронтенд: Flutter PWA (Progressive Web Application) для создания веб-приложения, которое может работать на различных устройствах и платформах.
- Карты: OpenStreetMap через библиотеку
flutter_map, что позволяет использовать карты без необходимости получения ключа Google Maps API. - База данных: MySQL с поддержкой полнотекстового поиска и геолокации по формуле Хаверсайна для определения расстояния между объектами.
Архитектура приложения
Приложение поддерживает два типа пользователей: администраторов и операторов ввода данных (capturistas). Операторы вводят информацию о бизнесе, которая затем попадает в состояние ожидания. Администраторы проверяют и утверждают или отклоняют эту информацию, после чего она становится доступна публично.
Аутентификация
Аутентификация пользователей реализована с помощью пользовательских токенов, хранящихся в таблице tokens_sesion. Этот подход исключает необходимость использования Sanctum для простых случаев аутентификации, что упрощает процесс разработки и снижает накладные расходы на поддержку безопасности.
Преимущества подхода
Использование Laravel 11 на бэкенде обеспечивает высокую скорость разработки и надежную основу для API, в то время как Flutter PWA на фронтенде позволяет создавать кроссплатформенные веб-приложения с современным дизайном и интерактивными возможностями. Выбор OpenStreetMap и MySQL позволяет экономить ресурсы и избегать зависимости от сторонних сервисов.
Возможности и перспективы
Созданный стартовый набор может быть полезен разработчикам, которые начинают работать над подобными проектами. Он включает в себя готовую архитектуру, которая может быть адаптирована под конкретные требования проекта, что значительно ускоряет процесс разработки. Кроме того, использование открытых технологий и библиотек снижает стоимость разработки и поддержки приложения.