Skip to content
 
 

Repository files navigation

VK Dating Bot

Интеграционный бот для ВКонтакте, который помогает находить людей для знакомств, просматривать анкеты, добавлять их в избранное или чёрный список и хранить данные в PostgreSQL.

Проект построен как учебно‑практический пример работы с:

  • VK API (бот + пользовательский токен)
  • PostgreSQL
  • Python
  • SQL (связанные таблицы, foreign keys)

📌 Возможности

  • Регистрация пользователя при первом сообщении
  • Просмотр анкет пользователей VK
  • Показ топ‑3 фотографий по количеству лайков
  • Добавление анкет:
    • ⭐ в избранное
    • 🚫 в чёрный список
  • Просмотр списка избранных
  • Исключение уже просмотренных и оценённых анкет
  • Хранение данных в БД

🗂 Структура проекта

project/
│
├── main.py                # Точка входа, обработка сообщений
├── vk_bot_modules.py      # Модуль с основными функциями бота
├── vk_api_func.py         # Модуль для работы с VK API
├── db_modules.py          # Вся бизнес‑логика работы с БД
├── db_connection.py       # Подключение к PostgreSQL
├── scheme.png             # Схема базы данных
├── README.md              # Документация проекта
├── requirements.txt       # Зависимости проекта
├── .env                   # Переменные окружения (не хранится в репозитории)
└── .venv/                 # Виртуальное окружение

🧠 Архитектура

Основные сущности

  • users — пользователи бота
  • vk_profiles — анкеты VK
  • vk_photos — фотографии анкет
  • like_dislike — связи пользователь ↔ анкета (like / dislike)

Схема БД представлена в файле scheme.png.


🛠 Используемые технологии

  • Python 3.10+
  • vk-api
  • psycopg2
  • PostgreSQL
  • python-dotenv

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

1. Клонирование проекта

git clone <repo_url>
cd project

2. Создание виртуального окружения

python -m venv .venv
source .venv/bin/activate  # Linux / macOS
.venv\Scripts\activate     # Windows

3. Установка зависимостей

pip install -r requirements.txt

🔐 Настройка .env

Создайте файл .env в корне проекта:

# VK
TOKEN_BOT= ваш пользовательский токен (VK API)
TOKEN_APP= ваш токен сообщества (бота)
VK_ID= ваш ID пользователя VK

# DATABASE
DB_NAME=vk_bot
DB_USER=postgres
DB_PASSWORD=password
DB_HOST=localhost
DB_PORT=5432

⚠️ Важно: .env не должен попадать в репозиторий.


🗄 Инициализация базы данных

При первом запуске:

  • автоматически создаются таблицы
  • добавляется пользователь
  • сохраняются его данные и фотографии

Ручной SQL запуск не требуется.


▶️ Запуск бота

python main.py

В консоли:

Запуск интеграционного бота...
Бот запущен и ожидает сообщений...

💬 Команды бота

Команда Описание
Привет / Начать Стартовое сообщение
Следующий Показ следующей анкеты
В избранное Добавить анкету в избранное
В черный список Добавить в чёрный список
Список избранных Показ избранных анкет

Также доступны кнопки VK.


🔄 Логика подбора анкет

  • исключаются:
    • текущий пользователь
    • анкеты из like / dislike
  • анкеты показываются по возрастанию vk_profiles.id
  • один кандидат за раз

👥 Авторы проекта

Проект выполнен в команде в учебных целях.

  1. @jonyxt
    — Разработка взаимодействия с ВКонтакте (VK API) для получения информации о пользователях и их фотографий
    — Реализация логики работы бота
    — Написание и оформление документации

  2. @power-of-mind
    — Проектирование структуры базы данных
    — Реализация БД с использованием PostgreSQL
    — Подготовка SQL‑скриптов для создания таблиц
    — Тестирование

  3. @alllianka
    — Создание и сопровождение общего репозитория на GitHub
    — Интеграция логики бота и базы данных


About

Командный проект «VKinder»

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages