UUUMエンジニアブログ

UUUMのエンジニアによる技術ブログです

【第2回】UUUM攻殻機動隊オンラインハッカソンを開催しました!

こんにちは!22卒エンジニアで現在内定者インターン中の久保寺です。 10月末に今年もオンラインハッカソンが行われました。

f:id:momokan928:20211115175913p:plain
弊社オフィスのスタジアムエリア

ハッカソンの概要

本来はハッカソンではなく半年に1回開発合宿をするのですが、

system.blog.uuum.jp

去年と同じくコロナ禍ということもあり、今年も開発合宿の代わりにリモートでオンラインハッカソンが開催されました。

【初】UUUM攻殻機動隊オンラインハッカソンを開催しました! - UUUM攻殻機動隊(エンジニアブログ)

今年のハッカソンのテーマは、「業務効率化」

今回のハッカソンは2回目ということもあり、ハッカソンの流れを熟知しているメンバーも多くなったため、去年よりもより実用的なテーマ「業務効率化」になりました。

※去年のテーマ「今年話題だったもの」

タイムテーブル

f:id:momokan928:20211115180447p:plain
タイムテーブル

去年は3日間あり、1日目にアイデア発表・中間発表などがありましたが、今年は2日間に短縮されてアイデア発表などは事前に行われました。発表はGooglemeetを使い進めました。有志でオフィスに集まり、オンライン&オフライン併用で開催されました。

参加チーム一覧

f:id:momokan928:20211115180652p:plain
参加チーム一覧

今回は全15チームの参加で、なんと去年の倍以上のチーム数となりました。

成果物の紹介

1.999 【無計画ハッカソン】

トップバッターからいきなり不穏なタイトルから始まりましたが.......

docbaseという社内のドキュメントがまとめられているWebアプリがあります。しかしdocbaseを見るには認証が必要なため、Slack内でそのリンクを貼ってもプレビュー機能は動作しません。それを上手い感じに動作させる拡張機能を作成していただきました。

f:id:momokan928:20211115180825p:plain

しかし完成はしていたのにデプロイがギリギリ間に合わず、成果を確認できませんでした(後日しっかり完成していた)。M1とかを見てても思いますが、やはりトップバッターは不利ですね。

このスライドは発表直前に慌てて作ったらしいです。

f:id:momokan928:20211115180915p:plain

2.ぶち【プロジェクトのER図を管理する方法】

f:id:momokan928:20211115181012p:plain

関わっているプロダクトにER図が無かったとのことだったので、ドキュメントの充実のためER図を簡単に作成できるツールを調べていただきました。

DBeaverというツールを使ったそうで、これを使ったら一瞬でER図ができたそうです。開発だけでなく、目的に合った最適なツールを探し出すことも業務効率化の最短ルートだったりしますよね〜

3.しだ【非エンジニアはじめてのGAS】

f:id:momokan928:20211115181151p:plain

支払証明書のファイルを取引先にメールで送信する作業があり、そのメールを手動でファイル添付をして送信するというやり方で時間が掛かっていたので、GASを用いてその作業を自動化していただきました。

GASを実行すると本当にメールが勝手に作成されていました。GASはこの発表で初めて知ったのですがとても便利ですね。毎日固定で行う業務があったら是非チャレンジしてみたいです。

4.スーパーカムイ改め特急カムイ号【社内コミュニケーションの可視化】

f:id:momokan928:20211115181326p:plain

「社内の人同士の繋がりがひと目で分かるものがないか」という要望があり、それを実現するようなアプリを作成していただきました。

Slack内でやり取りをしたことがある人同士をグラフで繋いでいくものなのですが、実装してみたらダークマターが出来上がっていました。

f:id:momokan928:20211115181353p:plain

「Slackでやり取りであった人」同士を全て繋ぐとダークマターになったので、「該当チャンネル内で繋がりのある人」に絞るといい感じに繋がりがある人同士の可視化ができていました。 ダークマター以外にも笑えるポイントが多々あって、成果物以外にもオーディエンスを飽きさせない工夫が施されていました。

※伏せ字には実名が含まれているため非公開とさせていただきます。

5.なかはし【GASをSlackコマンドから受け付けるためのゲートウェイをCloud Functionsでこしらえた】

f:id:momokan928:20211115181700p:plain

SlackからGASを操作できるような仕組みを作っていただきました。

しかし弊社のセキュリティが非常に厳しいのもあり、デフォルトのままではSlackからGASにはアクセスできません。そこでSlackからGASを呼び出すのではなく、Slack→GCPのCloud Functions→GASという流れで呼び出すことによりSlackからGASを動かすという仕組みでした。

6.カッコウ【GoogleMeetチャットSlack連携】

f:id:momokan928:20211115181916p:plain

