Цель командного проекта - разработать программу-бота для взаимодействия с базами данных социальной сети. Бот будет предлагать различные варианты людей для знакомств в социальной сети Вконтакте в виде диалога с пользователем.
Вам предстоит:
- разработать программу-бота на Python
- спроектировать и реализовать базу данных (БД) для программы
- настроить взаимодействие бота с ВК
- написать документацию по использованию программы
В результате выполнения этого задания вы:
- получите практический опыт работы в команде
- прокачаете навыки коммуникации и умение выполнять задачи в срок
- закрепите навыки работы с GitHub и программирования на языке Python
- разработаете с нуля полноценный программный продукт, который можно будет добавить в портфолио бэкенд-разработчика.
- Изучили «Инструкцию по выполнению командного проекта» и «Правила работы в команде» в личном кабинете.
- Знаете, кто с вами в команде.
- Познакомились со своей командой и определились, каким способом будете общаться (переписка в любом мессенджере, видеозвонки).
- Договорились, кто будет размещать общий репозиторий проекта и отправлять его на проверку.
- У вас должен быть установлен Python 3.x и любая IDE. Мы рекомендуем работать с Pycharm.
- Настроен компьютер для работы с БД PostgreSQL.
- Установлен git и создан аккаунт на Github.
- Должна быть создана группа во Вконтакте, от имени которой будет общаться разрабатываемый бот. Инструкцию можно будет посмотреть здесь.
Если все этапы чеклиста пройдены, то можете стартовать работу над проектом. Успехов в работе!
Необходимо разработать программу-бота, которая должна выполнять следующие действия:
- Используя информацию (возраст, пол, город) о пользователе, который общается с ботом в ВК, сделать поиск других людей (других пользователей ВК) для знакомств.
- У тех людей, которые подошли под критерии поиска, получить три самые популярные фотографии в профиле. Популярность определяется по количеству лайков.
- Выводить в чат с ботом информацию о пользователе в формате:
Имя Фамилия
ссылка на профиль
три фотографии в виде attachment(https://dev.vk.com/method/messages.send)
- Должна быть возможность перейти к следующему человеку с помощью команды или кнопки.
- Сохранить пользователя в список избранных.
- Вывести список избранных людей.
Обратите внимание: токен для ВК можно получить выполнив инструкцию.
Работа над проектом рассчитана на 10 дней для команды из 2-3 человек. Для планирования своего времени рекомендуется опираться на роадмап. Придерживайтесь следующего деления проекта на этапы и задачи участников:
1. Вариант для команды из 2 участников
- Участник А. Создайте общий репозиторий на github. Для предоставления доступа другим участникам необходимо зайти в
Settings
репозитория проекта, найти разделCollaborators
, кликнуть по кнопкеAdd people
, добавить ник напарника и выбрать рольAdmin
. - Участник Б: Спроектируйте БД. В БД должно быть создано минимум 3 таблицы.
- Участник А: Разработайте взаимодействие с ВК для получения информации о пользователях и их фотографий. Можно использовать готовые библиотеки.
- Участник Б: Реализуйте БД для программы с помощью PostgreDB. Приложите скрипты для создания таблиц, чтобы преподаватель смог создать у себя БД. Можно использовать ORM.
- Участник А:
- Разработайте взаимодействие с ботом. Можно воспользоваться этим шаблоном. Будет плюсом, если вы добавите кнопки для более удобного взаимодействия с пользователем.
- Подготовьте проект к сдаче курсовой работы. Исправьте ошибки.
- Участник Б:
- Реализуйте интеграцию бота и БД. Напишите документацию.
- Подготовьте проект к сдаче курсовой работы. Исправьте ошибки.
2. Вариант для команды из 3 участников
- Участник А. Создайте общий репозиторий на github. Для предоставления доступа другим участникам необходимо зайти в
Settings
репозитория проекта, найти разделCollaborators
, кликнуть по кнопкеAdd people
, добавить ник напарника и выбрать рольAdmin
. - Участник Б: Спроектируйте БД. В БД должно быть создано минимум 3 таблицы.
- Участник B: Разрабойте взаимодействие с ВК для получения информации о пользователях и их фотографий. Можно использовать готовые библиотеки.
- Участник А: Разрабойте взаимодействие с ботом. Можно воспользоваться этим шаблоном. Будет плюсом, если вы добавите кнопки для более удобного взаимодействия с пользователем.
- Участник Б: Реализуйте БД для программы с помощью PostgreDB. Приложите скрипты для создания таблиц, чтобы преподаватель смог создать у себя БД. Можно использовать ORM.
- Участник B: Реализуйте интеграцию бота и БД.
- Участник A: Подготовьте проект к сдаче курсовой работы. Исправьте ошибки.
- Участник Б: Подготовьте проект к сдаче курсовой работы. Исправьте ошибок.
- Участник В: Напишите документацию.
- Получать токен от пользователя с нужными правами.
- Добавлять человека в чёрный список, чтобы он больше не попадался при поиске, используя БД.
- Создать кнопки в чате для взаимодействия с ботом.
- Добавить возможность ставить/убирать лайк выбранной фотографии.
- К списку фотографий из аватарок добавлять список фотографий, где отмечен пользователь.
- В ВК максимальная выдача при поиске - 1000 человек. Подумать, как это ограничение можно обойти.
- Можно усложнить поиск, добавив поиск по интересам. Разбор похожих интересов (группы, книги, музыка, интересы) нужно будет провести с помощью анализа текста.
- У каждого критерия поиска должны быть свои веса, то есть совпадение по возрасту должно быть важнее общих групп, интересы по музыке - важнее книг, наличие общих друзей - важнее возраста и т.д.
- разработан бот и все части кода объединены в главной ветке (master/main)
- один из участников команды добавил ссылку на публичный репозиторий в личном кабинете в поле «Ссылка на решение» и в поле «Отправить на проверку эксперту» проставил галочку
Зачёт по разработанному проекту может быть получен, если созданный программный продукт соответствует следующим критериям:
- Отсутствуют ошибки (traceback) во время выполнения программы.
- Результат программы записывается в БД. Количество таблиц должно быть не меньше трех. Приложена схема БД.
- Программа добавляет человека в избранный список, используя БД.
- При повторном поиске в списке люди не повторяются.
- Программа декомпозирована на функции/классы/модули/пакеты.
- Написана документация по использованию программы.
- Код программы удовлетворяет PEP8. Перед отправкой решения на проверку проверьте код с помощью линтеров.
Зачёт ставится всем студентам-участникам команды при выполнении всех требований командного проекта