90a96b4125
- Remove api_es service, Dockerfile, all Go source files - Remove api_es from docker-compose.yml, nginx-ssl.conf, .env, Makefile - Replace nginx /api/ proxy with /api/v1/ → api_yal:8787 - Add amenity/upload domains, AuthResponse, GET /auth/me, GET /objects/my to api_yal - Rewrite easysite frontend: types, composables, and all 5 pages to use api_yal DTOs - Wire nuxt.config public.apiBase, add useObjects CRUD composable - Update docs references from api_es to api_yal
780 lines
26 KiB
Markdown
780 lines
26 KiB
Markdown
# 📚 Полная документация проекта "Бегущий Башкир"
|
||
## Версия 1.0 | Декабрь 2025
|
||
|
||
---
|
||
|
||
## 🏃♂️ ОПИСАНИЕ ПРОЕКТА
|
||
|
||
### 1.1 Общая концепция
|
||
**"Бегущий Башкир"** — комплексная цифровая платформа для бегового клуба, объединяющая веб-сайт, REST API и аналитические сервисы. Проект создан для развития бегового сообщества Республики Башкортостан и предоставляет современные инструменты для организации тренировок, мероприятий и взаимодействия между участниками.
|
||
|
||
### 1.2 Основные цели
|
||
- Создание централизованной системы управления беговым клубом
|
||
- Автоматизация процессов регистрации, учета и статистики
|
||
- Формирование активного сообщества бегунов
|
||
- Продвижение здорового образа жизни и спорта в регионе
|
||
- Сохранение культурных особенностей (поддержка русского и башкирского языков)
|
||
|
||
### 1.3 Доменные имена
|
||
- **Основной сайт:** `begushiybashkir.ru`
|
||
- **API сервер:** `api.begushiybashkir.ru` (в перспективе)
|
||
- **Дополнительные:** В рамках общего кластера с другими проектами
|
||
|
||
---
|
||
|
||
## 🏗️ АРХИТЕКТУРА СИСТЕМЫ
|
||
|
||
### 2.1 Компонентная диаграмма
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┐
|
||
│ Docker Compose Cluster │
|
||
├─────────────────────────────────────────────────────────────┤
|
||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||
│ │ Nginx │ │ API_TP │ │ API_BB │ │ API_YAL │ │
|
||
│ │ (Proxy) │◄─┤(Yalarba) │ │(Бег.Баш)│ │(Easysite)│ │
|
||
│ └────┬─────┘ └──────────┘ └──────────┘ └──────────┘ │
|
||
│ │ │ │ │ │
|
||
│ ┌────▼─────┐ ┌──────▼────┐ ┌───▼────┐ ┌──────▼────┐ │
|
||
│ │ Certbot │ │ DB │ │ DB_BB │ │ DB_TP │ │
|
||
│ │ (SSL) │ │ (Postgres)│ │(Postgr)│ │ (Postgres)│ │
|
||
│ └──────────┘ └───────────┘ └────────┘ └───────────┘ │
|
||
│ │
|
||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||
│ │Analytics │ │ Easysite │ │ Vue SPA │ │ StubSite │ │
|
||
│ │ (Node.js)│ │ (Nuxt.js)│ │(Frontend)│ │ (Загл.) │ │
|
||
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
|
||
└─────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 2.2 Сетевые сегменты
|
||
```yaml
|
||
networks:
|
||
web-network: # Внешний доступ (80/443 порты)
|
||
internal: # Внутренняя коммуникация
|
||
app-network: # Для Yalarba/Easysite приложений
|
||
bb-network: # Изолированная сеть "Бегущий Башкир"
|
||
```
|
||
|
||
### 2.3 Технологический стек
|
||
|
||
#### Backend
|
||
- **Go 1.25.1** (API сервисы)
|
||
- **Chi Router** v5 (HTTP роутинг)
|
||
- **GORM** v1.31.0 (ORM для PostgreSQL)
|
||
- **JWT** (аутентификация)
|
||
- **Validator** v10 (валидация данных)
|
||
|
||
#### Frontend
|
||
- **Vue 3** (Composition API)
|
||
- **Vite** (сборка)
|
||
- **Pinia** (управление состоянием)
|
||
- **Vue Router** (навигация)
|
||
- **SCSS/CSS3** (стили)
|
||
|
||
#### Базы данных
|
||
- **PostgreSQL 15** (основные данные)
|
||
- **Альпийский образ** (легковесная версия)
|
||
|
||
#### Инфраструктура
|
||
- **Docker & Docker Compose**
|
||
- **Nginx** (обратный прокси)
|
||
- **Certbot** (SSL сертификаты)
|
||
- **Node.js** (аналитика)
|
||
|
||
---
|
||
|
||
## 📦 DOCKER КОМПОЗИЦИЯ
|
||
|
||
### 3.1 Сервисы кластера
|
||
|
||
#### Основные сервисы "Бегущий Башкир":
|
||
```yaml
|
||
api_bb: # REST API на Go (порт 7777)
|
||
- Ядро бизнес-логики
|
||
- Аутентификация и авторизация
|
||
- Управление тренировками и событиями
|
||
- Обработка достижений и статистики
|
||
|
||
db_bb: # База данных (порт 5433)
|
||
- Изолированная БД для проекта
|
||
- Хранение всех данных бегового клуба
|
||
- Автоматическое резервное копирование
|
||
|
||
nginx: # Веб-сервер (порты 80/443)
|
||
- Статический контент Vue SPA
|
||
- Проксирование к API
|
||
- SSL/TLS терминация
|
||
- Кэширование и сжатие
|
||
```
|
||
|
||
#### Общие сервисы кластера:
|
||
```yaml
|
||
certbot: # SSL сертификаты
|
||
- Автоматическое обновление Let's Encrypt
|
||
- Поддержка wildcard сертификатов
|
||
- Мониторинг истечения срока
|
||
|
||
analytics: # Аналитика (порт 9999)
|
||
- Сбор статистики посещений
|
||
- Аналитика пользовательского поведения
|
||
- Генерация отчетов
|
||
```
|
||
|
||
### 3.2 Порты и доступ
|
||
| Сервис | Порт | Назначение | Доступ |
|
||
|--------|------|------------|---------|
|
||
| nginx | 80 | HTTP | публичный |
|
||
| nginx | 443 | HTTPS | публичный |
|
||
| api_bb | 7777 | API | внутренний |
|
||
| db_bb | 5433 | База данных | внутренний |
|
||
| analytics | 9999 | Аналитика | внутренний |
|
||
|
||
### 3.3 Volumes (тома данных)
|
||
```yaml
|
||
db_bb_data: # Основные данные БД
|
||
api_bb_uploads: # Загружаемые файлы (фото, документы)
|
||
analytics_logs: # Логи аналитики
|
||
analytics_data: # Данные аналитики
|
||
certbot_data: # SSL сертификаты
|
||
certbot_www: # Веб-контент для верификации
|
||
```
|
||
|
||
### 3.4 Health Checks
|
||
Все сервисы включают проверки здоровья:
|
||
- **Интервал:** 30 секунд
|
||
- **Таймаут:** 10 секунд
|
||
- **Попытки:** 3-5 раз
|
||
- **Период старта:** 40 секунд
|
||
|
||
Пример для API:
|
||
```yaml
|
||
healthcheck:
|
||
test: ["CMD", "wget", "--spider", "http://localhost:8080/api/health"]
|
||
```
|
||
|
||
---
|
||
|
||
## 🗄️ СТРУКТУРА ДАННЫХ (API_BB)
|
||
|
||
### 4.1 Основные сущности
|
||
|
||
#### Пользователь (User)
|
||
```sql
|
||
CREATE TABLE users (
|
||
id UUID PRIMARY KEY,
|
||
email VARCHAR(255) UNIQUE NOT NULL,
|
||
first_name VARCHAR(100),
|
||
last_name VARCHAR(100),
|
||
avatar_url TEXT,
|
||
phone VARCHAR(20),
|
||
experience_level INTEGER, -- 1: новичок, 2: любитель, 3: профессионал
|
||
goals TEXT[], -- массив целей
|
||
newsletter_subscription BOOLEAN DEFAULT true,
|
||
role VARCHAR(20) DEFAULT 'user', -- user, admin
|
||
created_at TIMESTAMP DEFAULT NOW(),
|
||
updated_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
```
|
||
|
||
#### Тренировка (Workout)
|
||
```sql
|
||
CREATE TABLE workouts (
|
||
id UUID PRIMARY KEY,
|
||
user_id UUID REFERENCES users(id),
|
||
type VARCHAR(50), -- easy, tempo, interval, long, recovery
|
||
distance_km DECIMAL(5,2),
|
||
duration_minutes INTEGER,
|
||
avg_pace_min_per_km DECIMAL(4,2),
|
||
calories_burned INTEGER,
|
||
notes TEXT,
|
||
workout_date DATE NOT NULL,
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
```
|
||
|
||
#### Событие (Event)
|
||
```sql
|
||
CREATE TABLE events (
|
||
id UUID PRIMARY KEY,
|
||
title VARCHAR(255) NOT NULL,
|
||
description TEXT,
|
||
type VARCHAR(50), -- race, training, social, workshop
|
||
event_date TIMESTAMP NOT NULL,
|
||
location VARCHAR(255),
|
||
distance_km DECIMAL(5,2),
|
||
max_participants INTEGER,
|
||
is_registration_open BOOLEAN DEFAULT true,
|
||
registration_deadline TIMESTAMP,
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
```
|
||
|
||
#### Достижение (Achievement)
|
||
```sql
|
||
CREATE TABLE achievements (
|
||
id UUID PRIMARY KEY,
|
||
user_id UUID REFERENCES users(id),
|
||
title VARCHAR(255) NOT NULL,
|
||
description TEXT,
|
||
type VARCHAR(50), -- distance, speed, consistency, event, special
|
||
verified BOOLEAN DEFAULT false,
|
||
badge_url TEXT,
|
||
achieved_date DATE NOT NULL,
|
||
created_at TIMESTAMP DEFAULT NOW()
|
||
);
|
||
```
|
||
|
||
### 4.2 Связи между таблицами
|
||
- **users** ↔ **workouts** (один ко многим)
|
||
- **users** ↔ **achievements** (один ко многим)
|
||
- **users** ↔ **events** (многие ко многим через registrations)
|
||
- **users** ↔ **personal_bests** (один ко многим)
|
||
|
||
---
|
||
|
||
## 🔐 СИСТЕМА БЕЗОПАСНОСТИ
|
||
|
||
### 5.1 Аутентификация
|
||
- **JWT токены** (Access + Refresh)
|
||
- **HTTP-only cookies** для клиентского хранения
|
||
- **Валидация email** через подтверждение
|
||
- **Сброс пароля** через email токены
|
||
|
||
### 5.2 Авторизация
|
||
- **Ролевая модель:** user, admin
|
||
- **Middleware защита** маршрутов
|
||
- **Проверка прав доступа** к ресурсам
|
||
|
||
### 5.3 Защита данных
|
||
- **BCrypt** для хеширования паролей
|
||
- **Подготовленные SQL-запросы** (GORM)
|
||
- **Валидация входных данных**
|
||
- **CORS политики**
|
||
- **Rate limiting** (в разработке)
|
||
|
||
---
|
||
|
||
## 🌐 ФРОНТЕНД АРХИТЕКТУРА (Vue SPA)
|
||
|
||
### 6.1 Структура компонентов
|
||
```
|
||
src/
|
||
├── components/ # Переиспользуемые компоненты
|
||
│ ├── NavigationMenu.vue
|
||
│ ├── EventCard.vue
|
||
│ ├── RegistrationCard.vue
|
||
│ ├── StatsChart.vue
|
||
│ └── AchievementBadge.vue
|
||
├── pages/ # Страницы приложения
|
||
│ ├── Home.vue # Главная страница
|
||
│ ├── About.vue # О клубе
|
||
│ ├── Gallery.vue # Галерея
|
||
│ ├── Achievements.vue # Достижения
|
||
│ ├── DetailedStats.vue # Статистика
|
||
│ ├── Events.vue # События
|
||
│ └── Profile.vue # Профиль пользователя
|
||
├── stores/ # Состояние (Pinia)
|
||
│ ├── auth.js # Авторизация
|
||
│ ├── stats.js # Статистика
|
||
│ └── events.js # События
|
||
├── router/ # Маршрутизация
|
||
│ └── index.js
|
||
└── assets/ # Ресурсы
|
||
├── logo/
|
||
├── images/
|
||
└── main.scss
|
||
```
|
||
|
||
### 6.2 Цветовая схема
|
||
```scss
|
||
$primary-color: #2e8b57; // Зеленый (природа, здоровье)
|
||
$accent-color: #ffd700; // Золотой (достижения)
|
||
$background: #f8fff8; // Светло-зеленый фон
|
||
$text-color: #2c3e50; // Темно-серый текст
|
||
$error-color: #e74c3c; // Красный для ошибок
|
||
$success-color: #27ae60; // Зеленый для успеха
|
||
```
|
||
|
||
### 6.3 Адаптивный дизайн
|
||
| Breakpoint | Устройство | Контейнер |
|
||
|------------|------------|-----------|
|
||
| < 360px | Маленькие телефоны | 100% |
|
||
| 360-480px | Телефоны | 100% |
|
||
| 481-768px | Планшеты | 720px |
|
||
| 769-1024px | Ноутбуки | 960px |
|
||
| > 1024px | Десктопы | 1140px |
|
||
|
||
---
|
||
|
||
## 🔄 API ДОКУМЕНТАЦИЯ
|
||
|
||
### 7.1 Базовый URL
|
||
```
|
||
https://begushiybashkir.ru/api/v1/
|
||
```
|
||
|
||
### 7.2 Статус коды
|
||
- `200` - Успех
|
||
- `201` - Создано
|
||
- `400` - Ошибка валидации
|
||
- `401` - Не авторизован
|
||
- `403` - Доступ запрещен
|
||
- `404` - Не найдено
|
||
- `500` - Серверная ошибка
|
||
|
||
### 7.3 Основные эндпоинты
|
||
|
||
#### Аутентификация
|
||
```http
|
||
POST /auth/register
|
||
POST /auth/login
|
||
POST /auth/logout
|
||
POST /auth/refresh-token
|
||
POST /auth/password-reset/request
|
||
POST /auth/password-reset/confirm
|
||
GET /auth/verify-email?token={token}
|
||
```
|
||
|
||
#### Пользователи
|
||
```http
|
||
GET /users/profile
|
||
PUT /users/profile
|
||
GET /users/{id}/achievements
|
||
GET /users/{id}/stats
|
||
```
|
||
|
||
#### Тренировки
|
||
```http
|
||
GET /workouts?date_from=&date_to=&type=
|
||
POST /workouts
|
||
GET /workouts/{id}
|
||
PUT /workouts/{id}
|
||
DELETE /workouts/{id}
|
||
GET /workouts/stats/monthly
|
||
```
|
||
|
||
#### События
|
||
```http
|
||
GET /events?type=&status=
|
||
GET /events/{id}
|
||
POST /events/{id}/register
|
||
DELETE /events/{id}/register
|
||
GET /events/my-registrations
|
||
```
|
||
|
||
#### Достижения
|
||
```http
|
||
GET /achievements?type=&verified=
|
||
POST /achievements
|
||
PUT /achievements/{id}
|
||
GET /achievements/types
|
||
```
|
||
|
||
### 7.4 Пример запроса
|
||
```javascript
|
||
// Регистрация пользователя
|
||
fetch('/api/v1/auth/register', {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
email: 'user@example.com',
|
||
password: 'SecurePass123!',
|
||
firstName: 'Иван',
|
||
lastName: 'Иванов',
|
||
phone: '+79161234567'
|
||
})
|
||
});
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 РАЗВЕРТЫВАНИЕ
|
||
|
||
### 8.1 Требования
|
||
- Docker 20.10+
|
||
- Docker Compose 2.0+
|
||
- 2 ГБ RAM минимум
|
||
- 10 ГБ свободного места
|
||
- Доступ к портам 80, 443
|
||
|
||
### 8.2 Настройка окружения
|
||
```bash
|
||
# 1. Клонирование
|
||
git clone <repository>
|
||
cd project
|
||
|
||
# 2. Настройка переменных
|
||
cp .env.example .env
|
||
# Редактируем .env:
|
||
# EMAIL=admin@example.com
|
||
# ALL_DOMAINS=begushiybashkir.ru,www.begushiybashkir.ru
|
||
# DB_PASSWORD=strong_password
|
||
|
||
# 3. Запуск
|
||
docker-compose up -d
|
||
|
||
# 4. Проверка
|
||
docker-compose ps
|
||
docker-compose logs -f nginx
|
||
```
|
||
|
||
### 8.3 Настройка DNS
|
||
```
|
||
A запись: begushiybashkir.ru → IP сервера
|
||
CNAME запись: www → begushiybashkir.ru
|
||
```
|
||
|
||
### 8.4 Первоначальная настройка
|
||
1. **Проверка SSL:** `https://begushiybashkir.ru`
|
||
2. **Проверка API:** `https://begushiybashkir.ru/api/health`
|
||
3. **Создание админа:** через миграции или CLI
|
||
4. **Настройка SMTP:** для email рассылок
|
||
|
||
---
|
||
|
||
## 📊 МОНИТОРИНГ И ЛОГИРОВАНИЕ
|
||
|
||
### 9.1 Логи
|
||
- **Nginx:** доступы и ошибки
|
||
- **API:** бизнес-логика и ошибки
|
||
- **База данных:** медленные запросы
|
||
- **Docker:** системные логи
|
||
|
||
### 9.2 Health Checks
|
||
```
|
||
GET /health # Общий статус
|
||
GET /api/health # Статус API
|
||
GET /database/health # Статус БД
|
||
```
|
||
|
||
### 9.3 Метрики
|
||
- **Количество пользователей**
|
||
- **Активные тренировки**
|
||
- **Регистрации на события**
|
||
- **Время отклика API**
|
||
- **Ошибки по типам**
|
||
|
||
---
|
||
|
||
## 🔧 ОБСЛУЖИВАНИЕ
|
||
|
||
### 10.1 Регулярные задачи
|
||
```bash
|
||
# Ежедневно
|
||
docker-compose exec db_bb pg_dump -U postgres bb_db > backup.sql
|
||
|
||
# Еженедельно
|
||
docker-compose restart nginx
|
||
docker system prune -a
|
||
|
||
# Ежемесячно
|
||
certbot renew --dry-run
|
||
check disk usage
|
||
```
|
||
|
||
### 10.2 Резервное копирование
|
||
```yaml
|
||
# docker-compose.backup.yml
|
||
version: '3.8'
|
||
services:
|
||
backup:
|
||
image: postgres:15-alpine
|
||
volumes:
|
||
- ./backups:/backups
|
||
command: >
|
||
sh -c "
|
||
PGPASSWORD=postgres pg_dump -h db_bb -U postgres bb_db >
|
||
/backups/bb_db_$(date +%Y%m%d_%H%M%S).sql
|
||
"
|
||
```
|
||
|
||
### 10.3 Восстановление
|
||
```bash
|
||
# Восстановление БД
|
||
docker-compose exec -T db_bb psql -U postgres bb_db < backup.sql
|
||
|
||
# Восстановление загруженных файлов
|
||
cp -r backup/uploads/* ./api_bb_uploads/
|
||
```
|
||
|
||
---
|
||
|
||
## 📈 МАСШТАБИРОВАНИЕ
|
||
|
||
### 11.1 Горизонтальное
|
||
1. Добавление инстансов API
|
||
2. Балансировка через Nginx
|
||
3. Кэширование через Redis
|
||
4. Репликация БД
|
||
|
||
### 11.2 Вертикальное
|
||
1. Увеличение ресурсов контейнеров
|
||
2. Оптимизация индексов БД
|
||
3. Кэширование частых запросов
|
||
4. Асинхронная обработка задач
|
||
|
||
### 11.3 Конфигурация для продакшена
|
||
```yaml
|
||
# В docker-compose.prod.yml
|
||
services:
|
||
api_bb:
|
||
deploy:
|
||
replicas: 3
|
||
resources:
|
||
limits:
|
||
memory: 512M
|
||
reservations:
|
||
memory: 256M
|
||
logging:
|
||
driver: "json-file"
|
||
options:
|
||
max-size: "10m"
|
||
max-file: "3"
|
||
```
|
||
|
||
---
|
||
|
||
## 🐛 ОТЛАДКА И УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ
|
||
|
||
### 12.1 Частые проблемы
|
||
|
||
#### Проблема: SSL не работает
|
||
```bash
|
||
# Решение:
|
||
docker-compose logs certbot
|
||
docker-compose exec certbot certbot renew --dry-run
|
||
# Проверить DNS записи
|
||
```
|
||
|
||
#### Проблема: API не отвечает
|
||
```bash
|
||
# Решение:
|
||
docker-compose ps api_bb
|
||
docker-compose logs api_bb
|
||
curl http://localhost:7777/api/health
|
||
# Проверить подключение к БД
|
||
```
|
||
|
||
#### Проблема: База данных не запускается
|
||
```bash
|
||
# Решение:
|
||
docker-compose logs db_bb
|
||
docker volume ls
|
||
# Проверить права на volume
|
||
```
|
||
|
||
### 12.2 Инструменты отладки
|
||
```bash
|
||
# Проверка сети
|
||
docker network inspect bb-network
|
||
|
||
# Проверка томов
|
||
docker volume inspect db_bb_data
|
||
|
||
# Мониторинг ресурсов
|
||
docker stats
|
||
|
||
# Логи в реальном времени
|
||
docker-compose logs -f --tail=100
|
||
```
|
||
|
||
---
|
||
|
||
## 🔄 ЖИЗНЕННЫЙ ЦИКЛ РАЗРАБОТКИ
|
||
|
||
### 13.1 Git workflow
|
||
```
|
||
main - продакшн
|
||
├── develop - стабильная разработка
|
||
│ ├── feature/* - новые функции
|
||
│ └── fix/* - исправления
|
||
└── release/* - подготовка релизов
|
||
```
|
||
|
||
### 13.2 CI/CD (рекомендации)
|
||
```yaml
|
||
# .github/workflows/deploy.yml
|
||
name: Deploy
|
||
on:
|
||
push:
|
||
branches: [main]
|
||
jobs:
|
||
deploy:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- name: Deploy via SSH
|
||
uses: appleboy/ssh-action@master
|
||
with:
|
||
host: ${{ secrets.SERVER_HOST }}
|
||
username: ${{ secrets.SERVER_USER }}
|
||
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||
script: |
|
||
cd /opt/begushiybashkir
|
||
git pull
|
||
docker-compose down
|
||
docker-compose build
|
||
docker-compose up -d
|
||
```
|
||
|
||
### 13.3 Тестирование
|
||
```bash
|
||
# Unit тесты Go
|
||
cd api_bb
|
||
go test ./...
|
||
|
||
# E2E тесты API
|
||
npm run test:api
|
||
|
||
# Тесты Vue компонентов
|
||
npm run test:unit
|
||
|
||
# Load testing
|
||
k6 run load-test.js
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 ЧЕКЛИСТ ЗАПУСКА
|
||
|
||
### 14.1 Предзапусковая проверка
|
||
- [ ] Доменное имя настроено и разрешается
|
||
- [ ] SSL сертификаты получены
|
||
- [ ] Переменные окружения установлены
|
||
- [ ] Порты 80 и 443 открыты
|
||
- [ ] SMTP настроен для email
|
||
- [ ] Резервное копирование настроено
|
||
|
||
### 14.2 Постзапусковая проверка
|
||
- [ ] Сайт доступен по HTTPS
|
||
- [ ] API отвечает на health checks
|
||
- [ ] Базы данных запущены
|
||
- [ ] Статика загружается
|
||
- [ ] Email отправляется
|
||
- [ ] Мониторинг работает
|
||
|
||
### 14.3 Проверка безопасности
|
||
- [ ] Пароли изменены с дефолтных
|
||
- [ ] SSH доступ ограничен
|
||
- [ ] Firewall настроен
|
||
- [ ] Логирование включено
|
||
- [ ] Резервные копии тестируются
|
||
|
||
---
|
||
|
||
## 🎯 РАЗВИТИЕ ПРОЕКТА
|
||
|
||
### 15.1 Ближайшие задачи
|
||
1. **Мобильное приложение** (React Native)
|
||
2. **Интеграция со Strava**
|
||
3. **Платежная система** для мероприятий
|
||
4. **Push-уведомления**
|
||
5. **Расширенная аналитика**
|
||
|
||
### 15.2 Долгосрочные цели
|
||
1. **Международная поддержка**
|
||
2. **Партнерская программа**
|
||
3. **Онлайн-марафоны**
|
||
4. **AI-тренер**
|
||
5. **Социальная сеть бегунов**
|
||
|
||
### 15.3 Сообщество
|
||
- **Telegram канал** для анонсов
|
||
- **Группа VK** для обсуждений
|
||
- **Instagram** для мотивации
|
||
- **YouTube** для обучающего контента
|
||
- **Офлайн-встречи** раз в месяц
|
||
|
||
---
|
||
|
||
## 📞 ПОДДЕРЖКА И КОНТАКТЫ
|
||
|
||
### 16.1 Техническая поддержка
|
||
- **Экстренные вопросы:** Telegram @tech_support
|
||
- **Багрепорты:** GitHub Issues
|
||
- **Предложения:** feedback@begushiybashkir.ru
|
||
- **Документация:** docs.begushiybashkir.ru (в разработке)
|
||
|
||
### 16.2 Команда проекта
|
||
| Роль | Контакты | Ответственность |
|
||
|------|----------|-----------------|
|
||
| Тренер | +7 (927) 30-93-095 | Тренировки, мероприятия |
|
||
| Разработчик | github.com/dev | Техническая часть |
|
||
| Контент-менеджер | @content | Новости, галерея |
|
||
| Администратор | admin@ | Управление пользователями |
|
||
|
||
### 16.3 Время работы поддержки
|
||
- **Техподдержка:** 24/7 (автоматически)
|
||
- **Консультации:** 10:00-18:00 (МСК)
|
||
- **Экстренные случаи:** круглосуточно по телефону
|
||
|
||
---
|
||
|
||
## 📄 ЛИЦЕНЗИИ И ПРАВА
|
||
|
||
### 17.1 Используемое ПО
|
||
- **Go:** BSD-3-Clause
|
||
- **Vue.js:** MIT
|
||
- **PostgreSQL:** PostgreSQL License
|
||
- **Docker:** Apache 2.0
|
||
|
||
### 17.2 Политики
|
||
- [Политика конфиденциальности](https://begushiybashkir.ru/privacy)
|
||
- [Условия использования](https://begushiybashkir.ru/terms)
|
||
- [Политика cookies](https://begushiybashkir.ru/cookies)
|
||
|
||
---
|
||
|
||
## 🏆 ОСОБЕННОСТИ ПРОЕКТА
|
||
|
||
### 18.1 Культурный аспект
|
||
- Поддержка башкирского языка
|
||
- Учет региональных особенностей
|
||
- Пропаганда местного спорта
|
||
- Сотрудничество с местными организациями
|
||
|
||
### 18.2 Технические инновации
|
||
- Микросервисная архитектура
|
||
- Полная контейнеризация
|
||
- Автоматическое SSL
|
||
- Резидентная инфраструктура
|
||
|
||
### 18.3 Социальная значимость
|
||
- Бесплатные тренировки для новичков
|
||
- Поддержка инклюзивности
|
||
- Экологический подход (тренировки на природе)
|
||
- Сообщество взаимопомощи
|
||
|
||
---
|
||
|
||
## 📝 ИЗМЕНЕНИЯ И ОБНОВЛЕНИЯ
|
||
|
||
### 19.1 Журнал изменений
|
||
```
|
||
2025-12-04 v1.0 - Первый релиз
|
||
- Базовая функциональность
|
||
- API для тренировок и событий
|
||
- Vue.js фронтенд
|
||
- Docker инфраструктура
|
||
```
|
||
|
||
### 19.2 Процесс обновлений
|
||
1. Тестирование на staging окружении
|
||
2. Резервное копирование продакшена
|
||
3. Поэтапное обновление сервисов
|
||
4. Мониторинг после обновления
|
||
5. Откат при необходимости
|
||
|
||
---
|
||
|
||
**✨ Проект "Бегущий Башкир" — это больше чем веб-сайт. Это цифровое сердце бегового сообщества, соединяющее технологические инновации с духом спорта и дружбы.**
|
||
|
||
---
|
||
*Документация обновлена: 4 декабря 2025 года*
|
||
*Проект находится в активной разработке*
|
||
*Версия документации: 1.0*
|
||
|
||
Для актуальной информации посетите:
|
||
🌐 **https://begushiybashkir.ru**
|
||
📧 **zog1r@mail.ru**
|
||
📱 **Telegram: @begushiybashkir** |