Files
mkd/README.md

170 lines
8.0 KiB
Markdown
Raw Permalink Normal View History

2026-02-04 00:17:04 +05:00
# Центр управления жилым фондом (МКД)
<div align="center">
<img width="1200" height="475" alt="GHBanner" src="https://github.com/user-attachments/assets/0aa67016-6eaf-458a-adb2-6e31a0763ed6" />
</div>
Веб-приложение для комплексного управления многоквартирными домами (МКД), включающее модули для управления объектами, финансами, кадрами, юридическими вопросами, PR-деятельностью и офисной работой.
## 🚀 Возможности
### Основные модули:
- **📊 Дашборд** - Общая сводка и аналитика по всем направлениям
- **🏢 Объекты** - Управление зданиями, характеристиками, осмотрами, планами работ
- **📝 Заявки** - Реестр заявок жильцов, контроль качества, диспетчеризация
- **💰 Финансы** - Управление счетами, платежами, дебиторской задолженностью, отчетностью
- **👥 HR** - Управление персоналом, вакансиями, наймом, зарплатами
- **⚖️ Юридический** - Договоры, судебные дела, взыскание долгов, доверенности
- **📢 PR** - Управление событиями, обратной связью жильцов, SMM, негативными ситуациями
- **🏛️ Офис** - Документооборот, управление помещениями, база знаний, закупки
- **🔧 Развитие** - Технический аудит, маркетинговые кампании, работа с ОСС
### Система ролей:
Приложение поддерживает различные роли пользователей с разными уровнями доступа:
- **Директор** - Полный доступ ко всем модулям
- **Главный инженер** - Дашборд, объекты, заявки, офис, развитие
- **Мастер** - Объекты, заявки
- **Юрист** - Дашборд, юридический, объекты, заявки
- **Финансист** - Дашборд, финансы, офис, объекты
- **HR-менеджер** - Дашборд, HR, офис
- **PR-менеджер** - Дашборд, PR, заявки
## 🛠️ Технологии
- **React 19** - UI библиотека
- **TypeScript** - Типизация
- **Vite** - Сборщик и dev-сервер
- **Tailwind CSS** - Стилизация
- **Lucide React** - Иконки
- **html2canvas & jsPDF** - Экспорт в PDF
## 📋 Требования
- **Node.js** (рекомендуется версия 18+)
## 🚀 Установка и запуск
### 1. Установка зависимостей
```bash
npm install
```
### 2. Настройка переменных окружения
Создайте файл `.env.local` в корне проекта на основе `.env.example`:
```env
# API Configuration
VITE_API_BASE_URL=http://localhost:4000/api
# Doma AI API Configuration
# URL API Doma AI (по умолчанию используется тестовый стенд)
VITE_DOMA_AI_API_URL=https://condo.d.doma.ai/admin/api
# Учетные данные для авторизации в Doma AI
# Используйте email и пароль ИЛИ телефон и пароль
VITE_DOMA_AI_EMAIL=your-email@example.com
VITE_DOMA_AI_PASSWORD=your-password
# ИЛИ используйте телефон:
# VITE_DOMA_AI_PHONE=+79991234567
```
**Настройка интеграции с Doma AI (PRODUCTION):**
1. Получите URL API вашего продакшн инстанса Doma AI (обычно: `https://your-domain.doma.ai/admin/api`)
2. Убедитесь, что у вас есть учетные данные для доступа к API
3. Укажите URL API и учетные данные в переменных окружения:
- `VITE_DOMA_AI_API_URL` - URL вашего инстанса Doma AI
- `VITE_DOMA_AI_EMAIL` / `VITE_DOMA_AI_PHONE` - учетные данные
- `VITE_DOMA_AI_PASSWORD` - пароль
4. При первом запуске приложение автоматически авторизуется в Doma AI
5. Заявки будут автоматически загружаться из Doma AI в раздел "Заявки"
**Для тестирования** можно использовать тестовый стенд: https://condo.d.doma.ai/
### 3. Запуск в режиме разработки
```bash
npm run dev
```
Приложение будет доступно по адресу: `http://localhost:3000`
### 4. Сборка для продакшена
```bash
npm run build
```
### 5. Просмотр production сборки
```bash
npm run preview
```
## 📁 Структура проекта
```
├── components/ # React компоненты
│ ├── applications/ # Модуль заявок
│ ├── building/ # Компоненты для работы со зданиями
│ ├── development/ # Модуль развития
│ ├── finance/ # Финансовый модуль
│ ├── hr/ # HR модуль
│ ├── legal/ # Юридический модуль
│ ├── objects/ # Компоненты объектов
│ ├── office/ # Офисный модуль
│ └── pr/ # PR модуль
├── services/ # Сервисы (API, storage, etc.)
├── types.ts # TypeScript типы
├── constants.tsx # Константы и моки
├── App.tsx # Главный компонент
├── index.tsx # Точка входа
└── vite.config.ts # Конфигурация Vite
```
## 🔧 Конфигурация
### Vite конфигурация
Проект настроен для работы с прокси-сервером API:
- Dev сервер: `http://localhost:3000`
- API прокси: `/api``https://n8n.iieasy.ru/`
Настройки можно изменить в `vite.config.ts`.
## 📝 Особенности
- **Локальное хранилище** - Сохранение состояния выбранных зданий и активных вкладок
- **Адаптивный дизайн** - Поддержка мобильных устройств
- **Система ролей** - Контроль доступа на основе ролей пользователей
- **Экспорт данных** - Возможность экспорта отчетов в PDF
- **Интеграция с Doma AI** - Автоматическая синхронизация заявок через GraphQL API
## 🎯 Разработка
### Добавление нового модуля
1. Создайте компонент модуля в `components/`
2. Добавьте навигационный элемент в `constants.tsx`
3. Добавьте обработку в `App.tsx` в функции `renderContent()`
4. Настройте права доступа в `ROLE_ACCESS` в `App.tsx`
### Работа с типами
Все типы определены в `types.ts`. При добавлении новых сущностей обновите соответствующие типы.
## 📄 Лицензия
Проект разработан для внутреннего использования.
## 🔗 Ссылки
- [AI Studio](https://ai.studio/apps/drive/1jOVxm30BucP1pvw8ODxuHe3FC-Xaww9E)
- [Документация Doma AI API](https://developers.doma.ai/ru/docs/index)
- [Doma AI API Playground](https://condo.d.doma.ai/admin/api)