二子玉川夏の陣に参加してきました
こんにちは。ぬまです。
今回は楽天株式会社のサマーインターンでおなじみ、「二子玉川夏の陣」に参加してきました!
インターンシップの詳細はこちら 二子玉川 夏の陣2020 楽天 インターン オンライン開催
概要
- 期間:9/1~9/11のB日程
- 待遇:時給1300円
- オンライン開催
- 内容:5人1チームで2週間かけて新規サービスの開発
- テーマ:オンラインで人と人をつなぐ
やったこと
2週間あり、最初の1週間弱は企画・設計、詳細設計に関するレビューをもとに改修し、残りの時間を実装と発表準備に割り当てられました。設計の段階では、実際のマネジャーやエンジニアの方からレビューがもらえると言う非常にレアな体験ができました。では、各フェーズごとにやったことをまとめていきます。
メンバー6人
フロントエンド2人
バックエンド4人
※フロントのUI部分はバックエンドのフロント若干かける人たちでサポート
企画
まず、オンラインで人と人をつなぐ点で現在の問題点を洗い出します。ここで、ブレインストーミングを使ってひたすら書いていきます。だいぶ話し合いをした気がします。問題点とともに簡単な解決策を絞り出します。
結果として、動画を使って趣味を共有できればコロナ禍でも寂しくないという結論になりました。
設計
ここでは、どんな機能があると問題点を克服できるのか、深く洗い出します。今回も同様にブレインストーミングから案を出し、グループ分けをおこないました。そのグループの中でランク付をします。
①最も優先順位の高い機能
②必要な機能
③無くてもいいかなぁという機能
それぞれ、P1、P2、P3という名前で機能を分類(P = Priority)し、その機能をコーディングに落とし込めるレベルで設計しました。例えば、その機能からどんなモデルが必要でDB設計はどうするのか、その機能からどんなデータがどんな形式でやりとりされるのか、、、
このあたりはだいぶ知識がなかったので、学びながら、エンジニアのメンターの方に多少のサポートをいただきながら進めました。メンバーもみんな強くて互いの知恵を共有できた点でかなり質が高いように感じました。
実装
使用技術:Docker, RubyOnRails, React+Redux, MySQL, Github, (CircleCI), Material UI
各機能のメソッドレベルでタスクを分割し、メンバーに割り当て実装開始
まぁ、設計通りにはいきません。
発表
発表は、基本英語で行うため準備に丸一日かけて協力しながら原稿やスライドを仕上げました。
結果は4位/7チームという真ん中の成績でしたが、チームワークはダントツ一位だったので強みが出たなと言う印象で盛り上がりました。
つくったサービス
結論から言うと、動画で人と人をつなぐSNSサービス「TheaTalk」を開発しました。
YouTube動画のURLから動画を共有できるルームを作成し、ユーザが各動画部屋で動画をリアルタイムで同じ場面を見てチャットができるというサービスです。
ユーザは趣味のタグをフォローしていて、ルームを作る時にルームにタグをつけられます。他のユーザはタグで検索ができ、気になるルームに入ってルーム内のユーザ同士でチャットができます。それによって共通の趣味で繋がることができます。
YouTubeではリアルタイムでのチャットが必要になりますが、このサービスによって、配信のリアルタイムでは無く部屋単位のリアルタイムをもつことで一緒に見ていると言う感覚から人と関われない寂しさを解決できます。