Работы /Русский ресторан
Русский ресторан
Доступы
Описание проекта
🍽️ Русский ресторан — веб-приложение для просмотра меню и бронирования столиков
Описание:
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
