domovoy_bot/DEVELOPMENT_PLAN.md

14 KiB
Raw Blame History

📋 План разработки v1.1 — v1.14

Дата начала: 26 февраля 2026 г. Текущая версия: v1.14 Календарь событий дома Следующая версия: v2.0 (AI-Юрист)


🎯 Очередь реализации

v1.0 MVP — Зафиксировано (26.02.2026)

Бекап: backups/versions/v1.0_mvp_2026-02-26/


v1.14 — Календарь событий дома — ЗАВЕРШЕНО (27.02.2026)

Статус: Завершено

Функционал:

  • Модели Event, EventParticipant — события и участники
  • Создание событий админом (/event_add)
  • Запись на участие (/join)
  • Отписка от события (/leave)
  • Просмотр предстоящих событий (/events)
  • Мои события (/my_events)
  • Список участников (/participants)
  • Отмена события (/event_cancel)
  • Авто-напоминания за 24 часа

Файлы:

  • database/models.py (Event, EventParticipant)
  • database/migrate_add_events.py
  • services/events.py
  • handlers/events.py
  • services/scheduler.py (дополнен)
  • КАЛЕНДАРЬ_СОБЫТИЙ.md

v1.13 — Система благодарностей — ЗАВЕРШЕНО (27.02.2026)

Статус: Завершено

Функционал:

  • FastAPI приложение
  • Дашборд со статистикой
  • Страница пользователей с поиском
  • Страница экспорта
  • Страница настроек
  • API endpoints (/api/stats, /api/users, /api/export)
  • HTTP Basic авторизация
  • Интеграция с ботом

