Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions PROJECT_ANALYSIS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Анализ проекта PermitPilot

## Цель проекта
**PermitPilot** — это система управления заявками на получение разрешений на строительство (Permit Application Management System). Она предназначена для упрощения процесса получения разрешений для строительства и ремонта.

**Основные возможности:**
1. **AI Permit Assistant (Генератор чек-листов)**: Позволяет загружать фото объекта и голосовые описания для автоматического создания списка необходимых разрешений.
2. **Document Auto-Fill (Автозаполнение документов)**: Извлекает данные из загруженных документов (PDF/фото) и автоматически заполняет формы заявок.
3. **Smart Municipality Database**: База данных с требованиями муниципалитетов (сейчас реализована как просмотр seed-данных).
4. **Dashboard (Панель управления)**: Отслеживание статуса поданных заявок.
5. **AI-Powered Validation (Валидация кодов)**: Проверка текста заявки на соответствие строительным нормам.

## Что необходимо доработать (Missing Features & Improvements)

На основе анализа кодовой базы, выявлены следующие области для улучшения:

### 1. Тестирование (Критично)
* **Текущее состояние**: В проекте полностью отсутствует инфраструктура для тестирования. Нет ни юнит-тестов, ни интеграционных тестов.
* **Что нужно сделать**:
* Настроить тестовый фреймворк (например, Vitest или Jest).
* Написать юнит-тесты для утилит и компонентов.
* Написать интеграционные тесты для AI flow и работы с Firebase.

### 2. Реализация RAG для валидации (Важно)
* **Текущее состояние**: Функция валидации (`code-validator`) требует, чтобы пользователь вручную вставлял текст строительных норм ("Local Building Codes").
* **Что нужно сделать**: Реализовать RAG (Retrieval-Augmented Generation). Система должна автоматически находить соответствующие строительные нормы для указанной локации из векторной базы данных, а не требовать их ввода от пользователя.

### 3. Аутентификация
* **Текущее состояние**: Используется только анонимный вход (`initiateAnonymousSignIn`).
* **Что нужно сделать**: Реализовать полноценную аутентификацию через Email/Password или провайдеров (Google, GitHub и т.д.) для сохранения данных пользователя между сессиями и устройствами.

### 4. Реальные данные муниципалитетов
* **Текущее состояние**: Используются моковые данные (seed data) для демонстрации.
* **Что нужно сделать**: Подключить реальную базу данных муниципалитетов или интегрироваться с внешним API для получения актуальных требований и кодов.

### 5. Обработка ошибок и валидация форм
* **Текущее состояние**: Базовая обработка ошибок с помощью "toast" уведомлений.
* **Что нужно сделать**: Улучшить валидацию на клиенте (используя Zod схемы, которые уже есть) и обработку краевых случаев (например, сбои сети, ошибки AI провайдера).
Loading