Цель проекта
Реализовать мульти-ресторанную систему, где каждый ресторан доступен по уникальному поддомену вида '{restaurant_name}.your-company-domain.com'. Система должна работать аналогично среде WordPress Multisite: поддомен создается автоматически и без необходимости вручную добавлять DNS-записи.
Ключевые задачи
- Установка и настройка приложения: развернуть Backend-часть (на Laravel) и Frontend-части проекта, настроить базу данных и миграции, сконфигурировать окружение для работы по протоколу HTTPS.
- Разработка мультисайтовой логики (Multisite):
- реализовать поддержку динамических поддоменов любого уровня (*.my-domain.com);
- добавить в профиль ресторана поле
subdomain с ограничениями: уникальность, все буквы только английские (латиница), разрешены дефис и цифры; запрещено использование служебных слов (admin, www, mail, dashboard, help). Список запрещенных доменов обязан легко расширяться; - если запрашиваемый поддомен не найден - показать пользователю страницу с сообщением соответствующей ошибкой (404).
- Организация аутентификации: настроить сессии и передачу данных auth между основным доменом и всеми новыми поддоменами, используя многосайтовый подход, что бы вход пользователя синхронизировался.
- SSL-поддержка: возможность иметь HTTPS для поддоменов (*). Принимаются следующие способы: использование общего wildcard сертификата Летс энкрипт или настройка за SSL на стороне сервера с Wildcard также.
Ожидаемый результат
- Публикация полного проекта на домене/поддомене тестовой зоне;
- Поддомен дожжн работать и самостоятельно анализировать пользователей в зависимости от определенного ресторана.