Файлы:

  • web/app.py
  • web/templates/*.html
  • services/web_server.py
  • main.py (дополнен)
  • ВЕБ_ИНТЕРФЕЙС.md
CREATE TABLE polls (
    poll_id INTEGER PRIMARY KEY,
    message_id BIGINT,
    question TEXT,
    options JSON,
    votes JSON,
    created_by BIGINT,
    created_at TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE
)

Файлы:

  • database/models.py — модель Poll
  • database/migrate_add_polls.py — миграция
  • handlers/polls.py — хендлеры
  • keyboards/inline.py — кнопки
  • ОПРОСЫ.md — документация

Критерии приёмки:

  • Админ создаёт опрос в чате
  • Жильцы голосуют кнопками
  • Результаты обновляются
  • Повторное голосование блокируется
  • Повторное голосование блокируется

v1.2 — Чёрный список ссылок

Статус: Ожидает

Функционал:

  • Файл data/bad_domains.json со списком доменов
  • Проверка всех сообщений на наличие ссылок
  • Авто-удаление сообщений со спам-доменами
  • Предупреждение пользователю в личку
  • Учёт предупреждений (3 → бан)
  • Команды: /add_domain, /remove_domain, /domains

Пример bad_domains.json:

{
  "domains": [
    "spam.com",
    "phishing-site.ru",
    "fake-giveaway.xyz"
  ],
  "patterns": [
    "t.me/spam_",
    "vk.com/fake_"
  ]
}

Файлы:

  • handlers/antispam.py (новый)
  • data/bad_domains.json (новый)
  • services/antispam.py (новый)

v1.3 — Анти-спам (лимиты сообщений)

Статус: Ожидает

Функционал:

  • Счётчик сообщений за период (10 сообщений за 1 минуту)
  • При превышении — мут на N минут
  • Предупреждение админу
  • Настройка лимитов в конфиге
  • Исключения для админов и верифицированных

Конфигурация:

# Лимиты анти-спама
SPAM_LIMIT=10          # сообщений
SPAM_PERIOD=60         # секунд
MUTEDURATION=30        # минут мута

Файлы:

  • services/antispam.py (дополнить)
  • database/models.py (добавить поле is_muted)
  • handlers/mute.py (новый)

v1.4 — Расписание отключений (вода/свет)

Статус: Ожидает

Функционал:

  • Админ создаёт событие: /schedule_add вода 25.02 10:00 14:00
  • Сохранение в БД
  • Напоминание за 1 час до отключения
  • Команда /график — ближайшие события
  • Авто-удаление прошедших событий

Таблица БД:

CREATE TABLE schedules (
    schedule_id INTEGER PRIMARY KEY,
    type TEXT,  -- вода, свет, отопление
    title TEXT,
    start_time TIMESTAMP,
    end_time TIMESTAMP,
    created_by BIGINT,
    reminder_sent BOOLEAN DEFAULT FALSE
)

Файлы:

  • handlers/schedule.py (новый)
  • database/models.py (добавить Schedule)
  • services/scheduler.py (дополнить)

v1.5 — Доска объявлений (соседская)

Статус: Ожидает

Функционал:

  • Команда /ad продам диван 5000р
  • Публикация в канал-витрину
  • Категории: отдам, продам, куплю, потеряно, найду
  • Авто-удаление через 7 дней
  • Команда /ads — список активных
  • Модерация админом (опционально)

Таблица БД:

CREATE TABLE ads (
    ad_id INTEGER PRIMARY KEY,
    user_id BIGINT,
    category TEXT,  -- sell, give, buy, lost, found
    title TEXT,
    description TEXT,
    price INTEGER,
    phone TEXT,
    created_at TIMESTAMP,
    expires_at TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE
)

Файлы:

  • handlers/ads.py (новый)
  • database/models.py (добавить Ad)
  • services/scheduler.py (дополнить проверку)

v1.6 — Напоминания о платежах ЖКХ

Статус: Ожидает

Функционал:

  • Админ задаёт дату платежа (до 10 числа)
  • Бот рассылает напоминание 5-го и 9-го числа
  • Ссылка на квитанцию/онлайн-оплату
  • Статистика: кто получил, кто открыл

Файлы:

  • handlers/payments.py (новый)
  • services/scheduler.py (дополнить)
  • data/payment_links.json (новый)

v1.7 — Детект мультиаккаунтов

Статус: Ожидает

Функционал:

  • Анализ паттернов активности
  • Одинаковое время активности
  • Стиль письма (NLP анализ)
  • Проверка по device ID (если доступно)
  • Уведомление: "В квартире 45 — 3 аккаунта"
  • Команда /multicheck <apt> — проверка квартиры

Файлы:

  • services/multicount_detector.py (новый)
  • handlers/admin.py (дополнить)

v1.8 — Облако тегов тем чата

Статус: Ожидает

Функционал:

  • AI-классификация сообщений по темам
  • Топ тем за неделю/месяц
  • Визуализация: "лифты: 45%, парковка: 23%"
  • Команда /topics — облако тегов

Файлы:

  • services/topics_analyzer.py (новый)
  • handlers/analytics.py (дополнить)

v1.9 — Рейтинг токсичности

Статус: Ожидает

Функционал:

  • Анализ лексики (оскорбления, агрессия)
  • Жалобы от жильцов (/complaint @user)
  • Топ-10 самых токсичных
  • Уведомление админу при превышении порога

Файлы:

  • services/toxicity_detector.py (новый)
  • handlers/security.py (дополнить)

v1.10 — История версий профиля

Статус: Ожидает

Функционал:

  • Лог изменений: "20.02: user123 → @patriot"
  • Сохранение старых username
  • Команда /history <user_id> — история изменений

Таблица БД:

CREATE TABLE profile_history (
    id INTEGER PRIMARY KEY,
    user_id BIGINT,
    field TEXT,  -- username, first_name, last_name
    old_value TEXT,
    new_value TEXT,
    changed_at TIMESTAMP
)

Файлы:

  • database/models.py (добавить ProfileHistory)
  • handlers/chat_monitor.py (дополнить)

v1.11 — Веб-интерфейс админа

Статус: Ожидает

Функционал:

  • Flask/FastAPI сервер
  • Дашборд с графиками
  • Управление пользователями
  • Экспорт в Excel/CSV
  • Логи сообщений с поиском

Файлы:

  • web/app.py (новый)
  • web/templates/ (новые)
  • web/routes.py (новый)

v1.12 — Достижения жильцов

Статус: Ожидает

Функционал:

  • "Активист" — 100 сообщений
  • "Помощник" — помог 5 соседям
  • "Бдительный" — сообщил о проблеме
  • Команда /achievements — список достижений
  • Отображение в профиле

Таблица БД:

CREATE TABLE achievements (
    id INTEGER PRIMARY KEY,
    user_id BIGINT,
    achievement_type TEXT,
    earned_at TIMESTAMP
)

Файлы:

  • handlers/achievements.py (новый)
  • database/models.py (добавить Achievement)

v1.13 — Система благодарностей

Статус: Ожидает

Функционал:

  • Команда /thank @user за помощь
  • +10 рейтинга получателю
  • Лог благодарностей
  • Команда /thanks <user_id> — история

Файлы:

  • handlers/thanks.py (новый)
  • database/models.py (добавить Thank)

v1.14 — Календарь событий дома

Статус: Ожидает

Функционал:

  • Собрания, праздники, субботники
  • Команда /event_add "Субботник" 28.02 10:00
  • Напоминание за день
  • Список участников
  • Команда /events — ближайшие события

Таблица БД:

CREATE TABLE events (
    event_id INTEGER PRIMARY KEY,
    title TEXT,
    description TEXT,
    event_time TIMESTAMP,
    location TEXT,
    created_by BIGINT,
    attendees JSON  -- [user_ids]
)

Файлы:

  • handlers/events.py (новый)
  • database/models.py (добавить Event)

🔮 v2.0 — AI-Юрист (NotebookLM)

Статус: 🔮 Будущее (после всех v1.x)

Функционал:

  • Интеграция с Google NotebookLM API
  • База знаний: ЖК РФ, ГК РФ, договор управления
  • Генерация шаблонов жалоб
  • Консультации 24/7

📊 Прогресс

v1.0  ✅✅✅✅✅✅✅✅✅✅ 100% (зафиксировано)
v1.1  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.2  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.3  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.4  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.5  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.6  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.7  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.8  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.9  ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.10 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.11 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.12 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.13 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v1.14 ✅✅✅✅✅✅✅✅✅✅ 100% (завершено)
v2.0  🔮 Будущее

Всего функций: 15 Завершено: 15 (v1.0, v1.1-v1.14) В работе: 0 Ожидает: 0

🎉 ВСЕ ФУНКЦИИ v1.x РЕАЛИЗОВАНЫ! 🎉


Документ обновляется после каждой версии


🤖 v4.3 — AI Voice & Media (Whisper AI) — ЗАВЕРШЕНО (22.04.2026)

Статус: Завершено

Функционал:

  • Интеграция модели Faster-Whisper (small) для CPU
  • Авто-расшифровка голосовых сообщений (Voice)
  • Авто-расшифровка видео-сообщений (Video Notes / Кружочки)
  • Исправлена проблема с системными путями ffmpeg/ffprobe в systemd
  • Логирование расшифровок в базу данных voice_recognition_logs

Планы на будущее:

  • Расшифровка для жильцов: Разрешить верифицированным пользователям использовать расшифровку (с квотой, например, 3 сообщения в день).
  • 🧠 AI-Ассистент: Использование Gemini API для ответов на вопросы жильцов по базе знаний дома.