Hackathon DevDays'19 (bagean 1): buku harian kanthi rekomendasi, generator rute mlaku lan demokrasi cair

Bubar kita ngandika babagan program master perusahaan JetBrains lan Universitas ITMO "Pengembangan Perangkat Lunak / Teknik Perangkat Lunak". Kita ngajak kabeh wong sing kasengsem kanggo mbukak dina Senin, 29 April. Kita bakal pitutur marang kowe bab kaluwihan saka program master kita, apa bonus kita kurban kanggo siswa lan apa kita njaluk bali. Kajaba iku, kita mesthi bakal mangsuli pitakon saka tamu.

Hackathon DevDays'19 (bagean 1): buku harian kanthi rekomendasi, generator rute mlaku lan demokrasi cairDina mbukak bakal dianakake ing kantor JetBrains ing Pusat Bisnis Times, ing ngendi para siswa master sinau. Diwiwiti ing 17:00. Sampeyan bisa ngerteni kabeh rincian lan ndhaptar acara kasebut ing situs web mse.itmo.ru. Teka lan sampeyan ora bakal Getun!

Salah sawijining komponen utama program kasebut yaiku praktik. Siswa duwe akeh: peer mingguan, proyek semester lan hackathon. Thanks kanggo ngrampungake metodologi lan teknologi pangembangan modern sajrone sinau, para lulusan cepet nggabungake proses kerja perusahaan IT gedhe.

Ing kirim iki, kita pengin ngobrol kanthi luwih rinci babagan hackathon DevDays, sing ditindakake saben nem wulan. Aturan kasebut prasaja: tim saka 3-4 wong ngumpul lan telung dina siswa nggawa gagasan dhewe kanggo urip. Apa bisa teka saka iki? Waca bagean pisanan crita babagan proyek hackathon semester iki saka siswa dhewe :)

Diary karo rekomendasi film

Hackathon DevDays'19 (bagean 1): buku harian kanthi rekomendasi, generator rute mlaku lan demokrasi cair

Pengarang gagasan
Ivan Iluh
Line-up
Ivan Ilchuk – parsing plot film, server
Vladislav Korablinov - pangembangan model kanggo mbandhingake jarak entri buku harian lan plot film
Dmitry Valchuk - UI
Nikita Vinokurov – UI, desain

Tujuan proyek kita yaiku nulis aplikasi desktop - buku harian sing bakal menehi rekomendasi film kanggo pangguna adhedhasar entri kasebut.

Ide iki teka nalika aku lagi menyang universitas lan mikir babagan masalahku. "Apa wae masalah sing diadhepi wong, sawetara penulis klasik wis nulis babagan iki," pikirku. "Lan wiwit ana sing nulis, tegese ana sing wis nggawe film." Dadi kepinginan kanggo nonton film babagan wong karo siksa mental padha katon alamiah.

Temenan, ana macem-macem buku harian sing kapisah lan layanan rekomendasi sing kapisah (nanging biasane rekomendasi kasebut adhedhasar apa sing disenengi wong sadurunge). Ing asas, proyek iki ana sing padha karo nggoleki film kanthi poin-poin penting, nanging isih, pisanan, aplikasi kita nyedhiyakake fungsionalitas buku harian.

Hackathon DevDays'19 (bagean 1): buku harian kanthi rekomendasi, generator rute mlaku lan demokrasi cairKepiye carane kita ngetrapake iki? Nalika sampeyan menet tombol sihir, buku harian ngirim entri menyang server, ing ngendi film kasebut dipilih adhedhasar deskripsi sing dijupuk saka Wikipedia. Frontend kita digawe ing Electron (kita nggunakake, dudu situs web, amarga kita pisanan mutusake kanggo nyimpen data pangguna ora ing server, nanging sacara lokal ing komputer), lan server lan sistem rekomendasi dhewe digawe ing Python: TFs padha dipikolehi saka gambaran -IDF vektor sing padha dibandhingake kanggo jarak menyang vektor entri diary.

Salah siji anggota tim makarya mung ing model, liyane makarya tanggung ing ngarep-mburi (pisanan bebarengan karo anggota katelu, sing banjur pindhah menyang testing). Aku melu parsing plot film saka Wikipedia lan server.

Langkah demi langkah kita nyedhaki asil, ngatasi sawetara masalah, diwiwiti kanthi kasunyatan manawa model kasebut mbutuhake akeh RAM, sing pungkasane angel nransfer data menyang server.

Saiki, kanggo nemokake film ing wayah sore, sampeyan ora perlu akeh gaweyan: asil karya telung dina kita yaiku aplikasi desktop lan server, sing diakses pangguna liwat https, nampa pilihan saka 5 film kanthi pilihan. gambaran singkat lan poster.

Kesanku babagan proyek kasebut positif banget: karya kasebut narik kawigaten wiwit esuk nganti pungkasan wengi, lan aplikasi sing diasilake sacara periodik ngasilake asil sing lucu banget ing gaya "Sleepless Night" kanggo entri buku harian babagan peer ing universitas utawa film. bab dina pisanan sekolah kanggo crita bab dina pisanan ing departemen.

