Веб-сайт для современной столовой или кафе
Обзор проекта
Веб-сайт для современной столовой или кафе, разработанный на современном стеке технологий. Проект сочетает в себе высокую производительность, удобство управления контентом и привлекательный индивидуальный дизайн, ориентированный на конечного пользователя.
Технический стек: Фронтенд
- Фреймворк: Next.js 15+ с использованием App Router
- Язык программирования: TypeScript для обеспечения типобезопасности
- Стилизация: Индивидуальный дизайн, реализованный с помощью CSS-модулей (или Tailwind CSS / Styled Components)
- Рендеринг: Серверный рендеринг (SSR) и статическая генерация (SSG) для ключевых страниц
- Метрика: Интеграция Яндекс.Метрики для сбора和分析 данных о посетителях
Технический стек: Бэкенд и админ-панель
- CMS/Backend: Strapi 5 (headless CMS с REST/GraphQL API)
- База данных: SQLite для хранения контента, пользователей и заявок
- Панель управления: Встроенная административная панель Strapi с настроенными коллекциями и правами доступа
- Аутентификация: JWT-токены для защиты API
Ключевой функционал для пользователей
- Главная страница: Уникальный дизайн с ключевой информацией о заведении
- Секция меню:
- Динамический вывод блюд из базы данных Strapi
- Фильтр блюд по категориям (категории управляются через админ-панель)
- Адаптивные карточки блюд с изображениями, описанием и ценой
- Раздел "Блог":
- Серверный рендеринг статей для SEO
- Вывод списка статей и отдельных записей
- Чистые и семантические URL (SLUG)
- Форма обратной связи:
- Форма для отправки заявок (столик, обратный звонок, вопрос)
- Валидация данных на клиенте и сервере
- Мгновенное уведомление в Telegram через бота
Интеграции и API
- Внутреннее API: Создание конечных точек (endpoints) в Strapi для обработки форм
- Внешнее API: Интеграция с Telegram Bot API для отправки сообщений
- Взаимодействие: Форма на Next.js отправляет данные на API Strapi, который, в свою очередь, отправляет уведомление в Telegram
Развертывание и сервер
- Среда выполнения: Проект развернут на виртуальном сервере (VPS)
- Веб-сервер: Настроенный Nginx в качестве reverse proxy для Next.js и Strapi
- Процессы: Управление процессами через PM2
- Среда: Настройка переменных окружения для безопасного хранения ключей и настроек
- Домены: Настройка доменных имен и SSL-сертификатов (HTTPS)
Административная панель (Strapi)
- Управление контентом: CRUD-операции для меню, категорий, блог-постов
- Управление медиа: Встроенный медиабиблиотекарь для загрузки изображений блюд и статей
- Управление заявками: Просмотр полученных заявок с сайта в админ-панели
- Роли и права: Настройка прав доступа для администраторов и контент-менеджеров