Hackathon DevDays'19 (pati 1): yon jounal pèsonèl ak rekòmandasyon, yon dèlko wout mache ak demokrasi likid

Dènyèman nou te di sou pwogram mèt antrepriz JetBrains ak ITMO University "Devlopman lojisyèl / Jeni lojisyèl". Nou envite tout moun ki enterese nan yon jounen ouvè lendi 29 avril. Nou pral di w sou avantaj ki genyen nan pwogram mèt nou an, ki bonis nou ofri elèv yo ak sa nou mande an retou. Anplis de sa, nou pral definitivman reponn kesyon envite nou yo.

Hackathon DevDays'19 (pati 1): yon jounal pèsonèl ak rekòmandasyon, yon dèlko wout mache ak demokrasi likidJounen ouvè a ap fèt nan biwo JetBrains nan Times Business Center, kote etidyan mèt nou yo etidye. Kòmanse a 17:00. Ou ka jwenn tout detay yo epi enskri pou evènman an sou sit entènèt la mse.itmo.ru. Vini non ou pap regrèt!

Youn nan eleman prensipal yo nan pwogram nan se pratik. Elèv yo gen anpil nan li: devwa chak semèn, pwojè semès ak hackathons. Mèsi a imèsyon konplè nan metodoloji devlopman modèn ak teknoloji pandan etid yo, gradye byen vit entegre nan pwosesis travay yo nan gwo konpayi IT.

Nan pòs sa a nou vle pale an plis detay sou hackathon DevDays, ki pran plas chak sis mwa. Règ yo senp: ekip 3-4 moun rasanble epi pandan twa jou elèv yo pote pwòp lide yo bay lavi. Ki sa ki ka rive nan sa a? Li premye pati nan istwa sou pwojè Hackathon semès sa a nan men elèv yo tèt yo :)

Jounal ak rekòmandasyon fim

Hackathon DevDays'19 (pati 1): yon jounal pèsonèl ak rekòmandasyon, yon dèlko wout mache ak demokrasi likid

Otè lide a
Ivan Ilchuk
Alinye
Ivan Ilchuk – analiz konplo fim, sèvè
Vladislav Korablinov - devlopman nan modèl pou konpare pwoksimite nan yon antre nan jounal pèsonèl ak konplo a nan yon fim
Dmitry Valchuk - UI
Nikita Vinokurov - UI, konsepsyon

Objektif pwojè nou an se te ekri yon aplikasyon Desktop - yon jounal pèsonèl ki ta rekòmande fim nan itilizatè a ki baze sou antre yo nan li.

Lide sa a te vin jwenn mwen lè mwen te sou wout mwen nan inivèsite ak panse sou pwoblèm mwen yo. "Kèlkeswa pwoblèm yon moun fè fas a, gen kèk ekriven klasik deja ekri sou li," mwen te panse. "Epi depi yon moun te ekri li, sa vle di yon moun te deja filme l." Se konsa, dezi a gade yon fim sou yon moun ki gen menm touman mantal parèt natirèlman.

Li evidan, gen yon gran varyete jounal pèsonèl ak sèvis rekòmandasyon separe (men anjeneral rekòmandasyon yo baze sou sa moun nan te renmen anvan). Nan prensip, pwojè sa a gen yon bagay an komen ak rechèch pou yon fim pa pwen kle, men yo toujou, anvan tout bagay, aplikasyon nou an bay fonksyonalite a nan yon jounal pèsonèl.

Hackathon DevDays'19 (pati 1): yon jounal pèsonèl ak rekòmandasyon, yon dèlko wout mache ak demokrasi likidKi jan nou te aplike sa a? Lè ou peze bouton majik la, jounal pèsonèl la voye yon antre nan sèvè a, kote fim nan chwazi baze sou deskripsyon an te pran nan Wikipedya. Frontend nou an te fè nan Electron (nou itilize li, pa sit entènèt la, paske nou te okòmansman deside estoke done itilizatè yo pa sou sèvè a, men lokalman sou òdinatè a), epi sèvè a ak sistèm rekòmandasyon an tèt li yo te fèt nan Python: TF yo te jwenn nan deskripsyon yo -IDF vektè ki te konpare pou pwoksimite ak vektè a antre jounal pèsonèl.