Googlemeetのチャット欄のコメントをSlackにそのままリアルタイムでメッセージとして投稿されるという、弊社以外でも汎用的に活躍できるSlackアプリを作成していただきました。

ハッカソンのSlackチャンネルにも事前に仕込まれていて、参加者全員で実際に動いているのを確認できて沸いていました。 Googlemeetのチャット欄って退出したら消えてしまうので、これは本当に便利すぎます。一般公開まで漕ぎ着けていただきましたので現在私も1人のユーザーになっています。

chrome.google.com

7.KAZAMAN【チャットボット風Slackアプリ】

f:id:momokan928:20211115182104p:plain

弊社はドキュメントが非常に多く、新入社員さんにまず最初にレクチャーしなければいけない情報などが錯乱していて、どこに存在するかが分からないという悩みがありました。そこでチャットボット風お悩み質問Slackアプリを作っていただきました。

知りたい情報をプルダウンで選択できるようになっており、選択すると対象の情報先へのリンクが回答として返ってきます。 ハッカソンということもあり、スピード重視で動けばいいという発想になりがちですが、アーキテクチャーも素晴らしく、技術力が高くて感動しました!

8.現場猫【Slack leaving work】

f:id:momokan928:20211115182230p:plain

現場猫チームにはslackから勤怠が切れるSlackBotを作っていただきました。

弊社システムユニットの出退勤の流れとして、

1.出退勤アプリを起動して打刻する

2.出勤したことをシステムユニットのSlackチャンネルで報告

という流れで出退勤時に2回の作業が必要なため片方を忘れるということが頻発していました。このBotを入れておくと、Slackで出勤の報告をするだけで自動で打刻してくれるようになります。

システムユニット全員がおそらく抱えていた打刻の面倒臭さを解決してくれた素晴らしい成果物でした。

9.通りすがりの仮面ライダー㌠【無料で(←超大事)NFTアートを作る】

f:id:momokan928:20211115182819p:plain

詳しくなくて大変恐縮ですが、今流行っているNFTアートを作っていただきました。

NFTアートはブロックチェーンで管理された代替不可能なデジタルアートのことで、複製ができないため唯一性を証明することができます。世界では1つのNFTアートが70億円とかで落札された事例もあるみたいです。

本来であれば、作るのに手数料などのお金がかかるのですが、HokusaiAPIなどを利用することにより無料で作ることに成功したそうです。実装に使用されたNFTアートの絵はご自身で描かれたそうで、エンジニア以外の才能も惜しみなく発揮していました。

10.W遠藤feat.宗像【出欠席確認機能】

f:id:momokan928:20211115182843p:plain

オンライン会議特有の問題である「誰が来ていて誰が来ていないかイマイチ分からない問題」を解決するChromeの拡張機能を開発していただきました。

この拡張機能を有効にすると、Googlemeet上で誰が参加していて誰が参加していないかを一目で簡単に確認できるようになっています。カレンダー上では参加にしているけど実際の会議にはいないってパターンあるあるだと思うので、これは便利ですね。弊社以外でも活躍間違い無しの機能です。

そしてこのチームにはエンジニアだけでなくプロジェクトマネージャーもいて役割分担が完璧にされており、成果物だけでなく、発表のスライドもかなり面白いという二刀流で、参加者のハートを鷲掴みにしていました!

11.さわだ【シェルスクリプトでコマンドを一括実行する】

f:id:momokan928:20211115183223p:plain

詳細は社外秘なので詳しく載せられないのですが、 大量のCSVファイルを手動でDLして、aws s3 cpコマンドで一個一個アップロードしていたため作業に手間と時間がかかっていたものを、 シェルスクリプトでアップロード作業を一発で終わらせられるように対応していただきました。

12.かきき【youtube slack bot】

f:id:momokan928:20211115183445p:plain

Slackコマンドを叩くと、YouTubeの各種データを取ってこれるSlackBotを作成していただきました。

しっかり社内ドキュメントに操作方法なども残していただいたので、完成度抜群です。 弊社ならではの便利なBotですよね!

13.てんびん座【GoogleMeet × LIVE配信風リアクション 2.0】

f:id:momokan928:20211115183605p:plain
前回のGoogleMeet Live

前回大会優秀賞のGoogleMeet × LIVE配信風リアクションの拡張機能を更にアップデートしていただきました。

GoogleMeetの会議中に何も反応がないと寂しい・・みんなミュート・・🥺という寂しい状況を打破するために、 よくLive配信であるボタンを押したら❤️が画面に飛んでいくようなchrome拡張を作ってくださいました! 技術はFirebaseのRealtimeDatabaseを使っており、実演でもきちんと動作していて凄かったです!

