Интеграционный бот для ВКонтакте, который помогает находить людей для знакомств, просматривать анкеты, добавлять их в избранное или чёрный список и хранить данные в 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
git clone <repo_url>
cd projectpython -m venv .venv
source .venv/bin/activate # Linux / macOS
.venv\Scripts\activate # Windowspip install -r requirements.txtСоздайте файл .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 - один кандидат за раз
Проект выполнен в команде в учебных целях.
-
@jonyxt
— Разработка взаимодействия с ВКонтакте (VK API) для получения информации о пользователях и их фотографий
— Реализация логики работы бота
— Написание и оформление документации -
@power-of-mind
— Проектирование структуры базы данных
— Реализация БД с использованием PostgreSQL
— Подготовка SQL‑скриптов для создания таблиц
— Тестирование -
@alllianka
— Создание и сопровождение общего репозитория на GitHub
— Интеграция логики бота и базы данных