Корпоративный сайт агентства элитной недвижимости SGIP Real Estate для международного рынка (ОАЭ, ЕС, РФ).
Название проекта: Корпоративный сайт агентства элитной недвижимости SGIP Real Estate
Цель: Разработка функционального, адаптивного и визуально премиального сайта с каталогом объектов, интеграцией форм и аналитикой
Платформа: Самописный сайт
Основной домен: sgipreal.com (через Cloudflare)
Зеркало для РФ: sgipreal.ru (с редиректом по GeoIP)
Срок реализации: 8 недель (34 рабочих дня)
- Главная (Home): оффер, статистика (10+ лет, 500+ объектов), преимущества, CTA, топ-проекты, партнёры
- Каталог (Properties): фильтры по району, застройщику, цене, типу, количеству комнат, дате готовности
- Карточка объекта: галерея, параметры, планировки, инфраструктура, запрос расчёта, SEO-разметка
- Раздел Areas: SEO-страницы по районам
- Раздел Developers: описание 10–15 застройщиков (Emaar, Damac, Sobha и др.) с логотипами
- Раздел Partners: банки, страховые, консалтинг
- Раздел Services: покупка, продажа, аренда, управление, ипотека, бизнес в ОАЭ, Swiss Investment
- Раздел Market/Blog: аналитика и новости
- Раздел Contacts: карта Google Maps, офисы, форма с GDPR
- Раздел About: о компании, команда, отчёты о рынке
- Privacy Policy
- Cookies Policy
- Terms & Conditions
- ✅ Адаптация под мобильные устройства
- ✅ Фиксированный Header с CTA
- ✅ Плавные анимации без перегрузки интерфейса
- ✅ Плавающий виджет мессенджеров (WhatsApp, Telegram) на всех страницах
- ✅ Кнопка WhatsApp в Header и карточках объектов
- ✅ Загрузка PDF-лид-магнита
- ✅ GDPR-согласие в формах
- ✅ Мультиязычность: RU/EN/AR
- ✅ Настройка GA4 и Яндекс.Метрики через GTM
- ✅ Sitemap.xml и robots.txt
- ✅ Schema Markup (Organization, ItemList, RealEstateListing)
- ✅ Человекопонятные URL карточек объектов:
/properties/mirage-the-oasis-dubaiвместо/properties/cml8gytat000huyo10zir39wz; старые ссылки по CUID редиректятся 301 на slug
- ✅ Скорость загрузки <2 секунд
- ✅ Lazy-load изображений
- ✅ Изображения в WebP
- ✅ Оптимизация по PageSpeed Insights
- Графит: #1E1F24
- Шампанское золото: #C9A86A
- Белый: #F7F7F8
- Manrope / Inter
- Премиальные, светлые, без избыточного HDR
- Логотипы партнёров и застройщиков: SVG/PNG с прозрачным фоном
- Тексты на русском, английском и арабском языках
- Анимации: плавные, лёгкие
- Framework: Next.js 14 (Pages Router)
- UI Library: React 18
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Headless UI
- Icons: Heroicons
- Database: PostgreSQL
- ORM: Prisma
- API: Next.js API Routes
- Internationalization: next-i18next
- Analytics: Google Analytics 4, Yandex Metrica, Google Tag Manager
- Maps: Google Maps API
- Containerization: Docker + Docker Compose
- CDN: Cloudflare
- Hosting: Cloudflare (с поддержкой .ru зеркала)
- Node.js 20+
- Docker and Docker Compose (опционально)
- PostgreSQL (или используйте Docker)
- Клонируйте репозиторий:
git clone https://github.com/BelungaCZ/sgiprealestate.git
cd sgipreal.com- Установите зависимости:
npm install- Настройте environment variables:
cp .env.example .env.local
# Отредактируйте .env.local с вашей конфигурацией- Запустите базу данных (если используете Docker):
docker-compose -f docker-compose.dev.yml up -d postgres- Выполните миграции базы данных:
npm run db:push- Запустите dev сервер:
npm run dev- Откройте приложение в браузере (порт настраивается через переменную PORT в .env файле).
src/
├── components/ # React компоненты
│ ├── ui/ # Переиспользуемые UI компоненты
│ ├── layout/ # Компоненты макета (Header, Footer)
│ ├── property/ # Компоненты для объектов недвижимости
│ ├── areas/ # Компоненты для районов
│ ├── developers/ # Компоненты для застройщиков
│ ├── services/ # Компоненты для услуг
│ ├── contact/ # Компоненты контактов
│ ├── about/ # Компоненты "О нас"
│ ├── sections/ # Секции страниц
│ ├── analytics/ # Компоненты аналитики
│ └── admin/ # Компоненты админ-панели
├── pages/ # Next.js страницы
│ ├── api/ # API маршруты
│ ├── admin/ # Страницы админ-панели
│ ├── areas/ # Страницы районов
│ ├── properties/ # Страницы объектов
│ └── market/ # Блог/рынок
├── styles/ # Глобальные стили
├── lib/ # Утилиты
├── hooks/ # Кастомные React хуки
├── types/ # TypeScript типы
└── utils/ # Вспомогательные функции
npm run dev- Запуск dev сервераnpm run build- Сборка для productionnpm run start- Запуск production сервераnpm run lint- Запуск ESLintnpm run db:generate- Генерация Prisma clientnpm run db:push- Применение схемы базы данныхnpm run db:migrate- Запуск миграций базы данныхnpm run db:studio- Открытие Prisma Studio
См. .env.example для всех необходимых переменных окружения. Основные переменные:
NEXT_PUBLIC_GTM_ID- Google Tag Manager ID
NEXT_PUBLIC_WHATSAPP_NUMBER- WhatsApp номерNEXT_PUBLIC_TELEGRAM_USERNAME- Telegram username
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY- Google Maps API ключ
- Соберите production образ:
docker build -t sgip-real-estate .- Запустите с Docker Compose:
docker-compose up -d- Соберите приложение:
npm run build- Запустите production сервер:
npm run start- Перенос sgipreal.com на Cloudflare
- Настройка DNS и SSL
- Зеркало .ru: регистрация и настройка редиректа для пользователей из РФ
- Создание корпоративных ящиков
- Настройка SPF, DKIM, DMARC
- Использование Cloudflare для ускорения загрузки (Европа, ОАЭ, США)
- HTTPS
- Защита форм и базовых данных
Deployment works like other ecosystem services (e.g. notifications-microservice):
- Deploy: Run
./scripts/deploy.shfrom the project root (on the production server). - Nginx configs and service registry are generated automatically during deployment by nginx-microservice's
deploy-smart.sh. Do not create or editservice-registryfiles in this repo. - Redirects (HTTP→HTTPS, www→canonical) are configured in nginx-microservice templates.
- All API routes are managed by this application: single Next.js container; no separate backend. So
/api/*(e.g./api/uploads,/api/properties) and/_next/static/*must be proxied to the same frontend. See docs/NGINX_AND_API_ROUTES.md.
Reference: nginx-templates/, nginx.config.json, and nginx/nginx-api-routes.conf. The nginx.client_max_body_size from nginx.config.json is read during deploy and applied to allow large file uploads (e.g. 10G for folder imports).
413 Payload Too Large when uploading folders: If uploads >100MB fail:
- Установка GA4 и Яндекс.Метрики через GTM
- Настройка событий и конверсий
- ✅ Сайт полностью функционален и адаптивен на всех устройствах
- ✅ Все формы работают корректно
- ✅ SEO-разметка и мультиязычность функционируют корректно
- ✅ Скорость загрузки ≤ 2 сек по PageSpeed Insights (мобильная версия не ниже 85 баллов)
- ✅ Контент, изображения и структура соответствуют ТЗ
- ✅ Почта и домены корректно настроены (SPF/DKIM/DMARC пройдены)
- ✅ Визуальное исполнение соответствует бренд-гайду SGIP Real Estate
Сайт поддерживает три языка:
- Русский (ru) - основной язык для РФ
- Английский (en) - основной язык для международного рынка
- Арабский (ar) - для рынка ОАЭ
Переводы хранятся в public/locales/{locale}/ директории.
- Google Analytics 4
- Yandex Metrica
- Google Tag Manager
- Google Maps API
Вся документация проекта собрана в папке docs/:
- Индекс документации - Навигация по всей документации
- План реализации - Детальный план разработки
- План недостающих функций - Реализация недостающих функций
- Настройка деплоя - Настройка прав для деплоя
- Быстрая настройка - Быстрый старт для деплоя
- Перенос контента - Руководство по переносу контента
- Отчёт о тестировании - Результаты тестирования
Все скрипты проекта собраны в папке scripts/:
- README скриптов - Описание всех скриптов проекта
- Скрипты деплоя:
deploy.sh,setup-deploy-permissions.sh - Скрипты работы с контентом:
extract-content.js,integrate-content.js - Скрипты управления данными:
import-properties-from-folders.ts,update-developer-*.js
Этот проект является проприетарным и конфиденциальным.
Для поддержки обращайтесь по email: support@sgipreal.com или через форму на сайте.
- Website: https://sgipreal.com
- Email: support@sgipreal.com
- GitHub: https://github.com/BelungaCZ/sgiprealestate