Hackathon DevDays'19 (Deel 1): en Tagebuch mat Empfehlungen, e Spazéierwee Generator a flësseg Demokratie

Viru kuerzem hu mir erzielt iwwer de Corporate Master Programm vun JetBrains an ITMO Universitéit "Software Entwécklung / Software Engineering". Mir invitéieren all Interesséierten op eng Porte Ouverte e Méindeg, den 29. Abrëll. Mir soen Iech iwwer d'Virdeeler vun eisem Masterprogramm, wéi eng Bonus mir de Studenten ubidden a wat mir am Retour verlaangen. Zousätzlech wäerte mir definitiv Froen vun eise Gäscht beäntweren.

Hackathon DevDays'19 (Deel 1): en Tagebuch mat Empfehlungen, e Spazéierwee Generator a flësseg DemokratieDen Open Day gëtt am JetBrains Büro am Times Business Center ofgehalen, wou eis Masterstudenten studéieren. Beginn um 17:00 Uhr. Dir kënnt all d'Detailer erausfannen an Iech fir d'Evenement um Site umellen mse.itmo.ru. Kommt an Dir wäert et net bedaueren!

Ee vun den Haaptkomponenten vum Programm ass Praxis. D'Studenten hu vill dovun: wëchentlech Hausaufgaben, Semesterprojeten an Hackathons. Dank der kompletter Taucht an modernen Entwécklungsmethodologien an Technologien wärend hire Studien, integréieren d'Absolventen séier an d'Aarbechtsprozesser vu groussen IT Firmen.

An dësem Post wëlle mir méi detailléiert iwwer DevDays Hackathons schwätzen, déi all sechs Méint stattfannen. D'Regele sinn einfach: Teams vun 3-4 Leit versammelen an dräi Deeg laang bréngen d'Schüler hir eegen Iddien ëm. Wat kéint dovunner kommen? Liest den éischten Deel vu Geschichten iwwer d'Hackathon-Projete vun dësem Semester vun de Studenten selwer :)

Tagebuch mat Filmempfehlungen

Hackathon DevDays'19 (Deel 1): en Tagebuch mat Empfehlungen, e Spazéierwee Generator a flësseg Demokratie

Idea Autor
Ivan Ilchuk
Opstellen
Ivan Ilchuk - Film Komplott Parsing, Server
Vladislav Korablinov - Entwécklung vu Modeller fir d'Proximitéit vun engem Tagebuch an de Komplott vun engem Film ze vergläichen
Dmitry Valchuk - UI
Nikita Vinokurov - UI, Design

D'Zil vun eisem Projet war eng Desktop-Applikatioun ze schreiwen - en Tagebuch, deen de Benotzer Filmer géif recommandéieren op Basis vun den Entréen dran.

Dës Iddi ass op mech komm, wéi ech op de Wee op d'Uni war an iwwer meng Probleemer geduecht hunn. "Wat och ëmmer eng Persoun konfrontéiert ass, huet e klassesche Schrëftsteller schonn doriwwer geschriwwen", hunn ech geduecht. "A well een et geschriwwen huet, heescht et datt een et scho gefilmt huet." Also de Wonsch, e Film iwwer eng Persoun mat der selwechter mentaler Péng ze kucken, erschéngt natierlech.

Natierlech ginn et eng grouss Varietéit vun getrennten Tagebicher a getrennten Empfehlungsservicer (awer normalerweis sinn d'Empfehlungen baséiert op deem wat d'Persoun virdru gär huet). Am Prinzip huet dëse Projet eppes gemeinsam mat der Sich no engem Film no Schlësselpunkten, awer trotzdem bitt eis Applikatioun fir d'éischt d'Funktionalitéit vun engem Tagebuch.

Hackathon DevDays'19 (Deel 1): en Tagebuch mat Empfehlungen, e Spazéierwee Generator a flësseg DemokratieWéi hu mir dat ëmgesat? Wann Dir op d'Magie Knäppchen dréckt, schéckt den Tagebuch en Entrée op de Server, wou de Film ausgewielt gëtt baséiert op der Beschreiwung vun der Wikipedia. Eis Frontend gouf am Electron gemaach (mir benotzen et, net d'Websäit, well mir am Ufank decidéiert hunn d'Benotzerdaten net um Server ze späicheren, mee lokal um Computer), an de Server an de Recommandatiounssystem selwer goufen am Python gemaach: TFs waren kritt vun de Beschreiwunge -IDF Vecteure déi fir Proximitéit zu der Tagebuch Entrée Vecteure verglach goufen.

