Хацкатхон ДевДаис'19 (1. део): дневник са препорукама, генератор пешачких рута и течна демократија

Недавно смо рекао је о корпоративном мастер програму ЈетБраинс и ИТМО Универзитета „Развој софтвера / Софтверско инжењерство“. Позивамо све заинтересоване на дан отворених врата у понедељак, 29. априла. Рећи ћемо вам о предностима нашег мастер програма, које бонусе нудимо студентима и шта тражимо заузврат. Поред тога, свакако ћемо одговорити на питања наших гостију.

Хацкатхон ДевДаис'19 (1. део): дневник са препорукама, генератор пешачких рута и течна демократијаДан отворених врата одржаће се у канцеларији ЈетБраинс у пословном центру Тимес, где студирају наши студенти мастер студија. Почиње у 17:00. На сајту можете сазнати све детаље и пријавити се за догађај мсе.итмо.ру. Дођите и нећете се покајати!

Једна од главних компоненти програма је пракса. Студенти имају доста тога: недељне домаће задатке, семестралне пројекте и хакатоне. Захваљујући потпуном урањању у савремене развојне методологије и технологије током студија, дипломци се брзо интегришу у радне процесе великих ИТ компанија.

У овом посту желимо да причамо детаљније о ДевДаис хакатонима, који се одржавају сваких шест месеци. Правила су једноставна: окупљају се тимови од 3-4 особе и три дана ученици остварују сопствене идеје. Шта би могло бити од овога? Прочитајте први део прича о хакатон пројектима овог семестра од самих студената :)

Дневник са препорукама за филм

Хацкатхон ДевДаис'19 (1. део): дневник са препорукама, генератор пешачких рута и течна демократија

Идејни аутор
Иван Илчук
Командна структура
Иван Илчук – рашчлањивање радње филма, сервер
Владислав Кораблинов – развој модела за поређење близине дневничког записа и радње филма
Дмитриј Валчук ​​– УИ
Никита Винокуров – УИ, дизајн

Циљ нашег пројекта је био да напишемо десктоп апликацију – дневник који би на основу записа у њему препоручивао филмове кориснику.

Ова идеја ми је пала на памет када сам био на путу за универзитет и размишљао о својим проблемима. „С којим год проблемом се човек суочи, неки класични писац је већ писао о томе“, помислио сам. „А пошто га је неко написао, то значи да га је неко већ снимио. Тако се природно појавила жеља да се погледа филм о особи са истим менталним мукама.

Очигледно, постоји велики избор засебних дневника и засебних услуга за препоруке (али обично се препоруке заснивају на ономе што се особи претходно допало). У принципу, овај пројекат има нешто заједничко са тражењем филма по кључним тачкама, али ипак, пре свега, наша апликација пружа функционалност дневника.

Хацкатхон ДевДаис'19 (1. део): дневник са препорукама, генератор пешачких рута и течна демократијаКако смо ово спровели? Када притиснете магично дугме, дневник шаље запис на сервер, где се филм бира на основу описа преузетог са Википедије. Наш фронтенд је направљен у Елецтрон-у (ми га користимо, а не веб локацију, јер смо првобитно одлучили да корисничке податке чувамо не на серверу, већ локално на рачунару), а сервер и сам систем препорука су направљени у Питхон-у: ТФ-ови су били добијени из описа -ИДФ вектора који су упоређени због близине вектору уноса у дневник.

Један члан тима је радио само на моделу, други је у потпуности радио на фронт-енду (у почетку заједно са трећим чланом, који је касније прешао на тестирање). Бавио сам се рашчлањивањем филмских заплета са Википедије и сервера.

Корак по корак приближавали смо се резултату, превазилазећи низ проблема, почевши од чињенице да је модел у почетку захтевао много РАМ-а, завршавајући тешкоћом преноса података на сервер.

Сада, да бисте пронашли филм за вече, не треба вам много труда: резултат нашег тродневног рада је десктоп апликација и сервер, којем корисник приступа преко хттпс, а као одговор добија избор од 5 филмова са кратак опис и постер.

