/VKINDER

Primary LanguagePython

Дипломная работа


!NotaBene!

Для установки библиотек используйте requirements.txt.

После клонирования репозитория в PostgreSQL необходимо создать пользователя vkinder c паролем 12345. После этого необходимо создать базу данных vkinder c владельцем vkinder.

CREATE USER vkinder WITH PASSWORD '12345';

CREATE DATABASE vkinder WITH OWNER vkinder;

После этого необходимо залить дамп из папки "../VKINDER/DB/init_db_dump/vkinder.sql" в созданную базу. Если такого файла в репозитории нет, то его можно скачать по ссылке, указанной ниже.

Также для создания заготовки базы можно воспользоваться исходными файлами, которые выложены на GoogleDrive. Для этого их нужно скачать в папку "../VKINDER/DB/Fixtures" и запустить выполнение файла "../VKINDER/DB/database.py".

Для работы программы необходимо:

  1. в файле "../VKINDER/VK_SCOPE/vk_scope.py" указать либо токен пользователя Вконтакте, либо Ваш логин и пароль (стр.14-26);
  2. в файле "../VKINDER/VK_SCOPE/bot.py" указать токен сообщества (группы) Вконтакте (стр.19).

В результате авторизации посредством vk_api через Ваш логин и пароль для Вконтакте у вас создастся файл vk_config.v2.json, который рекомендуется сразу занести в .gitignore.

Для запуска программы используйте файл runner.py


VKinder

Все слышали про известное приложение для знакомств - Tinder. Приложение предоставляет простой интерфейс для выбора понравившегося человека. Сейчас в Google Play более 100 миллионов установок.

Используя данные из VK нужно сделать бота как Tinder. Искать людей, подходящих под условия, на основании информации о пользователе из VK:

  • диапазон возраста
  • пол
  • город
  • семейное положение

У тех людей, которые подошли по требованиям пользователю, получать топ-3 популярных фотографии с аватара. Популярность определяется по количеству лайков.

Результаты сохраняются в базу данных, состоящая из трех таблиц:

  • User - вся информация по пользователю
    • vk_id
    • Имя
    • Фамилия
    • Возраст
    • Диапазон возраста для поиска
    • Пол
    • Город
  • DatingUser - Найденные пары для пользователя:
    • vk id
    • Имя
    • Фамилия
    • Возраст
    • foreign_key User, того кто ищет
  • Photos - Фотографии найденных пар:
    • ссылка на фотографию
    • количество лайков
    • foreign_key DatingUser, кому принадлежат фотографии

Примерная схема.
Примерная схема. Таблицы и столбцы могут быть изменены.

Бот должен предоставлять текстовый интерфейс для работы с пользователем:

  • уточняет предпочтения (если надо) и начинается подбор;
  • если кто-то понравился - отмечает и человек заносится в БД;
  • если нет - пропускает;
  • вывод всех понравившихся пользователей;
  • удалить из списка понравившихся пар человека.

Входные данные

Страница в вк и его группа.

Выходные данные

Группа с рабочим ботом.

Требование к сервису:

  1. Код программы удовлетворяет PEP8.
  2. Получать токен от пользователя с нужными правами.
  3. Программа декомпозирована на функции/классы/модули/пакеты.
  4. База данных PostgreSQL
  5. Люди не должны повторяться при повторном поиске.
  6. Реализовать тесты на базовую функциональность.
  7. Не запрещается использовать внешние библиотеки для vk (при использовании - оформить requirements.txt).

Дополнительные требования (не обязательны для получения диплома):

  1. UI интерфейс для работы с ботом.
  2. Добавлять человека в черный список чтобы он больше не попадался при поиске, используя БД.
  3. Посмотреть черный список.