HotelSync 20582581be fix: sync endHour state when effectiveStartHour shifts past it
When existing bookings block the initial startHour, effectiveStartHour
snaps to the first available slot. Added useLayoutEffect to update
endHour state immediately so start and end times are never equal.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 22:37:49 +03:00
2026-03-10 20:38:32 +03:00

HotelSync — SaaS PMS System

Современная система управления отелем (PMS) с шахматкой бронирований, менеджером каналов и API.

Быстрый старт

npm install
npm run dev

Откройте http://localhost:5173

Демо-аккаунты

Роль Email Пароль
Менеджер отеля manager@grand-palace.ru demo
Горничная cleaner@grand-palace.ru demo
Супер-администратор admin@hotelsync.io demo

Функциональность

  • Шахматка — drag-to-book интерфейс, цветовое кодирование по статусам
  • Бронирования — список с фильтрами, создание, детальная панель
  • Номерной фонд — карточки номеров, статусы, уборка
  • Уборка — Kanban-доска: ожидание / в процессе / готово
  • Менеджер каналов — Booking.com, Airbnb, Expedia, VRBO
  • API-документация — встроенная документация REST API
  • Светлая / тёмная тема — переключатель в шапке
  • Мультиарендность — архитектура SaaS с изоляцией по отелям

Структура проекта

src/
├── components/
│   ├── calendar/       # Шахматка бронирований
│   ├── bookings/       # Модалки бронирований
│   ├── layout/         # Sidebar, Topbar
│   └── ui/             # Badge, Modal
├── contexts/           # AuthContext, ThemeContext
├── data/               # Мок-данные
├── layouts/            # AppLayout
├── lib/                # Утилиты, константы
├── pages/              # Страницы приложения
└── types/              # TypeScript типы

API

Base URL: https://api.hotelsync.io/v1

Документация доступна в приложении: /grand-palace/api-docs

Стек технологий

  • React 18 + TypeScript
  • Vite 5
  • Tailwind CSS 3 (dark mode)
  • React Router 6
  • date-fns
  • Lucide React
Description
No description provided
Readme 1.6 MiB
Languages
TypeScript 98.4%
HTML 0.7%
JavaScript 0.3%
Shell 0.2%
CSS 0.2%
Other 0.1%