Алексей Белов
← Все проекты

Sladkoru

Интернет-магазин турецких сладостей: дизайн, frontend, backend, SEO и деплой — полный цикл.

Next.jsReactTypeScriptNestJSPostgreSQLPrismaDockerNginx

Задача

Разработать интернет-магазин турецких сладостей с нуля: витрину с каталогом и карточками товаров, оформление заказа без предоплаты (с уведомлением менеджера), и полноценную админ-панель для управления магазином без участия разработчика — товары, категории, медиа, заказы, статьи и модерация контента.

Результат

  • Владелец бизнеса самостоятельно управляет всем контентом сайта — товарами, ценами, статьями и заказами — без обращения к разработчику.
  • Сайт полностью готов к продакшену: быстрый, SEO-оптимизированный сторфронт и стабильная админка с журналом ошибок и контролем доступа, работающие в едином Docker-окружении.

Решение

  • Монорепозиторий на pnpm workspaces с общим пакетом контрактов (Zod-схемы + типы), который является единственным источником правды для DTO между frontend и backend — исключает рассинхрон типов между слоями.
  • Frontend на Next.js App Router с разделением на публичную витрину (RSC, кеширование) и защищённую админку; backend на NestJS со слоистой архитектурой controller → service → Prisma, JWT-аутентификация в httpOnly-cookie (jose + argon2) с версионированием сессий для мгновенного отзыва доступа.
  • Админ-панель включает: CRUD для товаров и категорий (с ручной сортировкой и featured-слотами), загрузку и конвертацию изображений в WebP через sharp, Notion-подобный блочный редактор для статей, модерацию пользовательского контента, журнал ошибок и раздел безопасности сессий.
  • SEO-модуль с генерацией метаданных и структурированных данных на уровне сервера; автоматическая инвалидация кеша страниц по тегам при изменении данных в админке (webhook backend → revalidate API); уведомления о заказах и обращениях через email (SMTP) и Telegram.
  • Деплой в Docker (отдельные образы frontend/backend), PostgreSQL как основное хранилище, Nginx как reverse proxy на VPS; отдельные Docker-режимы для локальной разработки и production-like проверки перед выкладкой.