Приложение создано в учебных целях с целью изучить:
- Микросервисную архитектуру
- DDD
- Брокеры сообщений
Warning
Весь фронтенд НАВАЙБКОЖЕН. Создан исключительно чтобы потешить своё эго
- KrakenD (Gateway)
- KeyCloack (Авторизация и управление ролями)
- Каталог и Бронирование
| Технология | Назначение |
|---|---|
| Python 3.13 | Язык программирования |
| FastAPI, Uvicorn | HTTP API и ASGI-сервер |
| SQLAlchemy, asyncpg | Работа с PostgreSQL |
| Pydantic Settings | Настройки приложения |
| Dishka | Внедрение зависимостей |
| Alembic | Миграции базы данных |
| pytest, HTTPX | Тестирование |
| FastStream | Зависимость для брокеров сообщений; брокер пока не подключён |
| Технология | Назначение |
|---|---|
| React 19 | Пользовательский интерфейс |
| TypeScript | Типизация клиентского кода |
| Vite | Dev-сервер и production-сборка |
| Tailwind CSS 4, shadcn/ui, Radix UI, Lucide | Стилизация, доступные компоненты и иконки |
| React Hook Form, Zod | Управление формами и декларативная валидация |
| TanStack Query | Загрузка, кэширование и мутации серверных данных |
| shadcn/ui, Radix UI | Общие компоненты и dashboard-админка управления категориями |
| keycloak-js, @react-keycloak/web | Keycloak Authorization Code + PKCE для SPA |
| Технология | Назначение |
|---|---|
| KrakenD | API Gateway: маршрутизация, CORS и проверка JWT-токенов и ролей |
| Keycloak, OpenID Connect | Аутентификация, управление ролями и учётными записями |
| PostgreSQL 17 | Хранение данных Keycloak и сервиса бронирования |
| Nginx | Прокси Keycloak и ограничение доступа к разделам кабинета |
| Docker Compose | Сборка и совместный запуск сервисов |
cp .env.example .env
make upmake test-booking- Фронтенд: http://127.0.0.1:5173/
- API Gateway (KrakenD): http://127.0.0.1:8080/
- Keycloak (через прокси): http://127.0.0.1:8081/
- Бэкенд Бронирования: http://127.0.0.1:8001/docs/
Note
Прежде всего, этот раздел нужен самому разработчику чтобы понимать как двигаться и что нужно сделать