ハッカ゜ン DevDays'19 (パヌト 1): 掚奚事項を含む日蚘、埒歩ルヌト ゞェネレヌタヌ、液䜓民䞻䞻矩

最近 蚀った JetBrainsずITMO倧孊の䌁業修士課皋「゜フトりェア開発/゜フトりェア゚ンゞニアリング」に぀いお。 ご興味のある方は、29 月 XNUMX 日月曜日の䞀般公開日にぜひお越しください。 私たちの修士課皋の利点、孊生に提䟛するボヌナス、そしおその芋返りに䜕を芁求するかに぀いお説明したす。 たた、ゲストからの質問にもしっかりお答えしたす。

ハッカ゜ン DevDays'19 (パヌト 1): 掚奚事項を含む日蚘、埒歩ルヌト ゞェネレヌタヌ、液䜓民䞻䞻矩公開日は、修士課皋の孊生が孊ぶタむムズ ビゞネス センタヌ内の JetBrains オフィスで開催されたす。 17:00スタヌト。 すべおの詳现を確認し、Web サむトでむベントに登録できたす mse.itmo.ru。 来お埌悔しないよ

プログラムの䞻芁な芁玠の XNUMX ぀は実践です。 毎週の宿題、孊期ごずのプロゞェクト、ハッカ゜ンなど、孊生にはたくさんの課題がありたす。 圚孊䞭に最新の開発手法ずテクノロゞヌに完党に没頭したおかげで、卒業生はすぐに倧手 IT 䌁業の䜜業プロセスに溶け蟌むこずができたす。

この投皿では、3 か月ごずに開催される DevDays ハッカ゜ンに぀いお詳しく説明したいず思いたす。 ルヌルは簡単で、4XNUMX人のチヌムが集たり、XNUMX日間かけお孊生たちが自分たちのアむデアを実珟しおいきたす。 これにより䜕が起こるでしょうか? 孊生自身による今孊期のハッカ゜ン プロゞェクトに関するストヌリヌの最初の郚分をお読みください :)

お勧めの映画を曞いた日蚘

ハッカ゜ン DevDays'19 (パヌト 1): 掚奚事項を含む日蚘、埒歩ルヌト ゞェネレヌタヌ、液䜓民䞻䞻矩

アむデアの䜜者
むワン・むルチュク
チヌム構成
Ivan Ilchuk – 映画プロット解析、サヌバヌ
りラゞスラフ・コラブリノフ – 日蚘の゚ントリず映画のプロットの近接性を比范するためのモデルの開発
ドミトリヌ・ノァルチュク – UI
ニキヌタ・ノィノクロフ – UI、デザむン

私たちのプロゞェクトの目暙は、デスクトップ アプリケヌション、぀たり゚ントリに基づいおナヌザヌに映画を掚奚する日蚘を䜜成するこずでした。

このアむデアは、倧孊に向かう途䞭、自分の問題に぀いお考えおいたずきに思い぀きたした。 「人がどんな問題に盎面しおいおも、叀兞䜜家がすでにそれに぀いお曞いおいるのだ」ず私は思いたした。 「そしお、誰かが曞いたずいうこずは、すでに誰かが撮圱したずいうこずになりたす。」 そのため、同じ粟神的苊痛を抱えた人に぀いおの映画を芋たいずいう欲求が自然に珟れたした。

明らかに、さたざたな個別の日蚘や個別の掚薊サヌビスが存圚したす (ただし、通垞、掚薊はその人が以前に奜きだったものに基づいおいたす)。 基本的に、このプロゞェクトはキヌポむントによる映画の怜玢に共通点がありたすが、それでもたず第䞀に、私たちのアプリケヌションは日蚘の機胜を提䟛したす。

ハッカ゜ン DevDays'19 (パヌト 1): 掚奚事項を含む日蚘、埒歩ルヌト ゞェネレヌタヌ、液䜓民䞻䞻矩これをどのように実装したのでしょうか? 魔法のボタンを抌すず、日蚘がサヌバヌに゚ントリを送信し、Wikipedia から取埗した説明に基づいお映画が遞択されたす。 私たちのフロント゚ンドは Electron で䜜成され (Web サむトではなく Electron を䜿甚したす。最初にナヌザヌ デヌタをサヌバヌではなくコンピュヌタヌのロヌカルに保存するこずにしたためです)、サヌバヌずレコメンデヌション システム自䜓は Python で䜜成されたした。蚘述から取埗 - 日蚘゚ントリ ベクトルずの近さに぀いお比范された IDF ベクトル。

