Hackathon DevDays'19 (parte 1): un ghjurnale cù cunsiglii, un generatore di percorsi per caminari è a demucrazia liquida

Recentemente noi dettu nantu à u prugramma di maestru corporativu di JetBrains è ITMO University "Sviluppu di Software / Ingegneria di Software". Invitemu tutti l'interessati à una ghjurnata aperta u luni 29 d'aprile. Vi diceremu di i vantaghji di u nostru prugramma di maestru, chì bonus offremu à i studienti è ciò chì dumandemu in ritornu. Inoltre, risponderemu di sicuru à e dumande di i nostri invitati.

Hackathon DevDays'19 (parte 1): un ghjurnale cù cunsiglii, un generatore di percorsi per caminari è a demucrazia liquidaA ghjurnata aperta si terrà à l'uffiziu di JetBrains in u Times Business Center, induve i nostri studienti di u maestru studianu. Accumincia à 17:00. Pudete truvà tutti i ditagli è iscrive per l'avvenimentu nantu à u situ web mse.itmo.ru. Venite è ùn vi dispiace micca !

Unu di i cumpunenti principali di u prugramma hè a pratica. I studienti anu assai: travaglii settimanali, prughjetti di u semestru è hackathon. Grazie à l'immersione cumpleta in metodulugia è tecnulugia di sviluppu mudernu durante i so studii, i laureati si integranu rapidamente in i prucessi di travagliu di e grande cumpagnie IT.

In questu post vulemu parlà più in dettagliu di l'hackathons DevDays, chì si facenu ogni sei mesi. E regule sò simplici : squadre di 3-4 persone si riuniscenu è per trè ghjorni i studienti portanu e so idee à a vita. Chì puderia vene da questu? Leghjite a prima parte di storie nantu à i prughjetti di hackathon di stu semestru da i studienti stessi :)

Diariu cù cunsiglii di film

Hackathon DevDays'19 (parte 1): un ghjurnale cù cunsiglii, un generatore di percorsi per caminari è a demucrazia liquida

L'auteur de l'idée
Ivan Ilchuk
Cumpusizioni di u squadra
Ivan Ilchuk - analisi di trama di filmu, servitore
Vladislav Korablinov - sviluppu di mudelli per paragunà a vicinanza di una entrata di ghjurnale è a trama di un film
Dmitry Valchuk - UI
Nikita Vinokurov - UI, disignu

L'obiettivu di u nostru prughjettu era di scrive una applicazione desktop - un ghjurnale chì ricumandava filmi à l'utilizatori basatu nantu à e entrate in questu.

Sta idea hè vinuta à mè quandu era in u mo modu à l'università è pensendu à i mo prublemi. "Qualunque prublema chì una persona face, un scrittore classicu hà digià scrittu annantu à questu", aghju pensatu. "E postu chì qualcunu l'hà scrittu, significa chì qualchissia hà digià filmatu". Allora u desideriu di vede un film nantu à una persona cù u stessu turmentu mentale apparsu naturali.

Ovviamente, ci sò una larga varietà di diari separati è servizii di ricunniscenza separati (ma di solitu i ricunniscenza sò basati nantu à ciò chì a persona li piacia prima). In principiu, stu prughjettu hà qualcosa in cumunu cù a ricerca di un filmu per punti chjave, ma sempre, prima di tuttu, a nostra applicazione furnisce a funziunalità di un ghjurnale.

Hackathon DevDays'19 (parte 1): un ghjurnale cù cunsiglii, un generatore di percorsi per caminari è a demucrazia liquidaCumu avemu implementatu questu? Quandu pressu u buttone magicu, u ghjurnale manda una entrata à u servitore, induve u filmu hè sceltu basatu nantu à a descrizzione presa da Wikipedia. U nostru frontend hè statu fattu in Electron (usemu, micca u situ web, perchè inizialmente avemu decisu di almacenà e dati di l'utilizatori micca in u servitore, ma in u locu in l'urdinatore), è u servitore è u sistema di ricunniscenza stessu sò stati fatti in Python: ottenuta da e descrizioni -Vettori IDF chì sò stati paragunati per a vicinanza à u vettore di entrata di u ghjurnale.

Un membru di a squadra hà travagliatu solu nantu à u mudellu, l'altru hà travagliatu interamente in u front-end (iniziu cù un terzu membru, chì dopu hà cambiatu à a prova). Eru impegnatu in l'analisi di trame di film da Wikipedia è u servitore.

Passu à passu avemu avutu più vicinu à u risultatu, superendu una quantità di prublemi, cuminciendu cù u fattu chì u mudellu hà inizialmente bisognu di assai RAM, finiscinu cù a difficultà di trasferimentu di dati à u servitore.

Avà, per truvà un filmu per a sera, ùn avete micca bisognu di assai sforzu: u risultatu di u nostru travagliu di trè ghjorni hè una applicazione desktop è un servitore, chì l'utilizatori accede via https, ricevendu in risposta una selezzione di filmi 5 cù una breve descrizzione è un poster.

