ТЕХНИЧЕСКОЕ ЗАДАНИЕ (короткое)
Проект: Otell.pro — Платформа для размещения и бронирования жилья
Этап: MVP
Платформа: **WordPress**
1. ЦЕЛЬ ПРОЕКТА (MVP)
Разработать минимально жизнеспособный продукт на WordPress, позволяющий:
- **Хостам** размещать объекты через личный кабинет
- **Гостям** находить объекты, отправлять заявки на бронирование и звонить Хостам
- **Хостам** видеть статистику заявок в ЛК и получать уведомления в Telegram
- **Администратору** модерировать контент
Фокус — на мобильно-оптимизированный PWA-сайт."
2. ТЕХНИЧЕСКИЙ СТЕК
Компонент
Решение для WordPress
Примечание
Frontend
Тема Astra + Elementor Pro
Кастомизация шаблонов
Backend
PHP + Кастомные плагины
База данных
MySQL
Оптимизация под 10К+ объектов
Хостинг
VPS (Cloudways)
4GB RAM, 2 ядра
Критические плагины
Ultimate Member<br>• Advanced Custom Fields PRO<br>• Gravity Forms<br>• WPML
Локализация при росте
3. РОЛИ ПОЛЬЗОВАТЕЛЕЙ
3.1 Гость
- **Регистрация** через Ultimate Member (роль "Guest"):
- **Поиск объектов**:
Фильтры по городу/цене/спальным местам (FacetWP)
Сортировка по релевантности
- **Карточка объекта**:
Фото (галерея), описание, удобства
Кнопка "Отправить заявку или Позвонить"
- **ЛК Гостя**: история заявок (статус, объект, дата)
3.2 Хост
- **Регистрация** (роль "Host") + верификация:
Email + SMS-подтверждение (Twilio API)
Загрузка документа (через Gravity Forms)
- **Добавление объекта**:
Кастомная форма (ACF + Gravity Forms)
Поля: адрес (без точки на карте), фото, описание, условия
- **ЛК Хоста**:
Список объектов (с количеством заявок)
Детализация по заявкам (гость, дата, статус)
Архивация объектов
- **Telegram-уведомления**:
Бот привязан к аккаунту хоста
Instant-оповещения о новых заявках
3.3 Администратор
- Модерация через кастомную админ-панель
- Доступ к:
Списку пользователей
Статистике заявок
Журналу модерации объектов
4. ОСНОВНОЙ ФУНКЦИОНАЛ MVP
4.1 Публичная часть
- **Главная страница**:
Поиск по городам (выпадающий список)
Блок "Популярные объекты"
- **Каталог объектов**:
Фильтры: город, количество гостей, цена, спальные места,
Пагинация (20 объектов/страница)
- **Страница объекта**:
Галерея (до 10 фото)
Блок "Удобства" (иконки + текст)
Кнопка "Отправить заявку или Позвонить" (открывает модальное окно)
4.2 Система заявок
- **Механизм работы**:
1. Гость отправляет заявку через форму или нажимает кнопку позвонить и высвечивается номер телефона Хоста
2. Данные сохраняются в кастомной таблице `wp_otell_bookings`
3. Хост получает уведомление в Telegram
4. Статус заявки меняется в ЛК хоста
- **Структура заявки**:
```sql
(id, property_id, guest_id, date, status)
```
4.3 Интеграции
- **Telegram Bot**:
Использует Telegram Bot API
Шаблон сообщения:
`Новая заявка на [Объект] от [Гость]. Контакты: [Телефон]`
- **Карты**:
Статичные карты (Static Google Maps)
Отображение района без точного адреса
5. АРХИТЕКТУРА И МАСШТАБИРУЕМОСТЬ
5.1 Текущая реализация (MVP)
```mermaid
graph LR
A[Frontend: WordPress] --> B[MySQL DB]
B --> C[Кастомные таблицы]
A --> D[Telegram API]
```
5.2 Оптимизация для нагрузки:
- **Кэширование**: Redis + WP Rocket
- **Оптимизация запросов**: Индексы для `property_id`, `guest_id`
- **Медиафайлы**: CDN через Bunny.net
5.3 Заложенные возможности для роста:
Важно: Полный перенос всего сайта на Node.js после подключения примерно 10 000 объектов.
1. **Микросервис для уведомлений** (Node.js + RabbitMQ)
2. **Отдельный сервис для календарей** (синхронизация с Airbnb)
3. **ElasticSearch** для каталога (при >50К объектов)
7. ПЛАН РАБОТ (8 НЕДЕЛЬ)
Неделя
Задачи
1 неделя Установка WordPress + настройка среды<br>- Дизайн-система в Figma
2 неделя Регистрация/роли (Ultimate Member)<br>- Кастомный тип записи `property`
3 неделя Система заявок (Gravity Forms + кастомная таблица)<br>- Интеграция с Telegram
4 неделя ЛК хоста/гостя (кастомные шаблоны)<br>- Фильтры каталога (FacetWP)
5 неделя Тестирование + оптимизация скорости<br>- Нагрузочное тестирование
6-8 неделя Исправление багов<br>- Документация + передача
7. ОГРАНИЧЕНИЯ MVP
1. **Чат между пользователями** → реализуем в Этапе 2 через Tawk.to
2. **Онлайн-оплата** → подключим позже (Stripe/WooCommerce)
3. **Точки на карте** → заменили статичными изображениями районов
4. **Масштаб**:
Первый город: Ростов-на-Дону
Лимит объектов: 1 000
8. ОБЯЗАТЕЛЬСТВА ИСПОЛНИТЕЛЯ
1. Исходный код: Приватный репозиторий GitHub с доступом заказчику
2. Документация:
Инструкция по установке
ERD-диаграмма базы данных
API-хуки для будущих интеграций
3. Поддержка: 3 месяц после запуска (критические исправления)
9. ЮРИДИЧЕСКИЕ АСПЕКТЫ
- Все права на код/дизайн/контент принадлежат Заказчику
- GPL-лицензии плагинов соблюдаются
- Данные пользователей защищены согласно 152-ФЗ
Разделы:
Опубликован:
01.07.2025 | 08:51 [поднят: 01.07.2025 | 08:51]