Een Teammember huet nëmmen um Modell geschafft, deen aneren huet ganz um Frontend geschafft (ufanks zesumme mat engem drëtte Member, dee spéider op d'Test gewiesselt ass). Ech war am Parsing Film Komplott aus Wikipedia an de Server engagéiert.

Schrëtt fir Schrëtt si mir méi no un d'Resultat komm, eng Rei vu Probleemer ze iwwerwannen, ugefaange mat der Tatsaach, datt de Modell am Ufank vill RAM erfuerdert, mat der Schwieregkeet fir Daten op de Server ze transferéieren.

Elo, fir e Film fir den Owend ze fannen, brauch Dir net vill Effort: D'Resultat vun eiser dräi Deeg Aarbecht ass eng Desktop-Applikatioun an e Server, op deen de Benotzer iwwer https zougräift, a kritt als Äntwert eng Auswiel vu 5 Filmer mat eng kuerz Beschreiwung an eng Plakat.

Meng Impressioune vum Projet si ganz positiv: d'Aarbecht war begeeschtert vu fréie Mueres bis spéit an der Nuecht, an déi resultéierend Applikatioun produzéiert periodesch extrem witzeg Resultater am Stil vun "Sleepless Night" fir en Tagebuch iwwer Hausaufgaben op der Uni oder e Film iwwer den éischten Dag vun der Schoul fir eng Geschicht iwwer den éischten Dag op der Departement.

Relevant Linken, Installateuren, asw hei.

Route Generator

Hackathon DevDays'19 (Deel 1): en Tagebuch mat Empfehlungen, e Spazéierwee Generator a flësseg DemokratieIdea Autor
Artemyeva Irina
Opstellen
Artemyeva Irina - Teamleader, Haaptschleife
Gordeeva Lyudmila - Musek
Platonov Vladislav - routes

Ech hu wierklech gär ronderëm d'Stad ze goen: Gebaier kucken, Leit, iwwer d'Geschicht denken. Awer och wann ech meng Wunnsëtz änneren, desto oder spéider sinn ech mam Problem konfrontéiert, e Wee ze wielen: Ech hunn all déi ofgeschloss, un déi ech kéint denken. Sou koum d'Iddi fir d'Generatioun vu Strecken ze automatiséieren: Dir gitt den Startpunkt an d'Längt vun der Streck un, an de Programm gëtt Iech eng Optioun. Spazéieren kënne laang sinn, sou datt eng logesch Entwécklung vun der Iddi schéngt d'Fähigkeit ze addéieren fir Zwëschenpunkte fir e "Stop" unzeginn, wou Dir e Snack a Rescht kënnt. Eng aner Branche vun der Entwécklung war Musek. Spazéieren op Musek ass ëmmer méi lëschteg, also wier et super d'Fäegkeet ze addéieren fir eng Playlist op Basis vun enger generéierter Streck ze wielen.

Et war net méiglech esou Léisungen ënnert existéierenden Uwendungen ze fannen. Déi nootste Analoga sinn all Routeplaner: Google Maps, 2GIS, etc.

Et ass am meeschte praktesch sou eng Applikatioun op Ärem Telefon ze hunn, sou datt d'Benotzung vum Telegram eng gutt Optioun war. Et erlaabt Iech Kaarten ze weisen a Musek ze spillen, an Dir kënnt dat alles kontrolléieren andeems Dir e Bot schreift. D'Haaptaarbecht mat Kaarten gouf mat der Google Map API gemaach. Python mécht et einfach béid Technologien ze kombinéieren.

Et waren dräi Leit am Team, sou datt d'Aufgab an zwee net iwwerlappend Ënnertasks opgedeelt gouf (mat Kaarten ze schaffen a mat Musek ze schaffen), sou datt d'Jongen onofhängeg kënne schaffen, an ech hunn mech op mech geholl d'Resultater ze kombinéieren.

Hackathon DevDays'19 (Deel 1): en Tagebuch mat Empfehlungen, e Spazéierwee Generator a flësseg DemokratieKeen vun eis hat jeemools mat der Google Map API oder schrëftleche Telegram Bots geschafft, sou datt den Haaptproblem war d'Quantitéit un Zäit, déi fir de Projet ëmzesetzen: eppes ze verstoen brauch ëmmer méi Zäit wéi eppes ze maachen wat Dir gutt kennt. Et war och schwéier den Telegram Bot API ze wielen: Wéinst der Blockéierung funktionnéieren net all an ech hu misse kämpfen fir alles opzestellen.

Et ass derwäert getrennt ze ernimmen wéi de Problem vun generéieren routes geléist gouf. Et ass einfach eng Streck tëscht zwou Plazen ze bauen, awer wat kënnt Dir dem Benotzer ubidden wann nëmmen d'Längt vun der Streck bekannt ass? Loosst de Benotzer 10 Kilometer goen. E Punkt gëtt an enger arbiträrer Richtung ausgewielt, d'Distanz zu deem an enger riichter Linn 10 Kilometer ass, duerno gëtt e Wee zu dësem Punkt iwwer richteg Stroosse gebaut. Wahrscheinlech wäert et net riicht sinn, sou datt mir et op déi spezifizéiert 10 Kilometer verkierzen. Et gi vill Méiglechkeeten fir esou Strecken - mir hunn e richtege Wee Generator!

Am Ufank wollt ech d'Kaart op Gréngflächen segmentéieren, déi de Gréngflächen entspriechen: Bannen, Haff, Stroossen, fir deen agreabelste Wee fir e Spadséiergank ze kréien, an och Musek am Aklang mat dëse Beräicher ze generéieren. Awer dëst mat der Google Map API ze maachen huet sech schwéier erausgestallt (mir haten keng Zäit fir dëse Problem ze léisen). Wéi och ëmmer, et war méiglech de Bau vun enger Streck duerch spezifesch Aarte vu Plazen (Geschäft, Park, Bibliothéik) ëmzesetzen: wann de Wee ronderëm all déi spezifizéiert Plazen gaang ass, awer déi gewënscht Distanz ass nach net gereest, gëtt se ofgeschloss op eng Benotzer-spezifizéierter Distanz an engem zoufälleg Richtung. D'Google Map API erlaabt Iech och déi geschätzte Reeszäit ze berechnen, wat Iech hëlleft eng Playlist genau fir de ganze Spazéiergang ze wielen.

Als Resultat, et fäerdeg bruecht eng Generatioun ze maachen Strecken no Startpunkt, Distanz an Zwëschenpunkten; alles war bereet fir d'Musek no Sektiounen vun der Streck ze klassifizéieren, awer wéinst Zäitmangel gouf decidéiert d'Optioun ze verloossen fir eng Playlist einfach als zousätzlech UI Branche ze wielen. Sou konnt de Benotzer onofhängeg d'Musek wielen fir no ze lauschteren.

Den Haaptproblem mat der Musek ze schaffen war net ze wëssen wou mp3 Dateien hierkommen ouni datt de Benotzer e Kont op all Service erfuerdert. Et gouf decidéiert Musek vum Benotzer ze froen (UserMusic Modus). Dëst schaaft en neie Problem: net jiddereen huet d'Méiglechkeet Bunnen erofzelueden. Eng Léisung ass e Repository mat Musek vu Benotzer ze kreéieren (BotMusic Modus) - dovu kënnt Dir Musek generéieren onofhängeg vu Servicer.

Och wann et net perfekt ass, hu mir d'Aufgab ofgeschloss: mir hunn eng Applikatioun opgehalen, déi ech gär hätt. Am Allgemengen ass dat ganz cool: Virun dräi Deeg hat Dir nëmmen eng Iddi an net eng eenzeg Gedanken iwwer wéi Dir se genau ëmsetzt, awer elo gëtt et eng funktionéierend Léisung. Dat ware fir mech ganz wichteg dräi Deeg, ech fäerten net méi eppes ze kommen, wat ech net genuch Wëssen hunn fir ëmzesetzen, Teamleader ze sinn war onheemlech interessant, an ech hunn déi wonnerbar Kärelen kennegeléiert, déi bei menger Équipe komm sinn besser!

Flësseg Demokratie

Hackathon DevDays'19 (Deel 1): en Tagebuch mat Empfehlungen, e Spazéierwee Generator a flësseg Demokratie

Idea Autor
Stanislav Sychev
Opstellen
Stanislav Sychev - Teamleader, Datebank
Nikolay Izyumov - Bot Interface
Anton Ryabushev - Backend

A verschiddene Gruppen ass et dacks néideg eng Entscheedung ze treffen oder ze stëmmen. Normalerweis an esou Fäll huelen se op direkt Demokratie, wann de Grupp awer grouss gëtt, kënne Problemer entstoen. Zum Beispill, eng Persoun an engem Grupp wëll vläicht net dacks Froen beäntweren oder Froen iwwer bestëmmten Themen beäntweren. A grousse Gruppen, fir Problemer ze vermeiden, déi se zréckgräifen representativ Demokratie, wann ënnert all de Leit eng separat Grupp vun "Deputéierten" gewielt gëtt, déi de Rescht vun der Belaaschtung vum Choix befreien. Mä et ass zimlech schwéier esou en Deputéierten ze ginn, an déi Persoun, déi ee gëtt, wäert net onbedéngt éierlech a respektabel sinn, wéi hien de Wieler schéngt.

Fir d'Problemer vu béide Systemer ze léisen, huet de Brian Ford d'Konzept proposéiert flësseg Demokratie. An esou engem System ass jidderee fräi d'Roll vun engem reguläre Benotzer oder engem Delegéierten ze wielen, einfach andeems hien säi Wonsch ausdréckt. Jidderee kann onofhängeg ofstëmmen oder engem Delegéierten iwwer eng oder méi Themen e Vote ginn. En Delegéierte kann och säi Vote ofginn. Ausserdeem, wann den Delegéierten dem Wieler net méi passt, kann de Vote zu all Moment zréckgezunn ginn.

Beispiller fir de Gebrauch vun flësseger Demokratie sinn an der Politik ze fannen, a mir wollten eng ähnlech Iddi fir alldeegleche Gebrauch an all Zorte vu Gruppe vu Leit ëmsetzen. Um nächsten DevDays Hackathon hu mir beschloss en Telegram Bot ze schreiwen fir ze stëmmen no de Prinzipien vun der flësseger Demokratie. Zur selwechter Zäit wollt ech e gemeinsame Problem mat sou Bots vermeiden - den allgemenge Chat mat Messagen vum Bot verstoppen. D'Léisung ass sou vill Funktionalitéit wéi méiglech an e perséinlecht Gespréich ze bréngen.

Hackathon DevDays'19 (Deel 1): en Tagebuch mat Empfehlungen, e Spazéierwee Generator a flësseg DemokratieFir dëse Bot ze kreéieren hu mir benotzt API vun Telegram. Eng PostgreSQL Datebank gouf gewielt fir d'Geschicht vun de Wahlen an Delegatiounen ze späicheren. Fir mam Bot ze kommunizéieren, gouf e Flask Server installéiert. Mir hunn dës Technologien gewielt well ... mir hate schonn Erfahrung mat hinnen interagéieren während eisem Master d'Studien. D'Aarbecht un den dräi Komponente vum Projet - d'Datebank, de Server an de Bot - gouf erfollegräich ënner den Teammemberen verdeelt.

Natierlech sinn dräi Deeg eng kuerz Zäit, also wärend dem Hackathon hu mir d'Iddi op de Prototypniveau ëmgesat. Als Resultat hu mir e Bot erstallt, deen dem allgemenge Chat nëmmen Informatioun iwwer d'Ouverture vum Vote schreift an hir anonym Resultater. D'Fäegkeet fir ze stëmmen an eng Ëmfro ze kreéieren gëtt duerch perséinlech Korrespondenz mam Bot ëmgesat. Fir ze stëmmen, gitt e Kommando an deen eng Lëscht vun Themen weist déi direkt Opmierksamkeet erfuerderen. An der perséinlecher Korrespondenz kënnt Dir d'Lëscht vun den Delegéierten an hir virdrun Stëmmen gesinn, an hinnen och Är Stëmm iwwer ee vun den Themen ginn.

Video mat engem Beispill vun Aarbecht.

Et war interessant un deem Projet ze schaffen, mir sinn bis Mëtternuecht op der Uni bliwwen, mir mengen dat ass e super Wee fir eng Paus beim Studium ze maachen, obwuel et ganz ustrengend ass. Et war eng agreabel Erfahrung an enger enker Equipe ze schaffen.

PS. Aschreiwung fir Masterprogrammer fir dat nächst akademescht Joer ass scho opmaachen. Komm mat eis!

Source: www.habr.com

Setzt e Commentaire