I mo impressioni di u prugettu sò assai pusitivi: u travagliu era captivante da a matina prima finu à a notte tarda, è l'applicazione risultante produce periodicamente risultati estremamente divertenti in u stilu di "Sleepless Night" per una entrata di ghjurnale nantu à i travaglii in l'università o un film. circa u primu ghjornu di scola per una storia nantu à u primu ghjornu à u dipartimentu.

Ligami pertinenti, installatori, etc. ponu esse truvati ccà.

Generatore di rotta

Hackathon DevDays'19 (parte 1): un ghjurnale cù cunsiglii, un generatore di percorsi per caminari è a demucrazia liquidaL'auteur de l'idée
Artemyeva Irina
Cumpusizioni di u squadra
Artemyeva Irina - capu di squadra, ciclu principale
Gordeeva Lyudmila - musica
Platonov Vladislav - rotte

Mi piace assai di marchjà per a cità : fighjendu l'edificazioni, a ghjente, pensendu à a storia. Ma, ancu quandu cambiassi u mo locu di residenza, prima o poi sò affruntatu à u prublema di sceglie una strada: aghju cumpletu tutti quelli chì puderia pensà. Hè cusì chì l'idea hè ghjunta per automatizà a generazione di rotte: indicate u puntu di partenza è a durata di a strada, è u prugramma vi dà una opzione. I camini pò esse longu, cusì un sviluppu logicu di l'idea pare chì aghjunghje l'abilità di indicà i punti intermedii per un "stop", induve pudete piglià un snack è restu. Un altru ramu di u sviluppu era a musica. Camminà à a musica hè sempre più divertente, cusì saria grande per aghjunghje l'abilità di selezziunà una playlist basatu annantu à una strada generata.

Ùn era micca pussibule di truvà tali suluzioni trà l'applicazioni esistenti. L'analogi più vicini sò qualsiasi pianificatori di rotte: Google Maps, 2GIS, etc.

Hè più convenientu per avè una tale applicazione nantu à u vostru telefunu, cusì l'usu di Telegram era una bona opzione. Permette di vede carte è ghjucà musica, è pudete cuntrullà tuttu questu scrivendu un bot. U travagliu principale cù e carte hè stata fatta cù l'API di Google Map. Python facilita a combinazione di e duie tecnulugia.

Ci era trè persone in a squadra, cusì u compitu hè statu divisu in dui subtasks senza sovrapposizione (travagliu cù carte è travagliendu cù a musica) per chì i picciotti puderanu travaglià indipindente, è aghju pigliatu à mè stessu per cumminà i risultati.

Hackathon DevDays'19 (parte 1): un ghjurnale cù cunsiglii, un generatore di percorsi per caminari è a demucrazia liquidaNisunu di noi ùn avia mai travagliatu cù l'API di Google Map o i bots di Telegram scritti, cusì u prublema principali era a quantità di tempu destinata à implementà u prugettu: capisce qualcosa sempre piglia più tempu chè fà qualcosa chì sapete bè. Era ancu difficiuli di sceglie l'API di telegram bot: per via di u bluccatu, micca tutti travaglianu è aghju avutu a lotta per mette tuttu.

Hè vale à dì per separatamente cumu si risolve u prublema di generazione di rotte. Hè facilitu di custruisce una strada trà dui lochi, ma chì pudete offre à l'utilizatori se solu a durata di a strada hè cunnisciuta? Chì l'utilizatori vulete marchjà 10 chilometri. Un puntu hè sceltu in una direzzione arbitraria, a distanza à quale in una linea recta hè 10 chilometri, dopu chì una strada hè custruita à questu puntu nantu à e strade veri. Hè assai prubabile chì ùn serà micca drittu, cusì l'accurceremu à i 10 chilometri specificati. Ci hè parechje scelte per tali rotte - avemu un veru generatore di rotte!

In principiu, vulia segmentà a mappa in zoni chì currispondenu à i zoni verdi: terrapieni, cortili, strade, per ottene u percorsu più piacevule per una caminata, è ancu generà musica in cunfurmità cù questi spazii. Ma fendu questu utilizendu l'API di Google Map hè statu difficiule (ùn avemu micca u tempu di risolve stu prublema). Tuttavia, era pussibule implementà a custruzzione di una strada attraversu tipi specifichi di lochi (negozi, parcu, biblioteca): se u percorsu andava intornu à tutti i lochi specificati, ma a distanza desiderata ùn hè micca stata percorsa, hè cumpletata à un distanza specificata da l'utilizatore in una direzzione aleatoria. L'API di Google Map permette ancu di calculà u tempu di viaghju stimatu, chì vi aiuta à sceglie una playlist esattamente per tuttu u caminu.

Par via di cunsiquenza, riesciutu à fà una generazione rotte per puntu di partenza, distanza è punti intermedi; tuttu era preparatu per classificà a musica secondu e sezioni di u percorsu, ma per mancanza di tempu, hè statu decisu di lascià l'opzione di selezziunà una playlist solu cum'è un ramu UI supplementu. Cusì, l'utilizatore hà pussutu sceglie indipindentamente a musica per sente.

