アルサーガパートナーズ株式会社 / エンジニア(フロント/バックエンド)
経営戦略 ミーティング支援プラットフォーム 開発
概要 法人企業向け ミーティング支援ツールの開発 主な機能 20階層構造を作成できるTODO機能 カレンダー機能(Google Calendar 連携機能付) 会議通知・タスク通知機能 担当 バックエンドエンジニアのメンバーとしてプロジェクトにアサイン。 リーダー フロント兼任 使用技術 フロントエンド:Vue3, Typescript バックエンド:PHP/Laravel8, インフラ:MySQL5.7, Redis, AWS ECS・S3, Docker, Redis 開発中の課題・工夫した点 ◯20階層構造を作成できるTODO機能 詳細 企業課題を細分化し、より具体的なTODOを出していく機能の開発を行なった。 各TODO には、進捗率が記載することができる。 進捗率は、上の階層に対しても反映され、一番上の階層では配下のTODOを合計した割合を計算する。 課題 ドラッグ&ドロップ にて階層移動ができるためアクセスが集中してしまうとDB処理が追いつかず、 複数人が操作してしまうと、反映処理が遅くなっていた。 工夫した点 DBをREAD /WRITE に分けることで、負荷分散を行いDBの負荷を下げる。 Queueを活用することで、非同期で処理するものと同期的に反映するものを分け、処理を行なった。 ◯カレンダー機能(Google Calendar 連携機能付) 詳細 アプリ側で作成したカレンダー機能とGoogle Calendar との相互連携機能の開発を行なった。 Google 側で操作してもアプリ側へ反映。アプリ側で操作してもGoogleへ反映される。 所属する企業全員をGoogle Calendar のようにサイドバーに表示を行い、 チェックマークを行うことで、カレンダー表示を行う。 加えて、1つのイベントに対してアジェンダという議事録が保存できる機能の開発を行なった。 また、商用利用する場合、 Google に対してOAuth申請を動画撮影を行い許可を得る必要があり、その申請対応を行なった。 課題 アプリ側で作成したイベント情報をGoogle Calendar 側へ反映するにあたり、 例えば、毎週水曜に行う定例といったようなデータを作成/更新/削除を行う場合の、 Google Calendar 側の仕様を細かく網羅する必要があった。 作成したGoogle Calendar のユニークなIDに対して、アプリ側のアジェンダとの紐付けを行うが、 ユニークなIDが繰り返しのイベントの更新処理などを行う場合IDが変更されてしまうことがあり、 紐付けが外れてしまうことがわかった。 そのため、Google Calendar 側の仕様を網羅し、いつどの処理を行うとIDが変更されてしまうのかを 調査する必要があった。 工夫した点 調査に関しては、カレンダーで操作できるパターンケースを全てスプレッドシートにまとめ、 1つ1つ検証を行なった。 その検証結果を元に、Google Calendar とアプリ側の連携の設計・実装や、 アジェンダとの紐付けなどの設計を行なった。