Все проекты
Реализован aquatravel.md
Aquatravel.md
Сайт компании водных туров по реке Днестр
Коммерческий сайт водных туров (каякинг, рафтинг) под ключ: каталог туров, интернет-магазин мерча и подарочных сертификатов, личный кабинет, 3 языка и собственная админ-панель — от дизайна до боевого деплоя с почтовым сервером и SSL.
Next.js 16React 19TypeScriptTailwind v4Framer MotionMongoDBNextAuth v5PM2NginxPostfix + OpenDKIM

Технологический стек
- Next.js 16 (App Router, Turbopack), React 19, TypeScript
- Tailwind CSS v4, Framer Motion (анимации на 34 страницах), lucide-react
- MongoDB + Mongoose (6 моделей), NextAuth v5 (Credentials + JWT)
- Node.js + PM2, Nginx (reverse-proxy, HTTPS), Let’s Encrypt, Sharp
Безопасность
Продуманный набор защитных мер уровня production.
- Защита от NoSQL-инъекций — строгая нормализация всего ввода (lib/sanitize), отсечение объектов вида {$ne:null}
- 2FA/TOTP — собственная реализация RFC 6238 на Node crypto (base32, HOTP/TOTP, timingSafeEqual), секрет в БД зашифрован AES-256-GCM, QR для подключения
- bcrypt для паролей; восстановление — одноразовый токен (в БД только SHA-256-хэш, TTL 1 час, одинаковый ответ независимо от существования email)
- Rate limiting на логин/регистрацию/заказы/сброс пароля; server-side пересчёт суммы заказа
- HTTP security-заголовки: HSTS preload, X-Frame-Options, CSP (frame-ancestors / base-uri / object-src / form-action), отключён X-Powered-By
- Ролевая модель (requireAdmin на layout и каждой мутирующей API-ручке), валидация загрузки файлов, DKIM-подпись писем
SEO
- Динамический sitemap.xml (статика + туры из БД) и robots.txt (закрыты /admin, /api, личные разделы)
- Централизованные метаданные (canonical, Open Graph, Twitter Cards), JSON-LD TravelAgency
- PWA-манифест, apple-icon, оптимизация LCP (preconnect, next/image, WebP)
- Уникальные SEO-тексты под каждый раздел
Многоязычие (i18n)
- 3 языка: русский, английский, румынский — с переключателем и сохранением выбора
- Контент туров в БД мультиязычными кортежами {ru, en, ro}
- Локализованы интерфейс, статусы заказов, категории/сложность туров и все письма
Функционал пользователя
- Каталог туров с фильтрами, детальные страницы, маршруты, флотилия, галерея, отзывы, корпоративные туры
- Корзина и оформление заказа: туры, сертификаты, мерч (футболки, кепки) с опциями
- Подарочные сертификаты и мерч как полноценный мини-магазин, бронирование с выбором даты и числа человек
- Личный кабинет: история заказов и статусы, профиль, включение/отключение 2FA
Интеграции
- Собственный почтовый сервер (Postfix + OpenDKIM) — без сторонних SaaS
- Транзакционные письма с фирменным адаптивным HTML-шаблоном на языке пользователя (регистрация, заказ, смена статуса, сброс пароля)
- Генерация QR-кодов для 2FA, два способа оплаты (наличные / карта)
Админ-панель
- Дашборд с аналитикой: заказы и выручка за день/неделю/месяц/всё время, пользователи, туры, остатки мерча
- CRUD туров (мультиязычно) с загрузкой и оптимизацией изображений, управление мерчем
- Заказы — смена статуса с автоматическим письмом клиенту; менеджер галереи
- Встроенная инструкция для администратора и человекопонятный аудит безопасности
Дизайн и инфраструктура
- Авторский визуальный стиль водной/природной темы (зелёный, песочный, оранжевый), кинематографичные hero-секции на Framer Motion
- Единые брендовые компоненты (Header, Footer, PageHero, TourCard), фирменный стиль и в письмах
- Боевой сервер: PM2, Nginx, HTTPS (Let’s Encrypt), поддомен mail.aquatravel.md
- Скрипты миграции, сидинга, генерации OG-изображений/фавиконов и пакетной оптимизации медиа
Клиент пока не оставил отзыв.