U prublema principali cù u travagliu cù a musica ùn era micca sapendu induve uttene i fugliali mp3 da senza esigenza di l'utilizatore per avè un contu in ogni serviziu. Hè statu decisu di dumandà a musica da l'utilizatori (modu UserMusic). Questu crea un novu prublema: micca tutti ùn anu a capacità di scaricà piste. Una suluzione hè di creà un repository cù musica da l'utilizatori (modu BotMusic) - da ellu pudete generà musica indipendentemente da i servizii.

Ancu s'ellu ùn hè micca perfettu, avemu finitu u compitu: avemu finitu cù una applicazione chì mi piacerebbe aduprà. In generale, questu hè assai bellu: trè ghjorni fà avete solu una idea è micca un pensamentu unicu nantu à cumu esattamente implementà, ma avà ci hè una suluzione di travagliu. Sò stati trè ghjorni assai impurtanti per mè. Ùn aghju più paura di vene cun qualcosa chì ùn aghju micca abbastanza cunniscenze per implementà, esse un capu di squadra era incredibilmente interessante, è aghju cunnisciutu i maravigliosi ragazzi chì si sò uniti à a mo squadra. megliu!

Demucrazia liquida

Hackathon DevDays'19 (parte 1): un ghjurnale cù cunsiglii, un generatore di percorsi per caminari è a demucrazia liquida

L'auteur de l'idée
Stanislav Sychev
Cumpusizioni di u squadra
Stanislav Sychev - capu di squadra, basa di dati
Nikolay Izyumov - interfaccia bot
Anton Ryabushev - backend

Dentru diversi gruppi, ci hè spessu bisognu di piglià una decisione o votu. Di solitu in tali casi si ricorre demucrazia diretta, in ogni modu, quandu u gruppu diventa grande, i prublemi ponu esse. Per esempiu, una persona in un gruppu ùn pò micca vulete risponde à e dumande spessu o risponde à e dumande nantu à certi temi. In gruppi grossi, per evità prublemi chì ricorrenu demucrazia rapprisintanti, Quandu un gruppu separatu di "diputati" hè sceltu trà tutte e persone, chì liberanu u restu da a carica di scelta. Ma hè abbastanza difficiuli di diventà un tali diputatu, è a persona chì diventa unu ùn serà micca necessariamente onestu è rispettabile, cum'è paria à l'elettori.

Per risolve i prublemi di i dui sistemi, Brian Ford prupone u cuncettu demucrazia liquida. In un tali sistema, ognunu hè liberu di sceglie u rolu di un usu regulare o un delegatu, solu per spressione u so desideriu. Qualchissia pò vutà indipindentamente o dà un votu à un delegatu nantu à una o più prublemi. Un delegatu pò ancu fà u so votu. D’altronde, se u delegatu ùn cunvene più à l’elettore, u votu pò esse ritiratu in ogni mumentu.

Esempii di l'usu di a demucrazia liquida si trovanu in a pulitica, è vulemu implementà una idea simili per l'usu di ogni ghjornu in ogni tipu di gruppi di persone. À u prossimu hackathon DevDays, avemu decisu di scrive un bot di Telegram per u votu secondu i principii di a demucrazia liquida. À u listessu tempu, aghju vulsutu evità un prublema cumuni cù tali bots - impiccà u chat generale cù missaghji da u bot. A suluzione hè di purtà quant'è funziunalità pussibule in una conversazione persunale.

Hackathon DevDays'19 (parte 1): un ghjurnale cù cunsiglii, un generatore di percorsi per caminari è a demucrazia liquidaPer creà stu bot avemu usatu API da Telegram. Una basa di dati PostgreSQL hè stata scelta per almacenà a storia di u votu è di e delegazioni. Per cumunicà cù u bot, un servitore Flask hè statu installatu. Avemu sceltu queste tecnulugia perchè ... avemu digià avutu una sperienza interagisce cun elli durante i nostri studii di maestru. U travagliu nantu à i trè cumpunenti di u prughjettu - a basa di dati, u servitore è u bot - hè statu distribuitu cù successu trà i membri di l'equipa.

Di sicuru, trè ghjorni hè un pocu tempu, cusì durante l'hackathon avemu implementatu l'idea à u livellu di prototipu. In u risultatu, avemu creatu un bot chì scrive à u chat generale solu infurmazione nantu à l'apertura di u votu è i so risultati anonimi. A capacità di votu è di creà un sondaghju hè implementatu per currispundenza persunale cù u bot. Per votà, entre un cumandamentu chì mostra una lista di prublemi chì necessitanu attenzione diretta. In a currispundenza persunale, pudete vede a lista di i delegati è i so voti previ, è ancu dà u vostru votu nantu à unu di i temi.

Video cù un esempiu di travagliu.

Era interessante di travaglià nant'à u prugettu, stamu à l'università finu à a mezzanotte.Pensemu chì questu hè un bonu modu per piglià una pausa da u studiu, ancu s'ellu hè assai fatigante. Hè stata una sperienza piacevule à travaglià in una squadra stretta.

PS. L'iscrizzione per i prugrammi di maestru per u prossimu annu accademicu hè digià apertu. Unisciti à noi!

Fonte: www.habr.com

Add a comment