Моји утисци о пројекту су веома позитивни: рад је био задивљујући од раног јутра до касно у ноћ, а резултујућа апликација повремено даје изузетно смешне резултате у стилу „Бесане ноћи“ за дневнички запис о домаћем задатку на универзитету или филм о првом дану школе за причу о првом дану на одељењу.

Релевантне везе, инсталатери итд овде.

Генератор руте

Хацкатхон ДевДаис'19 (1. део): дневник са препорукама, генератор пешачких рута и течна демократијаИдејни аутор
Артемиева Ирина
Командна структура
Артемјева Ирина – вођа тима, главна петља
Гордеева Људмила – музика
Платонов Владислав – руте

Заиста волим да шетам градом: гледам зграде, људе, размишљам о историји. Али, чак и када променим место становања, пре или касније се сусрећем са проблемом избора руте: завршио сам све што сам могао да смислим. Овако је настала идеја да се аутоматизује генерисање рута: ви назначите почетну тачку и дужину руте, а програм вам даје опцију. Шетње могу бити дуге, па се чини да логичан развој идеје додаје могућност да се назначе међутачке за „станицу“, где бисте могли да угризнете и одморите се. Друга грана развоја била је музика. Ходање уз музику је увек забавније, па би било сјајно додати могућност избора листе песама на основу генерисане руте.

Међу постојећим апликацијама није било могуће пронаћи таква решења. Најближи аналози су било који планери рута: Гоогле Мапс, 2ГИС, итд.

Најпогодније је имати такву апликацију на телефону, па је коришћење Телеграма била добра опција. Омогућава вам да приказујете мапе и пуштате музику, а све ово можете контролисати писањем бота. Главни рад са мапама обављен је помоћу Гоогле Мап АПИ-ја. Питхон олакшава комбиновање обе технологије.

У тиму је било троје људи, па је задатак подељен на два подзадатка који се не преклапају (рад са мапама и рад са музиком) како би момци могли да раде самостално, а ја сам преузео на себе да комбинујем резултате.

Хацкатхон ДевДаис'19 (1. део): дневник са препорукама, генератор пешачких рута и течна демократијаНико од нас никада није радио са Гоогле Мап АПИ-јем или писаним Телеграм ботовима, тако да је главни проблем била количина времена додељеног за имплементацију пројекта: разумевање нечега увек траје дуже него радити нешто што добро знате. Такође је било тешко изабрати АПИ за Телеграм бот: због блокирања, не раде сви и морао сам да се мучим да све подесим.

Посебно је вредно поменути како је решен проблем генерисања рута. Лако је направити руту између две локације, али шта можете да понудите кориснику ако је позната само дужина руте? Нека корисник жели да препешачи 10 километара. Тачка се бира у произвољном правцу, до које је растојање у правој линији 10 километара, након чега се до ове тачке гради рута дуж стварних путева. Највероватније неће бити право, па ћемо га скратити на наведених 10 километара. Постоји много опција за такве руте - добили смо прави генератор рута!

У почетку сам желео да сегментирам мапу на области које одговарају зеленим површинама: насипи, дворишта, улице, како бих добио што пријатнију руту за шетњу, а такође и генерисао музику у складу са тим подручјима. Али испоставило се да је ово помоћу АПИ-ја за Гоогле мапе тешко (нисмо имали времена да решимо овај проблем). Међутим, било је могуће реализовати изградњу руте кроз одређене типове локација (продавница, парк, библиотека): ако је траса обишла сва наведена места, а жељена удаљеност још није пређена, она се завршава до растојање које је одредио корисник у случајном правцу. АПИ за Гоогле мапе вам такође омогућава да израчунате процењено време путовања, што вам помаже да одаберете листу за репродукцију тачно за целу шетњу.

Као резултат тога, успео да направи генерацију руте по почетној тачки, удаљености и међутачкама; све је било припремљено да се музика класификује према деловима руте, али због недостатка времена одлучено је да се остави опција избора плејлисте једноставно као додатна грана корисничког интерфејса. Тако је корисник могао самостално да бира музику коју ће слушати.

