Продолжили разработку продукта: объединили автономные части продукта в единое целое с целью создания прототипа.

Наша задача не является тривиальной и состоит из большого числа сложных компонентов. Поскольку все внимание команды было сконцентрировано на разработке и решении поставленных задач, время для написания отчета было решено выделить в выходные.

Целью пятого дня работы над проектом является создание работающего прототипа, реализующего основную функциональность, необходимую заказчику, а также его тестирование и отладка. 

Команда alex43jk, Naga, Andrew

На пятый день практики нам нужно было создать прототип нашего приложения. Мы сделали прототип довольно быстро, не факт, что качественно, но главное, что заказчику понравилось.

Вот ссылка на наш прототип.

https://marvelapp.com/i6e20jg/screen/29931617

Команда alex43jk, Naga, Andrew

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

В итоге у нас получилось добавить карту в приложение, по клику в любое место на карте переходить на новый экран, где будут располагаться фотографии из социальных сетей этого места.

Протестировали алгоритм на всех слоях. Как оказалось, заказчик выдал лишь фрагмент тестовых данных, и результат 17-и слоев не сильно отличается от вчерашнего одного.

Заказчик подтвердил корректность результата, и пообещал скинуть больше тестовых данных.

Все оставшееся время занимались оптимизацией и приведением кода в приличное состояние, работы еще много. На данных заказчика, а именно: 512x512x17 вокселей, время работы алгоритма для заполнения изображения 512x512(рисунок выше) - ~55ms. Для изображений размером 16000x16000 - ~7.2 секунды.

Но большую часть времени это выглядит так:

И т.к. последние отчеты выходят слишком небольшие, дальше будут будет рассказ про оптимизации:

Отчёт за 5 день проектной практики.

Пятый день разработки бота был посвящён созданию прототипа или "разборке костылей", чтобы предоставить заказчику рабочий прототип хоть и "сыроватый". 

В процессе исправления наших ошибок, нам удалось решить пару проблемных моментов. Например, у нас дошли руки создать динамическую "keyboard" для управления нашим рекламным ботом. Однако появилась другая неприятная мини-проблема, теперь кнопки этой встроенной клавиатуры в боте появляются вертикально из-за того, что данные на вход подаются в виде массива. Будем думать как можно будет исправить это проблему и позволит ли это сделать Telegram API.

В итоге, внешне почти ничего не изменилось, а вот сам код был приведён в читабельный вид, стал более понятен и гибок. Чтобы вы примерно могли представить насколько мы привели в порядок код, просто скажем, что до сегодняшнего дня в нём было 277 строчек, а в конце дня их стало 192.

Код был протестирован, однако есть некоторые моменты, которые необходимо "отдебажить" и добавить возможность просмотра активных рекламных объявлений для других активных кампаний прежде чем пытаться передавать действующий прототип заказчику.

Добавление панели персонажа и исправление багов. Итог.

Исправление недоработок.

Заданием на сегодняшний день было полностью составить макет проекта и протестировать все, что мы имеем. К счастью, сделать это мне не составило труда. В ходе тестирования оказалось, что недоработок на сайте было достаточно. Были проблемы с переадресацией на страницу авторизации, дублированием аккаунтов, однако к вечеру все было исправлено. 

Панель персонажа.

Кроме того,не пришлось сделать страницу с отображением информации, список которой мне предоставил заказчик вчера вечером. Благодаря bootstrap это не заняло много времени.


Итог.

На данный момент у меня есть базовый сайт с незамысловатым дизайном, содержащий кнопки для ссылки на группу, форум и, конечно же, авторизацию/регистрацию пользователя. Теперь каждый пользователь сможет иметь свою собственную панель управления, высвечивающую всю необходимую для него информацию. Следовательно, было реализовано все, что требовалось заказчику, однако, теперь задача заключается в оптимизации и доведении сайта до ума.

Создание действующего прототипа, тестирование

Сегодня мы с нашей командой поработали над созданием нашего бота. Допилили функционал и начали тестировать программу, чтобы всё было максимально чётко. В нескольких функциях нашли мелкие оказии и оперативненько их исправили. Большую часть времени работы над проектом занимались тестированием программы, чтобы при работе с финальной версией не возникло всяких недоразумений. День прошёл весьма плодотворно, потрудились наславу.

Бот выходит на охоту

Сделали прототип. Умеет делать то, что хочет заказчик
Код не прибран. 

О том, как мы допилили оставшиеся функции

Итак, сегодняшней целью было получение прототипа нашего бота, выполняющего все функциональные требования заказчика. 

За те несколько дней, которые мы определяли границы проекта и собирали недостающие ресурсы, половина функций, а именно ответ на сообщение в ЛС и отправка случайного арта из паблика были уже реализованы. Дело осталось за малым: реализация репостов из заданного сообщества и добавление лайкнувшего определённый пост пользователя в друзья.

Для реализации последней функции на стене бота был закреплён специальный пост. С помощью метода из VK API likes.getList() мы получаем список лайкнувших его людей. Как и в случае с ответом на сообщения пользователя, здесь мы использовали бесконечный цикл. Сначала при выполнении цикла бот получает список лайков, представляющий из себя массив из id оставивших лайки пользователей. Далее он проходит по массиву и поочерёдно добавляет всех лайкнувших запись пользователей в друзья с помощью метода friends.add(). Ну и дабы бота не забанили, после отправки запроса на добавление кого-либо в друзья он ждёт 30 секунд, прежде чем отправить следующий запрос (в случае же, если человек, поставивший лайк, уже находится в друзьях бота, тот его пропускает).