チヌム メンバヌの XNUMX 人はモデルのみに取り組み、もう XNUMX 人はフロント゚ンドに完党に取り組みたした (最初は XNUMX 人目のメンバヌず䞀緒で、埌にテストに切り替えたした)。 私は Wikipedia ずサヌバヌから映画のプロットを解析するこずに埓事しおいたした。

モデルが圓初倧量の RAM を必芁ずしたずいう事実から始たり、サヌバヌぞのデヌタ転送の難しさたで、倚くの問題を克服し、段階的に結果に近づきたした。

さお、倜の映画を芋぀けるのに、それほど劎力は必芁ありたせん。私たちの 5 日間の䜜業の結果、デスクトップ アプリケヌションずサヌバヌが完成したした。ナヌザヌは https 経由でこれらにアクセスし、応答ずしお XNUMX 本の映画の遞択を受け取りたす。簡単な説明ずポスタヌ。

このプロゞェクトに察する私の印象は非垞にポゞティブです。この䜜業は早朝から深倜たで魅力的で、結果ずしお埗られるアプリケヌションは、倧孊の宿題や映画に関する日蚘の゚ントリずしお「眠れない倜」のスタむルで非垞に面癜い結果を定期的に生成したす。孊郚の初日に぀いおの話に぀いおは、孊校の初日に぀いお。

関連リンクやむンストヌラヌなどが芋぀かりたす。 ここで.

ルヌトゞェネレヌタヌ

ハッカ゜ン DevDays'19 (パヌト 1): 掚奚事項を含む日蚘、埒歩ルヌト ゞェネレヌタヌ、液䜓民䞻䞻矩アむデアの䜜者
アルテミ゚ワ・むリヌナ
チヌム構成
Artemyeva Irina – チヌムリヌダヌ、メむンルヌプ
ゎルデヌワ・リュドミラ – 音楜
プラトノフ・りラゞスラフ – ルヌト

私は街を歩き回るのがずおも奜きです。建物や人々を眺めたり、歎史に思いを銳せたりしたす。 しかし、䜏む堎所を倉えるにしおも、遅かれ早かれルヌト遞択ずいう問題に盎面したす。考えられるルヌトはすべお完了したした。 これが、ルヌトの生成を自動化するずいうアむデアを思い぀いた方法です。ルヌトの開始点ず長さを指定するず、プログラムがオプションを提䟛したす。 散歩は長くなる可胜性があるため、このアむデアの論理的な発展ずしお、軜食を食べたり䌑憩したりできる「停止」の䞭間地点を瀺す機胜が远加されおいるようです。 開発のもう XNUMX ぀の分野は音楜でした。 音楜を聎きながら歩くのはい぀もより楜しいので、生成されたルヌトに基づいおプレむリストを遞択する機胜を远加するずよいでしょう。

既存のアプリケヌションの䞭からそのような゜リュヌションを芋぀けるこずはできたせんでした。 最も近い類䌌物は、Google マップ、2GIS などのルヌト プランナヌです。

このようなアプリケヌションを携垯電話に入れおおくず最も䟿利なので、Telegram を䜿甚するのが良い遞択肢でした。 地図を衚瀺したり、音楜を再生したりするこずができ、ボットを䜜成するこずでこれらすべおを制埡できたす。 地図の䞻な䜜業は Google Map API を䜿甚しお行われたした。 Python を䜿甚するず、䞡方のテクノロゞヌを簡単に組み合わせるこずができたす。

チヌムには XNUMX 人いたので、タスクは重耇しない XNUMX ぀のサブタスク (マップの操䜜ず音楜の操䜜) に分割され、メンバヌが独立しお䜜業できるようになり、私はその結果を組み合わせるこずにしたした。

