# Общая документация проекта: Туристический агрегатор "EasySite & YalArba"

**Версия:** 1.0 (Первичная)  
**Дата:** 4 декабря 2025 года  
**Статус:** Активная разработка  
**Контакт поддержки:** valitovgaziz@yandex.ru

---

## 🎯 Общее описание проекта

Проект представляет собой **полноценную туристическую экосистему**, состоящую из двух взаимосвязанных платформ:

1. **EasySite (easysite102.ru)** – B2B-платформа для владельцев туристических объектов (отели, санатории, рестораны, достопримечательности), позволяющая создавать, управлять и продвигать свои услуги в автоматическом режиме.

2. **YalArba (yalarba.ru)** – B2C-платформа для туристов, предоставляющая поиск, бронирование, планирование маршрутов и отзывы о местах отдыха.

Обе системы объединены общей бизнес-логикой, базой данных и API, что обеспечивает целостность данных и взаимодействие между поставщиками услуг и конечными пользователями.

---

## 🏗️ Архитектура системы

### Технологический стек:

| Компонент | Технологии |
|-----------|------------|
| **Frontend (EasySite)** | Nuxt.js 3, Vue 3, TypeScript, SSR |
| **Frontend (YalArba)** | Vue 3, Vue Router, Pinia, Vite |
| **Backend (API)** | Go (Golang), Chi Router, GORM |
| **База данных** | PostgreSQL (несколько инстансов) |
| **Веб-сервер** | Nginx с SSL (Let's Encrypt) |
| **Контейнеризация** | Docker, Docker Compose |
| **Мониторинг** | Встроенная аналитика, логгирование |

---

## 📦 Состав сервисов (Docker-контейнеры)

### Основные сервисы:

1. **easysite** – Nuxt.js приложение (easysite102.ru)
2. **yalarba** – Vue.js SPA приложение (yalarba.ru)
3. **api_tp** – REST API для YalArba (Go)
4. **api_es** – REST API для EasySite (Go)
5. **api_bb** – REST API для "Бегущий Башкир" (Go)
6. **db, db_bb** – PostgreSQL базы данных
7. **nginx** – Веб-сервер с reverse proxy и SSL
8. **certbot** – Автоматическое обновление SSL-сертификатов
9. **analytics** – Сервис сбора статистики (Node.js)

---

## 🔄 Взаимодействие компонентов

```
Турист (yalarba.ru) → API_TP → БД (поиск, отзывы, маршруты)
Владелец (easysite102.ru) → API_ES → БД (добавление объектов, управление)
Администратор → Nginx + аналитика (мониторинг, логи)
```

---

## 🎯 Ключевые функции платформ

### EasySite (B2B):
- ✅ Автоматическое создание сайтов для объектов
- ✅ Управление услугами, ценами, описаниями
- ✅ Загрузка фото и медиаконтента
- ✅ Система модерации объектов
- ✅ Аналитика посещений и бронирований
- ✅ Личный кабинет владельца

### YalArba (B2C):
- ✅ Поиск мест отдыха с фильтрами
- ✅ Просмотр отзывов и рейтингов
- ✅ Личный профиль туриста
- ✅ Система избранного и истории
- ✅ Построение маршрутов
- ✅ Обратная связь и поддержка

---

## 🗄️ Базы данных

### Основные сущности:
- **Пользователи** (туристы, владельцы, администраторы)
- **Объекты** (отели, санатории, рестораны и др.)
- **Услуги** (предложения объектов)
- **Отзывы и рейтинги**
- **Бронирования** (в разработке)
- **Маршруты и избранное**

---

## 🔐 Безопасность

- JWT-аутентификация с refresh-токенами
- Ролевая модель доступа (user, moderator, admin)
- Защита от XSS, CSRF, SQL-инъекций
- Rate limiting на API
- HTTPS (Let's Encrypt)
- Логирование и мониторинг

---

## 🚀 Развертывание

### Требования:
- Docker & Docker Compose
- Node.js 18+ (для разработки)
- Go 1.21+ (для сборки API)
- PostgreSQL 15+

### Запуск в production:
```bash
docker-compose up -d
```

### Переменные окружения:
- `DATABASE_URL` – строка подключения к PostgreSQL
- `JWT_SECRET` – секретный ключ для токенов
- `SMTP_*` – настройки email-рассылок
- `TELEGRAM_BOT_TOKEN` – для уведомлений

---

## 📊 Мониторинг и аналитика

- Встроенный сбор статистики посещений
- Логирование запросов и ошибок
- Health-чекеры для всех сервисов
- Интеграция с внешними системами (Google Analytics, Sentry – в планах)

---

## 🗺️ Дорожная карта развития

### Ближайшие планы:
1. ✅ Базовая версия EasySite и YalArba
2. 🔄 Интеграция платежной системы
3. 🔄 Мобильное приложение (PWA)
4. 🔄 Система бронирования онлайн
5. 🔄 Мультиязычность (i18n)
6. 🔄 Расширенная аналитика для владельцев

---

## 🛠️ Поддержка и разработка

### Команда:
- **Разработчик:** Валитов Газиз (https://valitovgaziz.ru)
- **Техподдержка:** support@easysite102.ru
- **Telegram-бот:** для уведомлений и мониторинга

### Репозитории:
- Фронтенд EasySite: `./yalarba/easySite/`
- Фронтенд YalArba: `./yalarba/serv_spa/`
- API-сервисы: `./yalarba/api_*`, `./BB/api_bb`

---

## 📄 Связанная документация

- [Документация EasySite](./docs.md#easysite)
- [Документация API (YalArba)](./docs.md#api-tp)
- [Документация YalArba (SPA)](./docs.md#yalarba)
- [Docker Compose конфигурация](./docker-compose.yml)

---

## ✅ Статус проекта на 04.12.2025

| Компонент | Статус | Примечание |
|-----------|--------|------------|
| EasySite (Nuxt) | ✅ Рабочий прототип | Базовая функциональность |
| YalArba (Vue SPA) | ✅ Базовая структура | Требуется наполнение |
| API (Go) | ✅ Основные эндпоинты | Работа с пользователями |
| База данных | ✅ Настроена | Две инстанса PostgreSQL |
| SSL/Nginx | ✅ Работает | Автообновление сертификатов |
| Аналитика | ✅ Логирование | Базовый сбор статистики |
| Деплой | ✅ Docker Compose | Готово к production |

---

**Примечание:** Данная документация является первичной и будет дополняться по мере развития проекта. Все изменения в архитектуре и API должны быть задокументированы в соответствующих разделах.