В случае репостов, опять же, чтобы бота не забанили, происходит лишь репост последнего поста сообщества. Раз в 3600 секунд (ну или раз в час) бот проверяет последний пост в паблике и в том случае, если на нём не стоит лайк (а если нет лайка, то нет и репоста, для проверки используется тот же метод, что и в случае с добавлением в друзья), репостит его себе на стену.

Ну и как итог все функциональные требования заказчика выполнены:

  • Бот отвечает на сообщение пользователя в ЛС предложением подписаться на паблик и вывести список доступных команд
  • Бот умеет отправлять случайный арт из паблика

  • Бот умеет добавлять лайкнувшего пост на его стене пользователя в друзья

  • Бот умеет делать последний репост из паблика

Для того, чтобы бот мог работать в режиме 24/7, необходимо найти какой-нибудь дешёвый хостинг с поддержкой Python. Скорее всего, с данной задачей заказчик сможет справиться сам.

Ну а мы продолжим тестировать бота на выходных и уже в понедельник постараемся попытаться передать проект заказчику, и, может быть, сразу получить полную сумму за заказ.

Встреча с заказчиком. Разделение на обязанности. Составление ТЗ с заказчиком.

Беседа с заказчиком

На 11 утра мы договорились о диалоге в Skype с заказчиком. Накануне, исходя из собственного интереса, мы решили ответить на следующие вопросы : 

  1. "Как, по нашему мнению, должна происходить беседа с заказчиком?"
  2. "К чему мы должны стремиться во время этого диалога?"

Итак, вот какие у нас получились ответы:

Александра: я считаю, что беседа с заказчиком не должна проходить слишком долго по времени. Необходимо просто узнать все задания на определенный этап и выполнять их в указанный срок. Во время диалога с клиентом нужно учесть все его нюансы и пожелания, а также просто узнать как можно больше подробной информации о проекте.

Кирилл: уверен, что при беседе с заказчиком необходимо задавать правильные и уместные вопросы, но и также уметь грамотно на них ответить, чтобы он понял, что вы очень заинтересованы в выполнении задания. Также, я думаю, что во время переговоров Вам необходимо создать ощущение, что вы компетентны и способны к созданию проекта.

Владимир: я считаю, что встреча с заказчиком должна быть идеальной беседой. Для начала, Вам необходимо поприветствовать клиента. Затем просто выслушать его, что он вообще хочет, наводящими вопросами узнать некоторые детали. Также, в диалоге необходимо стараться подчеркнуть свою состоятельность и опытность в выполнении проектов. Тем самым, я вызову интерес у заказчика, а уже чуть позже и его доверие. Я считаю, что именно к этому нужно стремиться во время диалога.


Также, стоит отметить, что мы определились, кто из нас чем будет заниматься:

  • Александра - отвечает непосредственно за код на калькулятор сметы, также ею будут сделаны несколько картинок для нашего сайта.
  • Кирилл - при помощи конструктора "adobe muse" им будет выполнена верстка сайта.
  • Владимир - необходимо будет тестировать программы, также полностью обговорить с заказчиком ТЗ, сделать все подписи, каждый день составлять отчеты, и выкладывать их на сайт

И так, во время диалога с заказчиком нам рассказали, что в целом от нас требуется, и посоветовали в каком порядке, что лучше сделать. После чего мы и разбились на выполнение разных заданий. Также было примерно обговорено ТЗ, которое в ближайшее время будет доделано. Именно мы предложили по какому конструктору лучше делать сайт и полностью взяли на себя ответственность интерфейса. Нам также провели небольшие лекции по теории. Об этом подробнее будет в нашей презентации. Мы решили сохранить этот материал, потому что эта информация показалась нам весьма важной. На этом мы закончили разговор, и договорились о следующем звонке на 1 июля. Остальные вопросы по телефону.

После диалога мы выдохнули и также решили поделиться впечатлениями уже непосредственно после него. В голове вплывал только один простой вопрос :

  • "Как прошла встреча?"

Александра: В начале очень нервничала, чувствовала себя как в большом бизнесе и понимала, что мы взялись за серьезное дело. Но я рада, что у нас такой клиент, с которым очень просто найти общий язык. Нам все очень понятно разъяснили и мы все остались довольны встречей.

Кирилл: Я осознаю, что мне приятно иметь такие встречи. Мы старались произвести впечатление на клиента. И думаю, что у нас это получилось. Мы обладаем нужными знаниями, и уверен, что к нужному времени у нас все будет готово.

Владимир: Уверен, что заказчик остался нами доволен. Мы объяснили и показали ему наши сильные стороны. По его взгляду было видно, что он уже доволен нами. Теперь будем оправдывать его ожидания. С ним очень легко найти общий язык, и уже сейчас могу сказать, что мы с ним сработаемся.


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

Также, начал разрабатывать ТЗ. Уже были определены точные сроки сдачи проекта, общие сведения, которые касаются того, на каком языке будет программа, в чем суть сайта, зачем он нам нужен и др.

Объявления

Проектная практика для студентов Института фундаментального образования УрФУСобытие

Новости:

Открыта регистрация команд для участия в проектной практике (открыто до 27.06.2017)

Партнеры:

ИнФО УрФУ - Генеральный партнер в проведении проектной практики в июне-июле 2017 года

Роботология - Российское оборудование для программирования и конструирования роботов

Уральский клуб нового образования - общественная организация, которая разрабатывает и реализует социально-образовательные проекты

Архив событий:

Молодежный космический форум - 2017 (Четвертые Семихатовские чтения)Конкурс

Выбор темы работы для участия в IV Семихатовских чтенияхО Форуме-2017

Подписка на новости
Контакты

Адрес: г. Екатеринбург, ул. Мамина-Сибиряка 145, к. 1119 (на карте)

Тел.: +7 (343) 355-93-88

info@cosmoport.club