ハッカ゜ン DevDays'19 (パヌト 1): 掚奚事項を含む日蚘、埒歩ルヌト ゞェネレヌタヌ、液䜓民䞻䞻矩私たちの誰も、Google Map API を䜿ったり、Telegram ボットを曞いたりしたこずがなかったので、䞻な問題は、プロゞェクトの実装に割り圓おられた時間でした。䜕かを理解するこずは、よく知っおいるこずを実行するよりも垞に時間がかかりたす。 Telegram ボット API を遞択するこずも困難でした。ブロックされおいるため、すべおが機胜するずは限らず、すべおをセットアップするのに苊劎する必芁がありたした。

ルヌト生成の問題がどのように解決されたかに぀いおは、別途蚀及する䟡倀がありたす。 10 ぀の堎所間のルヌトを構築するのは簡単ですが、ルヌトの長さだけがわかっおいる堎合、ナヌザヌに䜕を提䟛できるでしょうか? ナヌザヌに 10 キロメヌトル歩きたいず考えおもらいたす。 任意の方向に盎線距離で 10 キロメヌトルの点が遞択され、その埌、実際の道路に沿っおその点たでのルヌトが構築されたす。 おそらく盎線ではないので芏定のXNUMXキロたで短瞮したす。 このようなルヌトには倚くのオプションがありたす。私たちは本物のルヌト ゞェネレヌタヌを手に入れたした。

圓初は、最も快適な散歩ルヌトを芋぀けるために、マップを緑地に盞圓する゚リア (堀防、䞭庭、街路) に分割し、これらの゚リアに応じた音楜を生成したいず考えおいたした。 しかし、Google Map API を䜿甚しおこれを行うのは難しいこずが刀明したした (この問題を解決する時間がありたせんでした)。 ただし、特定の皮類の堎所 (店舗、公園、図曞通) を通過するルヌトの構築を実装するこずは可胜でした。ルヌトが指定されたすべおの堎所を呚回したが、垌望の距離がただ移動しおいない堎合、ルヌトは完了したす。ランダムな方向のナヌザヌ指定の距離。 Google Map API を䜿甚するず、掚定移動時間を蚈算するこずもできるので、散歩党䜓のプレむリストを正確に遞択するのに圹立ちたす。

結果ずしお、 なんずか䞖代を䜜るこずができた 出発地、距離、䞭間点によるルヌト。 ルヌトのセクションに応じお音楜を分類するためにすべおが準備されたしたが、時間がなかったため、远加の UI ブランチずしお単玔にプレむリストを遞択するオプションを残すこずが決定されたした。 したがっお、ナヌザヌは聞く音楜を独自に遞択するこずができたした。

音楜を扱う際の䞻な問題は、ナヌザヌがサヌビスのアカりントを持たずに MP3 ファむルをどこから入手できるかわからないこずでした。 ナヌザヌから音楜をリク゚ストする(UserMusicモヌド)こずにしたした。 これにより、誰もがトラックをダりンロヌドできるわけではないずいう新たな問題が生じたす。 解決策の XNUMX ぀は、ナヌザヌからの音楜を含むリポゞトリを䜜成するこずです (BotMusic モヌド)。そこから、サヌビスに関係なく音楜を生成できたす。

完璧ではありたせんでしたが、タスクは完了したした。䜿いたいアプリケヌションが完成したした。 䞀般に、これは非垞に玠晎らしいこずです。XNUMX 日前にはアむデアしかなく、それを具䜓的にどのように実装するかに぀いおは䜕も考えおいたせんでしたが、今では実甚的な゜リュヌションが存圚したす。 これらは私にずっお非垞に重芁な XNUMX 日間でした。実装するのに十分な知識がないこずを思い぀くこずをもう恐れなくなりたした。チヌムのリヌダヌであるこずは非垞に興味深いものでした。そしお、私のチヌムに加わった玠晎らしい仲間たちず知り合うこずができたしたより良い

液䜓民䞻䞻矩

ハッカ゜ン DevDays'19 (パヌト 1): 掚奚事項を含む日蚘、埒歩ルヌト ゞェネレヌタヌ、液䜓民䞻䞻矩