Главни проблем у раду са музиком био је непознавање одакле да преузме мп3 датотеке без потребе да корисник има налог на било којој услузи. Одлучено је да се захтева музика од корисника (режим УсерМусиц). Ово ствара нови проблем: немају сви могућност преузимања нумера. Једно решење је да направите спремиште са музиком од корисника (режим БотМусиц) - из њега можете генерисати музику без обзира на услуге.

Иако не савршено, испунили смо задатак: добили смо апликацију коју бих желео да користим. Уопштено говорећи, ово је веома кул: пре три дана сте имали само идеју и ниједну идеју како да је спроведете, али сада постоји решење које функционише. Ово су ми била веома важна три дана. Више се не плашим да смислим нешто што немам довољно знања да спроведем, било је невероватно занимљиво бити вођа тима, а упознао сам дивне момке који су се придружили мом тиму. боље!

Ликуид Демоцраци

Хацкатхон ДевДаис'19 (1. део): дневник са препорукама, генератор пешачких рута и течна демократија

Идејни аутор
Станислав Сицхев
Командна структура
Станислав Сичев – вођа тима, база података
Николај Изјумов – интерфејс бота
Антон Рјабушев – бацкенд

У оквиру различитих група, често постоји потреба за доношењем одлуке или гласањем. Обично у таквим случајевима прибегавају директна демократија, међутим, када се група повећа, могу настати проблеми. На пример, особа у групи можда неће желети да често одговара на питања или да одговара на питања о одређеним темама. У великим групама, да би избегли проблеме којима прибегавају репрезентативна демократија, када се између свих људи бира посебна група „посланика“, који ослобађају остале од терета избора. Али, прилично је тешко постати такав посланик, а особа која то постане неће нужно бити поштена и угледна, како се чинило бирачима.

Да би решио проблеме оба система, Брајан Форд је предложио концепт течна демократија. У таквом систему, свако је слободан да изабере улогу редовног корисника или делегата, једноставно изражавајући своју жељу. Свако може самостално гласати или дати глас делегату о једном или више питања. Делегат такође може дати свој глас. Штавише, ако делегат више не одговара бирачу, гласање се може повући у било ком тренутку.

Примери употребе ликвидне демократије налазе се у политици, а ми смо желели да имплементирамо сличну идеју за свакодневну употребу у свим групама људи. На следећем ДевДаис хакатону одлучили смо да напишемо Телеграм бота за гласање по принципима ликвидне демократије. У исто време, желео сам да избегнем уобичајени проблем са таквим ботовима - зачепљење општег ћаскања порукама од бота. Решење је да унесете што више функционалности у лични разговор.

Хацкатхон ДевДаис'19 (1. део): дневник са препорукама, генератор пешачких рута и течна демократијаЗа креирање овог бота користили смо АПИ из Телеграма. За чување историје гласања и делегација изабрана је ПостгреСКЛ база података. За комуникацију са ботом инсталиран је Фласк сервер. Изабрали смо ове технологије јер... већ смо имали искуства у интеракцији са њима током наших мастер студија. Рад на три компоненте пројекта — бази података, серверу и боту — успешно је распоређен међу члановима тима.

Наравно, три дана су кратко време, тако да смо током хакатона идеју имплементирали до нивоа прототипа. Као резултат тога, направили смо бота који у општи ћаскање пише само информације о отварању гласања и његовим анонимним резултатима. Могућност гласања и креирања анкете се спроводи кроз личну преписку са ботом. Да бисте гласали, унесите команду која приказује листу питања која захтевају директну пажњу. У личној преписци можете видети списак делегата и њихове претходне гласове, као и дати им свој глас за неку од тема.

Видео са примером рада.

Било је занимљиво радити на пројекту, остали смо на факултету до поноћи. Мислимо да је ово одличан начин да се одморимо од учења, иако је веома исцрпљујуће. Било је то пријатно искуство радити у збијеном тиму.

ПС. Већ је упис на мастер програме за наредну академску годину је отворен... Придружи нам се!

Извор: ввв.хабр.цом

Додај коментар