Link sing relevan, installer, lan liya-liyane bisa ditemokake kene.

Generator rute

Hackathon DevDays'19 (bagean 1): buku harian kanthi rekomendasi, generator rute mlaku lan demokrasi cairPengarang gagasan
Artemyeva Irina
Line-up
Artemyeva Irina - pimpinan tim, loop utama
Gordeeva Lyudmila - music
Platonov Vladislav - rute

Aku seneng banget mlaku-mlaku ing kutha: ndeleng bangunan, wong, mikir babagan sejarah. Nanging, malah nalika ngganti panggonan manggon, cepet utawa mengko aku ngadhepi karo masalah kanggo milih rute: Aku wis rampung kabeh sing aku bisa mikir. Iki carane idea teka munggah kanggo otomatis generasi rute: sampeyan nuduhake titik wiwitan lan dawa rute, lan program menehi pilihan. Mlaku-mlaku bisa dawa, mula pangembangan logis saka ide kasebut katon nambah kemampuan kanggo nunjukake titik penengah kanggo "mandeg," ing ngendi sampeyan bisa ngemil lan ngaso. Cabang pangembangan liyane yaiku musik. Mlaku-mlaku menyang musik mesthi luwih nyenengake, mula luwih becik nambahake kemampuan kanggo milih dhaptar lagu adhedhasar rute sing digawe.

Ora bisa nemokake solusi kasebut ing antarane aplikasi sing wis ana. Analog sing paling cedhak yaiku perencana rute: Google Maps, 2GIS, lsp.

Paling trep duwe aplikasi kasebut ing telpon, mula nggunakake Telegram minangka pilihan sing apik. Ngidini sampeyan nampilake peta lan muter musik, lan sampeyan bisa ngontrol kabeh iki kanthi nulis bot. Karya utama karo peta wis rampung nggunakake Google Map API. Python nggampangake kanggo gabungke loro teknologi.

Ana wong telu ing tim, mula tugas kasebut dipΓ©rang dadi rong subtugas sing ora tumpang tindih (makarya nganggo peta lan nggarap musik) supaya wong lanang bisa kerja kanthi mandiri, lan aku kudu nggabungake asil kasebut.

Hackathon DevDays'19 (bagean 1): buku harian kanthi rekomendasi, generator rute mlaku lan demokrasi cairOra ana sing nate nggarap Google Map API utawa nulis bot Telegram, mula masalah utama yaiku jumlah wektu sing diparengake kanggo ngleksanakake proyek kasebut: ngerteni soko mesthi mbutuhake wektu luwih akeh tinimbang nindakake apa sing sampeyan ngerti. Iku uga angel kanggo milih Telegram bot API: amarga pamblokiran, ora kabeh padha bisa lan aku kudu berjuang kanggo nyetel kabeh.

Perlu dicritakake kanthi kapisah carane masalah ngasilake rute ditanggulangi. Iku gampang kanggo mbangun rute antarane rong lokasi, nanging apa sampeyan bisa kurban pangguna yen mung dawa rute dikenal? Ayo pangguna pengin mlaku 10 kilometer. Titik dipilih kanthi arah sing sewenang-wenang, jarak sing ana ing garis lurus yaiku 10 kilometer, sawise rute kasebut dibangun menyang titik iki ing dalan sing nyata. Paling kamungkinan, iku ora bakal langsung, supaya kita shorten menyang 10 kilometer. Ana akeh pilihan kanggo rute kasebut - kita entuk generator rute nyata!

Kaping pisanan, aku pengin mbagi peta menyang wilayah sing cocog karo wilayah ijo: tanggul, plataran, lurung-lurung, supaya entuk rute sing paling nyenengake kanggo mlaku-mlaku, lan uga ngasilake musik sing cocog karo wilayah kasebut. Nanging nindakake iki nggunakake Google Map API ternyata angel (kita ora duwe wektu kanggo ngatasi masalah iki). Nanging, sampeyan bisa nindakake pambangunan rute liwat jinis lokasi tartamtu (toko, taman, perpustakaan): yen rute kasebut ngubengi kabeh panggonan sing ditemtokake, nanging jarak sing dikarepake durung dilewati, wis rampung menyang a jarak sing ditemtokake pangguna ing arah acak. Google Map API uga ngidini sampeyan ngetung kira-kira wektu lelungan, sing mbantu sampeyan milih dhaptar lagu kanthi persis kanggo kabeh mlaku.

Ing pungkasan kasil nggawe generasi rute kanthi titik wiwitan, jarak lan titik penengah; kabeh wis disiapake kanggo nggolongake musik miturut bagean rute, nanging amarga kekurangan wektu, diputusake ninggalake pilihan kanggo milih dhaptar lagu mung minangka cabang UI tambahan. Mangkono, pangguna bisa bebas milih musik sing arep dirungokake.