Yon manm ekip te travay sèlman sou modèl la, lòt la te travay antyèman sou front-end la (okòmansman ansanm ak yon twazyèm manm, ki pita chanje nan tès). Mwen te angaje nan analiz fim simityè soti nan Wikipedya ak sèvè a.

Etap pa etap nou te vin pi pre rezilta a, simonte yon kantite pwoblèm, kòmanse ak lefèt ke modèl la okòmansman te mande anpil RAM, fini ak difikilte pou transfere done sou sèvè a.

Kounye a, pou w jwenn yon fim pou aswè a, ou pa bezwen anpil efò: rezilta twa jou travay nou an se yon aplikasyon Desktop ak yon sèvè, itilizatè a jwenn aksè atravè https, k ap resevwa an repons yon seleksyon 5 fim ak yon deskripsyon tou kout ak yon afich.

Enpresyon mwen sou pwojè a trè pozitif: travay la te kaptivan depi nan maten byen bonè jiska ta nan mitan lannwit, ak aplikasyon an ki kapab lakòz detanzantan pwodui rezilta trè komik nan style la nan "Nwa san dòmi" pou yon antre jounal sou devwa nan inivèsite a oswa yon fim. sou premye jou lekòl la pou yon istwa sou premye jou nan depatman an.

Ou ka jwenn lyen ki enpòtan, enstalatè, elatriye isit la.

Dèlko wout

Hackathon DevDays'19 (pati 1): yon jounal pèsonèl ak rekòmandasyon, yon dèlko wout mache ak demokrasi likidOtè lide a
Artemyeva Irina
Alinye
Artemyeva Irina – dirijan ekip, bouk prensipal la
Gordeeva Lyudmila - mizik
Platonov Vladislav – wout

Mwen vrèman renmen mache nan vil la: gade bilding, moun, reflechi sou istwa. Men, menm lè m chanje kote m abite, pi bonè oswa pita m ap fè fas ak pwoblèm pou m chwazi yon wout: mwen te konplete tout sa m te ka panse. Men ki jan lide a te vini otomatize jenerasyon an nan wout: ou endike pwen an kòmanse ak longè wout la, epi pwogram nan ba ou yon opsyon. Mache yo ka long, kidonk yon devlopman lojik nan lide a sanble ap ajoute kapasite nan endike pwen entèmedyè pou yon "sispann," kote ou ta ka gen yon ti goute ak repo. Yon lòt branch devlopman se te mizik. Mache nan mizik se toujou plis plezi, kidonk li ta bon pou ajoute kapasite nan chwazi yon playlist ki baze sou yon wout pwodwi.

Li pa t 'posib jwenn solisyon sa yo nan mitan aplikasyon ki deja egziste. Analòg ki pi pre yo se nenpòt planifikatè wout: Google Maps, 2GIS, elatriye.

Li pi bon pou gen yon aplikasyon konsa sou telefòn ou, kidonk lè l sèvi avèk Telegram se te yon bon opsyon. Li pèmèt ou montre kat ak jwe mizik, epi ou ka kontwole tout bagay sa yo lè w ekri yon bot. Travay prensipal la ak kat yo te fè lè l sèvi avèk Google Map API. Python fè li fasil konbine tou de teknoloji.

Te gen twa moun nan ekip la, kidonk travay la te divize an de sou-travay ki pa sipèpoze (travay ak kat ak travay ak mizik) pou mesye yo te kapab travay poukont yo, epi mwen te pran sou tèt mwen konbine rezilta yo.