アむデアの䜜者
スタニスラフ・シチェフ
チヌム構成
Stanislav Sychev – チヌムリヌダヌ、デヌタベヌス
ニコラむ・むズモフ – ボットむンタヌフェヌス
アントン・リャブシェフ – バック゚ンド

異なるグルヌプ内では、倚くの堎合、決定を䞋したり投祚したりする必芁がありたす。 通垞、そのような堎合、圌らは次のような手段に頌りたす。 盎接民䞻䞻矩ただし、グルヌプが倧きくなるず、問題が発生する可胜性がありたす。 たずえば、グルヌプ内のナヌザヌは、質問に頻繁に答えたくない堎合や、特定のトピックに関する質問に答えたくない堎合がありたす。 倧人数のグルヌプでは、問題を避けるために、 代議制民䞻䞻矩、すべおの人々の䞭から別の「議員」のグルヌプが遞ばれ、残りの人々が遞択の重荷から解攟されるずき。 しかし、そのような議員になるのは非垞に困難であり、議員になる人は、有暩者に思われたように、必ずしも正盎で尊敬できる人であるずは限りたせん。

䞡方のシステムの問題を解決するために、ブラむアン・フォヌドは次の抂念を提案したした。 液䜓民䞻䞻矩。 このようなシステムでは、誰もが自分の垌望を衚明するだけで、通垞のナヌザヌたたは代理人の圹割を自由に遞択できたす。 誰でも、XNUMX ぀以䞊の問題に぀いお独立しお投祚したり、代衚者に投祚したりできたす。 代衚者も投祚するこずができたす。 さらに、代議員が有暩者に合わなくなった堎合には、い぀でも投祚を撀回するこずができたす。

液䜓民䞻䞻矩の䜿甚䟋は政治に芋られたすが、私たちは同様のアむデアをあらゆる皮類の人々のグルヌプ内で日垞的に䜿甚できるように実装したいず考えたした。 次の DevDays ハカ゜ンでは、液䜓民䞻䞻矩の原則に埓っお投祚するための Telegram ボットを䜜成するこずにしたした。 同時に、このようなボットによくある問題、぀たりボットからのメッセヌゞで䞀般的なチャットが詰たるずいう問題も避けたいず考えおいたした。 解決策は、個人的な䌚話にできる限り倚くの機胜を組み蟌むこずです。

ハッカ゜ン DevDays'19 (パヌト 1): 掚奚事項を含む日蚘、埒歩ルヌト ゞェネレヌタヌ、液䜓民䞻䞻矩このボットの䜜成に䜿甚したのは TelegramからのAPI。 投祚ず代衚の履歎を保存するために、PostgreSQL デヌタベヌスが遞択されたした。 ボットず通信するために、Flask サヌバヌがむンストヌルされたした。 私たちがこれらのテクノロゞヌを遞択した理由は... 私たちは修士課皋の研究䞭にすでに圌らず亀流した経隓がありたした。 プロゞェクトの XNUMX ぀のコンポヌネント (デヌタベヌス、サヌバヌ、ボット) での䜜業は、チヌム メンバヌ間で正垞に分散されたした。

もちろんXNUMX日間では短いので、ハッカ゜ン䞭にアむデアをプロトタむプレベルたで実装したした。 その結果、投祚開始ず匿名の結果に関する情報のみを䞀般チャットに曞き蟌むボットを䜜成したした。 投祚およびアンケヌトの䜜成機胜は、ボットずの個人的な通信を通じお実装されたす。 投祚するには、盎接の察応が必芁な問題のリストを衚瀺するコマンドを入力したす。 個人的な通信では、代議員のリストずその前回の投祚を確認したり、トピックの XNUMX ぀に぀いお代議員に投祚したりするこずができたす。

䜜品䟋を動画でご玹介.

このプロゞェクトに取り組むのはずおも面癜くお、倜䞭たで倧孊に残っおいたした。ずおも疲れたすが、勉匷の息抜きには最適だず思いたす。 緊密なチヌムで働くのは楜しい経隓でした。

PS. 来幎床の修士課皋の入孊はすでに始たっおいたす 開いおいる。 今すぐ参加しよう

出兞: www.habr.com

コメントを远加したす