Masalah utama nggarap musik yaiku ora ngerti saka ngendi entuk file mp3 tanpa mbutuhake pangguna duwe akun ing layanan apa wae. Diputusake kanggo njaluk musik saka pangguna (mode UserMusic). Iki nggawe masalah anyar: ora saben wong duwe kemampuan kanggo ngundhuh trek. Salah sawijining solusi yaiku nggawe repositori karo musik saka pangguna (mode BotMusic) - saka iku sampeyan bisa ngasilake musik preduli saka layanan.

Sanajan ora sampurna, kita ngrampungake tugas: kita rampung karo aplikasi sing pengin digunakake. UmumΓ©, iki keren banget: telung dina kepungkur sampeyan mung duwe ide lan ora ana siji-sijine pamikiran babagan carane ngetrapake, nanging saiki ana solusi sing bisa digunakake. Iki telung dina sing penting banget kanggo aku. Aku ora wedi maneh nggawe prekara sing ora duwe kawruh sing cukup kanggo dileksanakake, dadi pimpinan tim pancen menarik banget, lan aku ngerti wong-wong sing apik banget sing gabung karo timku. luwih apik!

Demokrasi cair

Hackathon DevDays'19 (bagean 1): buku harian kanthi rekomendasi, generator rute mlaku lan demokrasi cair

Pengarang gagasan
Stanislav Sychev
Line-up
Stanislav Sychev - pimpinan tim, database
Nikolay Izyumov – antarmuka bot
Anton Ryabushev - backend

Ing macem-macem klompok, asring ana kabutuhan kanggo nggawe keputusan utawa milih. Biasane ing kasus kaya mengkono padha Resor kanggo demokrasi langsungNanging, nalika grup dadi gedhe, masalah bisa muncul. Contone, wong ing grup bisa uga ora pengin mangsuli pitakon utawa mangsuli pitakon babagan topik tartamtu. Ing kelompok gedhe, supaya masalah padha Resor kanggo demokrasi perwakilan, nalika klompok "wakil" sing kapisah dipilih saka antarane kabeh wong, sing mbebasake liyane saka beban pilihan. Nanging cukup angel dadi wakil kaya ngono, lan wong sing dadi siji ora mesthi jujur ​​lan dihormati, kaya sing dikira para pamilih.

Kanggo ngatasi masalah loro sistem kasebut, Brian Ford ngusulake konsep kasebut demokrasi cair. Ing sistem kasebut, saben wong bebas milih peran pangguna biasa utawa utusan, mung kanthi nyatakake kepinginan. Sapa wae bisa milih kanthi bebas utawa menehi suara marang utusan babagan siji utawa luwih masalah. Delegasi uga bisa milih. Kajaba iku, yen delegasi ora cocog karo pamilih, swara bisa ditarik kapan wae.

Conto panggunaan demokrasi cair ditemokake ing politik, lan kita pengin ngetrapake ide sing padha kanggo panggunaan saben dina ing kabeh jinis klompok wong. Ing hackathon DevDays sabanjure, kita mutusake kanggo nulis bot Telegram kanggo milih miturut prinsip demokrasi cair. Ing wektu sing padha, aku pengin ngindhari masalah umum karo bot kasebut - nyepetake obrolan umum kanthi pesen saka bot. Solusi kasebut yaiku nggawa fungsi sabisa menyang obrolan pribadi.

Hackathon DevDays'19 (bagean 1): buku harian kanthi rekomendasi, generator rute mlaku lan demokrasi cairKanggo nggawe bot iki kita digunakake API saka Telegram. Database PostgreSQL dipilih kanggo nyimpen riwayat voting lan delegasi. Kanggo komunikasi karo bot, server Flask diinstal. Kita milih teknologi kasebut amarga ... kita wis duwe pengalaman sesambungan karo wong-wong mau nalika sinau master. Nggarap telung komponen proyek-database, server, lan bot-kasil disebarake ing antarane anggota tim.

Mesthine, telung dina iku wektu sing cendhak, saengga sajrone hackathon kita ngetrapake ide kasebut menyang tingkat prototipe. AkibatΓ©, kita nggawe bot sing nulis ing obrolan umum mung informasi babagan bukaan voting lan asil anonim. Kemampuan kanggo milih lan nggawe polling ditindakake liwat korespondensi pribadi karo bot. Kanggo milih, ketik printah sing nampilake dhaptar masalah sing mbutuhake perhatian langsung. Ing korespondensi pribadi, sampeyan bisa ndeleng dhaptar delegasi lan swara sadurunge, lan uga menehi voting ing salah sawijining topik.

Video kanthi conto karya.

Iku menarik kanggo nggarap proyek, kita tetep ing universitas nganti tengah wengi, kita mikir yen iki cara sing apik kanggo ngaso saka sinau, sanajan iku banget ngeselake. Iku pengalaman sing nyenengake makarya ing tim sing raket.

PS. Enrollment kanggo program master kanggo taun akademik sabanjurΓ© wis mbukak. Gabung saiki!

Sumber: www.habr.com

Add a comment