Skip to content

Latest commit

 

History

History
163 lines (120 loc) · 6.58 KB

README_RATING_INTEGRATION.md

File metadata and controls

163 lines (120 loc) · 6.58 KB

Интеграция системы рейтинга застройщиков

Описание

Система рейтинга застройщиков была успешно интегрирована из бэкенда "Новая папка" в основной проект. Система включает в себя:

  • Модель DeveloperRating для хранения рейтингов застройщиков
  • CRUD операции для управления рейтингами
  • API эндпоинты для работы с рейтингами
  • Фронтенд компоненты для отображения рейтингов

Структура интеграции

Бэкенд

Новые файлы:

  • Models/All_models.py - добавлена модель DeveloperRating
  • Cruds/DeveloperRating_crud.py - CRUD операции для рейтингов
  • Schemas/DeveloperRating_schema.py - Pydantic схемы
  • Routers/DeveloperRating_router.py - API роутер
  • update_database_rating.py - скрипт обновления БД
  • test_rating_api.py - тестовый скрипт

Обновленные файлы:

  • Routers/Zastroy_router.py - добавлены эндпоинты для рейтингов
  • Schemas/Zastroy_schema.py - добавлены схемы с рейтингом
  • main.py - подключен новый роутер

Фронтенд

Новые файлы:

  • components/TopDevelopers.vue - компонент топ застройщиков

Обновленные файлы:

  • utils/api.js - добавлены API методы для рейтингов
  • components/DeveloperDashboard.vue - добавлено отображение рейтинга
  • App.vue - добавлен компонент TopDevelopers

API Эндпоинты

Рейтинг застройщиков

GET /developer-ratings/{law_face_id}

Получить рейтинг застройщика

POST /developer-ratings/

Создать рейтинг застройщика

PUT /developer-ratings/{law_face_id}

Обновить рейтинг застройщика

POST /developer-ratings/{law_face_id}/calculate

Пересчитать рейтинг застройщика

GET /developer-ratings/{law_face_id}/stats

Получить статистику застройщика

GET /developer-ratings/top/?limit={limit}

Получить топ застройщиков

Застройщики (обновленные)

GET /zastroys/{zastroy_id}/with-stats

Получить застройщика с рейтингом и статистикой

GET /zastroys/{zastroy_id}/rating

Получить рейтинг застройщика

GET /zastroys/{zastroy_id}/stats

Получить статистику застройщика

POST /zastroys/{zastroy_id}/recalculate-rating

Пересчитать рейтинг застройщика

Модель данных

DeveloperRating

class DeveloperRating(base):
    __tablename__ = "developer_ratings"
    
    id = Column(Integer, primary_key=True, index=True)
    law_face_id = Column(Integer, ForeignKey("Law_faces.id"), unique=True)
    rating = Column(Float, default=0.0)  # 0-10
    completed_projects = Column(Integer, default=0)
    years_on_market = Column(Integer, default=0)
    last_updated = Column(DateTime, default=datetime.utcnow)

Алгоритм расчета рейтинга

Рейтинг застройщика рассчитывается по формуле:

Рейтинг = (Средний рейтинг объектов × 0.7) + (Базовый рейтинг × 0.3)

Где:

  • Средний рейтинг объектов = среднее арифметическое рейтингов всех квартир и ЖК застройщика
  • Базовый рейтинг = 8.0 (минимальный рейтинг для всех застройщиков)

Установка и запуск

1. Обновление базы данных

cd backend
python update_database_rating.py

2. Запуск бэкенда

cd backend
python main.py

3. Запуск фронтенда

cd frontend
npm run dev

4. Тестирование API

cd backend
python test_rating_api.py

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

В личном кабинете застройщика:

  • Отображение текущего рейтинга (0-10)
  • Количество завершенных проектов
  • Количество лет на рынке
  • Статистика по объектам недвижимости
  • Возможность пересчета рейтинга
  • Отображение рейтингов ЖК

На главной странице:

  • Компонент "Топ застройщиков" с рейтингами
  • Возможность просмотра детальной информации о застройщиках

Особенности реализации

  1. Автоматическое создание рейтинга: При создании застройщика автоматически создается запись рейтинга
  2. Детерминированные тестовые данные: Рейтинг генерируется на основе ИНН застройщика
  3. Взвешенный расчет: Учитываются рейтинги объектов (70%) и базовый рейтинг (30%)
  4. Адаптивный дизайн: Все компоненты адаптированы для мобильных устройств
  5. Реальное время: Рейтинги обновляются в реальном времени

Технические детали

  • Используется PostgreSQL для хранения данных
  • FastAPI для бэкенда
  • Vue.js 3 для фронтенда
  • SQLAlchemy для ORM
  • Pydantic для валидации данных

Возможные улучшения

  1. Интеграция с API ФНС для получения реальных данных о проектах
  2. Добавление системы отзывов пользователей
  3. Реализация алгоритма машинного обучения для расчета рейтинга
  4. Добавление уведомлений об изменении рейтинга
  5. Экспорт рейтингов в различные форматы