Hackathon DevDays'19 (pati 1): yon jounal pèsonèl ak rekòmandasyon, yon dèlko wout mache ak demokrasi likidOkenn nan nou pa t janm travay ak API Google Map oswa ekri robo Telegram, kidonk pwoblèm prensipal la se kantite tan ki te resevwa pou aplike pwojè a: konprann yon bagay toujou pran plis tan pase fè yon bagay ou konnen byen. Li te difisil tou pou chwazi Telegram bot API a: akòz bloke, yo pa tout travay e mwen te oblije lite pou m tabli tout bagay.

Li vo mansyone separeman ki jan pwoblèm nan nan jenere wout yo te rezoud. Li fasil pou konstwi yon wout ant de kote, men kisa ou ka ofri itilizatè a si se sèlman longè wout la li te ye? Kite itilizatè a vle mache 10 kilomèt. Yo chwazi yon pwen nan yon direksyon abitrè, distans la nan ki nan yon liy dwat se 10 kilomèt, apre sa yo bati yon wout nan pwen sa a sou wout reyèl. Gen plis chans li pa pral dwat, kidonk nou pral diminye li nan 10 kilomèt yo espesifye. Gen anpil opsyon pou wout sa yo - nou te gen yon dèlko wout reyèl!

Okòmansman, mwen te vle segman kat jeyografik la nan zòn ki koresponn ak zòn vèt: ke, lakou, lari, yo nan lòd yo jwenn wout ki pi bèl pou yon mache, epi tou jenere mizik an akò ak zòn sa yo. Men, fè sa lè l sèvi avèk Google Map API a te tounen difisil (nou pa t 'gen tan yo rezoud pwoblèm sa a). Sepandan, li te posib aplike konstriksyon an nan yon wout nan kalite espesifik nan kote (boutik, pak, bibliyotèk): si wout la te ale nan tout kote yo espesifye, men distans la vle pa gen ankò te vwayaje, li se ranpli nan yon distans itilizatè-espesifye nan yon direksyon o aza. Google Map API tou pèmèt ou kalkile tan vwayaj la estime, ki ede ou chwazi yon lis egzakteman pou tout mache a.

Nan fen an jere fè yon jenerasyon wout pa pwen depa, distans ak pwen entèmedyè; tout bagay te prepare pou klasifye mizik selon seksyon nan wout la, men akòz mank de tan, li te deside kite opsyon pou chwazi yon playlist tou senpleman kòm yon branch UI adisyonèl. Kidonk, itilizatè a te kapab poukont li chwazi mizik la pou koute.

Pwoblèm prensipal ak travay ak mizik pa t 'konnen ki kote yo ka resevwa dosye mp3 soti nan san yo pa mande itilizatè a gen yon kont sou nenpòt ki sèvis. Li te deside mande mizik nan men itilizatè a (mòd UserMusic). Sa kreye yon nouvo pwoblèm: se pa tout moun ki gen kapasite pou telechaje tracks. Yon solisyon se kreye yon depo ak mizik nan itilizatè yo (mòd BotMusic) - soti nan li ou ka jenere mizik kèlkeswa sèvis yo.

Malgre ke pa pafè, nou te konplete travay la: nou te fini ak yon aplikasyon ke mwen ta renmen itilize. An jeneral, sa a se trè fre: twa jou de sa ou te gen sèlman yon lide epi yo pa yon sèl panse sou ki jan egzakteman aplike li, men kounye a gen yon solisyon k ap travay. Sa yo te trè enpòtan twa jou pou mwen.Mwen pa pè vini ak yon bagay ke mwen pa gen ase konesans aplike, yo te yon dirijan ekip te ekstrèmman enteresan, epi mwen te vin konnen mesye yo bèl bagay ki te rantre nan ekip mwen an. pi bon!

Demokrasi likid

Hackathon DevDays'19 (pati 1): yon jounal pèsonèl ak rekòmandasyon, yon dèlko wout mache ak demokrasi likid

Otè lide a
Stanislav Sychev
Alinye
Stanislav Sychev – dirijan ekip, baz done
Nikolay Izyumov - koòdone bot
Anton Ryabushev – backend

Nan diferan gwoup, souvan gen yon bezwen pran yon desizyon oswa vote. Anjeneral nan ka sa yo yo resort nan demokrasi dirèk, sepandan, lè gwoup la vin gwo, pwoblèm ka leve. Pa egzanp, yon moun nan yon gwoup ka pa vle reponn kesyon souvan oswa reponn kesyon sou sèten sijè. Nan gwo gwoup, pou evite pwoblèm yo recours demokrasi reprezantan, lè yo chwazi yon gwoup separe "depite" nan mitan tout pèp la, ki libere rès la anba chay chwa a. Men, li se byen difisil yo vin tankou yon depite, ak moun ki vin youn pa pral nesesèman onèt ak respektab, jan li te sanble ak votè yo.

Pou rezoud pwoblèm yo nan tou de sistèm yo, Brian Ford pwopoze konsèp la demokrasi likid. Nan yon sistèm konsa, tout moun lib pou chwazi wòl yon itilizatè regilye oswa yon delege, tou senpleman pa eksprime dezi yo. Nenpòt moun ka vote poukont li oswa bay yon delege yon vòt sou youn oswa plizyè pwoblèm. Yon delege kapab vote l tou. Anplis, si delege a pa adapte votè a ankò, vòt la ka retire nenpòt ki lè.

Egzanp sou itilizasyon demokrasi likid yo jwenn nan politik, e nou te vle aplike yon lide ki sanble pou itilize chak jou nan tout kalite gwoup moun. Nan pwochen Hackathon DevDays la, nou deside ekri yon bot Telegram pou vote dapre prensip demokrasi likid yo. An menm tan an, mwen te vle evite yon pwoblèm komen ak bots sa yo - bouche chat jeneral la ak mesaj ki soti nan bot la. Solisyon an se pote fonksyonalite anpil ke posib nan yon konvèsasyon pèsonèl.

Hackathon DevDays'19 (pati 1): yon jounal pèsonèl ak rekòmandasyon, yon dèlko wout mache ak demokrasi likidPou kreye bot sa a nou te itilize API soti nan Telegram. Yo te chwazi yon baz done PostgreSQL pou konsève istwa vòt ak delegasyon yo. Pou kominike ak bot la, yo te enstale yon sèvè Flask. Nou te chwazi teknoloji sa yo paske... nou te deja gen eksperyans kominike avèk yo pandan etid mèt nou an. Travay sou twa eleman pwojè a - baz done a, sèvè a, ak bot la - te distribye avèk siksè nan mitan manm ekip yo.

Natirèlman, twa jou se yon ti tan, kidonk pandan hackathon a nou aplike lide a nan nivo pwototip. Kòm yon rezilta, nou te kreye yon bot ki ekri nan chat jeneral la sèlman enfòmasyon sou ouvèti vòt la ak rezilta anonim li yo. Kapasite pou vote ak kreye yon biwo vòt aplike atravè korespondans pèsonèl ak bot la. Pou vote, antre yon kòmandman ki montre yon lis pwoblèm ki mande atansyon dirèk. Nan korespondans pèsonèl, ou ka wè lis delege yo ak vòt anvan yo, epi tou ba yo vòt ou sou youn nan sijè yo.

Videyo ak yon egzanp travay.

Li te enteresan travay sou pwojè a, nou te rete nan inivèsite a jiska minwi.Nou panse ke sa a se yon bon fason pou pran yon ti repo nan etid, byenke li fatigan anpil. Se te yon eksperyans bèl k ap travay nan yon ekip solid.

PS. Enskripsyon pou pwogram metriz pou pwochen ane akademik la deja se louvri. Antre nan kounye a!

Sous: www.habr.com

Add nouvo kòmantè