Web-разработка
Работы /Русский ресторан

Русский ресторан

Доступы

Описание проекта

🍽️ Русский ресторан — веб-приложение для просмотра меню и бронирования столиков

Описание:
SPA-приложение ресторана с серверной фильтрацией блюд, системой регистрации и авторизации, бронированием столиков и административной панелью для управления пользовательскими записями.

Реализовано:

  • 🔐 Регистрация, вход, access/refresh JWT-токены и хранение сессии в cookie
  • 🍲 Каталог блюд с поиском, фильтрацией и серверной обработкой параметров
  • 🪑 Онлайн-бронирование столиков с выбором зала, даты и конкретного места
  • 🛡️ Защищённые маршруты для авторизованных пользователей и отдельный доступ для администратора
  • 🧾 Админ-панель со списком всех бронирований и возможностью удаления записей
  • ✅ Валидация данных и на клиенте, и на сервере
  • 🗄️ PostgreSQL + Drizzle ORM для хранения пользователей, блюд, отзывов и бронирований
  • 📘 Swagger-документация для REST API
  • 🐳 Контейнеризация через Docker Compose и проксирование через Nginx

Особенности:

Клиент и сервер полностью разделены: фронтенд работает как SPA на Vue, а вся бизнес-логика, авторизация, фильтрация и работа с данными вынесены в Fastify API.

Демо-доступы:

  • Пользователь: user1@example.com / password123
  • Администратор: admin@example.com / admin12345

Стек

  • Vue 3
  • TypeScript
  • Pinia
  • Vue Router
  • TanStack Vue Query
  • Fastify
  • Node.js
  • PostgreSQL
  • Drizzle ORM
  • JWT
  • Docker Compose
  • Nginx
  • Swagger