Локальное десктоп-приложение для управления зоогостиницей
Возможности • Быстрый старт • Сборка • Разработка • Тестирование • CI/CD
Pet Hotel Desktop — это локальная десктоп-версия SaaS платформы RentForPet. Работает без интернета, все данные хранятся на вашем компьютере. Не требует авторизации — сразу открывается панель управления.
🌐 Облачная SaaS-версия с расширенными возможностями скоро будет доступна по адресу rentforpet.ru
- Полностью локальное — работает офлайн, данные только на вашем ПК
- Без авторизации — запустил и работаешь
- Современный стек — React + TypeScript + .NET 8
- Кроссплатформенное — macOS, Windows, Linux
Готовые сборки для всех платформ доступны на странице GitHub Releases.
| Платформа | Ссылка |
|---|---|
| 🍎 macOS (Apple Silicon) | RentForPet-1.0.5-arm64.dmg |
| 🍎 macOS (Apple Silicon, ZIP) | RentForPet-1.0.5-arm64.zip |
| 🍎 macOS (Intel) | RentForPet-1.0.5-x64.zip |
| 🪟 Windows | RentForPet-1.0.5-x64.exe |
| 🐧 Linux (AppImage) | RentForPet-1.0.5-x86_64.AppImage |
| 🐧 Linux (Debian/Ubuntu) | RentForPet-1.0.5-amd64.deb |
- RU: docs/README.md
- EN: docs/README_EN.md
- В приложении: раздел
Справка / Help(/help)
- Создание и редактирование бронирований
- Gantt-диаграмма занятости номеров
- Составные бронирования с переездами между номерами
- Автоматический расчёт стоимости
- Система скидок и предоплаты
- Статусы: Ожидание → Подтверждено → Заселён → Выселен
- База клиентов с историей бронирований
- Профили питомцев с заметками
- Дневник активности питомца
- Система лояльности со скидками
- Типы номеров с описаниями и ценами
- Управление отдельными номерами
- Проверка доступности
- Несколько способов оплаты (карта, наличные, перевод)
- Возвраты и переносы оплаты между бронированиями
- Отслеживание статусов платежей
| Слой | Технологии |
|---|---|
| Десктоп | Electron |
| Фронтенд | React 18, TypeScript, Vite, Tailwind CSS, React Query |
| Бэкенд | .NET 8, ASP.NET Core Web API |
| База данных | SQLite (локальная, создаётся автоматически) |
# Клонировать репозиторий
git clone https://github.com/t0nyhat/RentForPet_Desktop.git
cd RentForPet_Desktop
# Установить зависимости
npm install
cd frontend && npm install && cd ..npm run devОткроется:
- Бэкенд:
http://localhost:5226 - Фронтенд:
http://localhost:5173
База данных SQLite создаётся автоматически при первом запуске в папке
data/.
- В разделе
Расписаниедобавлена кнопкаЭкспорт в Excel(файл.xlsx) со всеми данными бронирований. - Там же доступна кнопка
Бэкап БД, которая создаёт резервную копию SQLite и скачивает файл. - Сервер также сохраняет бэкапы в папку
data/backups/рядом сpethotel.db.
При мердже PR в ветку main автоматически:
- ✅ Auto Version Bump повышает версию и создает тег
vX.Y.Z - ✅ Build and Release (workflow_run) запускает тесты
- 📦 Создаются сборки для всех платформ (Windows, macOS ARM, Linux)
- 🎉 Публикуется релиз на GitHub
Подробнее: CI/CD Setup
# macOS (Apple Silicon)
npm run build:mac-silicon
# macOS (Intel)
npm run build:mac-intel
# Windows
npm run build:win
# Linux
npm run build:linuxГотовое приложение появится в папке dist-electron/.
Иконки берутся из build/icons/ (icon.icns для macOS, icon.ico для Windows). Автоматическая генерация при сборке не выполняется.
petshoteldesktop/
├── frontend/ # React + TypeScript
│ └── src/
│ ├── components/ # UI компоненты
│ ├── pages/ # Страницы
│ └── context/ # React контексты
├── PetHotel.API/ # ASP.NET Core Web API
│ └── Controllers/ # API эндпоинты
├── PetHotel.Application/ # Бизнес-логика
│ ├── DTOs/ # Data Transfer Objects
│ └── Services/ # Сервисы
├── PetHotel.Domain/ # Сущности и интерфейсы
├── PetHotel.Infrastructure/ # Доступ к данным
│ └── Data/ # EF Core DbContext
├── PetHotel.Tests/ # Backend тесты (xUnit)
├── main.js # Electron
└── data/ # База данных SQLite
# Запуск в режиме разработки
npm run dev
# Только фронтенд
npm run dev:react
# Только бэкенд
npm run dev:dotnet
# Сборка
npm run build:mac-silicon # macOS Apple Silicon
npm run build:mac-intel # macOS Intel
npm run build:win # Windowscd frontend
npm run dev # Dev сервер
npm run build # Production сборка
npm run lint # ESLint
npm run type-check # TypeScript проверка
npm test # Запуск тестовdotnet run --project PetHotel.API # Запуск
dotnet watch run --project PetHotel.API # Hot reload
dotnet build PetHotel.sln # Сборка
dotnet test PetHotel.Tests # Запуск тестовПроект включает полный набор тестов для frontend и backend.
Статистика тестов:
- Frontend: 71 тест (5 тестовых файлов)
- Backend: 126 тестов (xUnit)
- Всего: 197 тестов
cd frontend
npm test # Vitest в watch mode
npm run test:run # Запуск всех тестов
npm run test:coverage # С покрытием кода
npm run test:ui # UI интерфейс для тестовТесты покрывают:
- React компоненты (Modal, AlertModal, ConfirmModal)
- Утилиты форматирования данных
- Работу с localStorage
dotnet test PetHotel.Tests # Запуск всех тестов
dotnet test PetHotel.Tests --verbosity normal # С подробным выводом
dotnet test --collect:"XPlat Code Coverage" # С покрытием кодаТесты покрывают:
- Domain entities и бизнес-логика
- Application services и валидаторы
- Exception handling
Тесты автоматически запускаются перед коммитом через Husky:
- ✅ Frontend: lint, type-check, тесты
- ✅ Backend: StyleCop, build, тесты (только для измененных C# файлов)
Пропустить проверки:
git commit --no-verify| Переменная | Описание | По умолчанию |
|---|---|---|
PETSHOTEL_DATA_PATH |
Путь к папке с БД | ./data |
PetHotel.API/appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=./data/PetHotel.db"
},
"Seed": {
"Enabled": true
}
}При Seed.Enabled: true создаются тестовые данные: типы номеров, номера, тестовый клиент с питомцами и бронирование.
MIT License — см. LICENSE
Продукт разработан исключительно с использованием инструментов искусственного интеллекта:
- GitHub Copilot — ИИ-ассистент прямо в редакторе
- Claude (Anthropic) — генерация и анализ кода
- OpenAI Codex — автодополнение и написание кода
- Cursor — ИИ-редактор кода
- Sourcecraft — ИИ-инструменты для разработки
RentForPet 🐾