【初】UUUM攻殻機動隊オンラインハッカソンを開催しました! - UUUM攻殻機動隊(エンジニアブログ)

f:id:momokan928:20211115184145p:plain

今回のアップデートではGooglemeetのピクチャ・イン・ピクチャ機能を実装し、そちらの画面でも❤️などのリアクションが見れるようになっています。試行錯誤を繰り返し14時間ぐらい実装に時間がかかったそうです。

私自身金魚のフンとして、このチームのメンバーとして参加させていただきました!

14.フィフ兄さん【Gmailに受信されたメールをSlackに通知させる】

f:id:momokan928:20211115184241p:plain

ここまでの成果物からも推測できますが、弊社で最も利用されているツールはSlackです。逆に言えばSlackと連携できていないツールはSlackをメインに見ている社員からすれば対応が遅れるリスクもあります。 なのでSlackと連携がされていないGmailをSlackと連携させて、Gmailに受信されたメールをSlackに通知させる機能を実装していただきました。

社内ドキュメントにもまとめていただきましたし、弊社以外にも需要の高い成果物でした!

15.WAGMI【スマートコントラクト実装 & NFT認証機能】

f:id:momokan928:20211115184336p:plain

通りすがりの仮面ライダー㌠でも題材になった、私からしたらヤムチャ視点のNFTの発表でした。

WAGMIチームではスマートコントラクトを実装していただきました。スマートコントラクトとはブロックチェーン上で契約を自動的に実行する仕組みのことで、NFTの売買などができるようになります?(浅い知識で申し訳ないです)

f:id:momokan928:20211115185145p:plain 通りすがりの仮面ライダー㌠の綺麗な女性の絵とは対極的な似顔絵がNFTアートとして表示されており、会場内からは笑いも出ていました。

結果発表について

f:id:momokan928:20211115185508p:plain

投票の基準としては実用性・ギーク度・完成度・プレゼン力の4項目を各5点満点の最高得点20点で総合優勝が決まります。

加えて点数に関係なく特別賞として、実用的賞ギーク賞完成度賞おもしろ賞の計4つの賞が用意されています。

結果発表

総合優勝

🏆W遠藤feat.宗像 f:id:momokan928:20211115185825p:plain

Googlemeetの出席確認拡張機能を開発したW遠藤feat.宗像チームが総合優勝しました。おめでとうございます! 票数が圧倒的だったそうです。

実用的賞

⭐しだ f:id:momokan928:20211115185948p:plain

実用的賞にはGASでメールの自動作成を実装していただいた、しだチームが実用的賞を受賞しました。 賞品のカップラーメン1ヶ月分に対し、場内は「いいなあああああ😳」と沸き上がりました。

ギーク賞

⭐KAZAMAN f:id:momokan928:20211115190027p:plain f:id:momokan928:20211115190112p:plain

様々なモダンな技術を幅広く使用されたKAZAMANチームがギーク賞を受賞しました。 ギークには寝ないことが必要不可欠とのことでモンスター1カートンが贈呈されました。

完成度賞

⭐カッコウ f:id:momokan928:20211115190315p:plain 売り物のような出来前のGoogleMeetチャットSlack連携拡張機能を開発したカッコウチームが完成度賞を受賞しました。 既に一般公開されているので気になる方は是非!

chrome.google.com

おもしろ賞

f:id:momokan928:20211115190455p:plain ダークマターをこの世に生み出すことに成功したスーパーカムイ改め特急カムイ号チームが受賞しました。 賞品のトイレットペーパー半年分に対し、場内からは「邪魔そう😩」と辛辣な声も上がりました(笑)

二次会

f:id:momokan928:20211115190533p:plain

ハッカソン終了後には二次会が開かれ、出社した社員皆でピザやお寿司を食べたりお酒を飲んだりしました。私はオンライン参加だったので二次会は不参加でしたが、後から写真を見ると羨ましい気持ちになりこの記事を書くのが嫌になってきましたね😩

皆さん仲良さそうで雰囲気がとても良かったです!

f:id:momokan928:20211115190602p:plain

まとめ

第1回オンラインハッカソンも素晴らしかったですが、第2回は作品のクオリティのインフレが進んでいる気がしています。

オンラインだと発表者が一人で喋っている感覚に陥ることがあると思うんですが、見る側はチャット欄で逐一反応したり、発表側は敢えて笑えるポイントを作ってみたりと今回も大いに盛り上げていただきました!

皆さんレベルの高い技術や未知の技術にも積極的に取り組んでいただき見ているだけでもワクワクするものばかりでした。来年以降のハードルがどんどん上がりますね〜。 なんだかんだ今年もコロナ禍が続きオンライン開催にはなりましたが、来年には対面での第3回ハッカソンが開催できたら良いですね。